"Run" hiess in dieser App immer schon der abgesteckte Abschnitt eines Events, auf dem gefahren und gestoppt wird — also das, was im Rennsport Stage heisst. "Run" ist daneben der einzelne Durchgang eines Fahrers, und genau der steht hier als `times`. Zwei Bedeutungen fuer ein Wort, an einer Stelle, an der beide vorkommen. Die Migration benennt um statt neu anzulegen: Collection und Feld behalten ihre IDs, PocketBase benennt Tabelle und Spalte um, die Daten bleiben stehen. Gesucht wird ueber die Collection-ID und nicht ueber den Namen, damit sie auch auf einer frischen Datenbank durchlaeuft, deren Snapshot die Collection bereits `stages` nennt. Im Frontend wandert `times.run` zu `times.stage`, der Store heisst stages.svelte.ts, und aus /events/[id]/runs/[runId] wird /events/[id]/stages/[stageId]. Nicht umbenannt: `running`, `allRunning` und RunningTimesToast. Das sind laufende Zeiten und keine Stages — dieselben Buchstaben, andere Sache. Und die Artikel: Der Run war maskulin, die Stage ist feminin. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P32KoesVtABd6xWsqMKzhr
28 lines
1.1 KiB
Svelte
28 lines
1.1 KiB
Svelte
<script lang="ts">
|
|
/**
|
|
* Logo eines Teams. Ist eins hinterlegt, steht es allein; sonst bleibt das
|
|
* Wappen des Stammtischs als Rückfalloption — zwei übereinanderliegende
|
|
* SVGs, weil das Radl über dem Schildl leicht übersteht.
|
|
*
|
|
* Groesse ueber eine Klasse steuerbar, damit dasselbe Logo im Header
|
|
* (klein) und auf der Login-Karte (gross) verwendet werden kann.
|
|
*/
|
|
import { getFileURL } from '$lib/stores/pocketbase.svelte'
|
|
import type { TeamsResponse } from '$lib/types'
|
|
|
|
let {
|
|
class: className = 'w-24 h-24',
|
|
team = null,
|
|
}: { class?: string; team?: TeamsResponse | null } = $props()
|
|
|
|
const url = $derived(team?.logo ? getFileURL(team, team.logo) : null)
|
|
</script>
|
|
|
|
<div class="relative {className}" id="logo">
|
|
{#if url}
|
|
<img alt="" class="absolute h-full w-full object-contain" src={url} />
|
|
{:else}
|
|
<img alt="" class="absolute h-full w-full object-contain" src="/schildl.svg">
|
|
<img alt="" class="absolute h-full w-full scale-110 object-contain" src="/radl.svg">
|
|
{/if}
|
|
</div>
|