Update EventTeamChip component to handle optional team prop and improve display logic
SteamWar CI / Build (push) Successful in 2m1s
SteamWar CI / Deploy (push) Successful in 10s

This commit is contained in:
2026-07-05 12:38:12 +02:00
parent 6f5fe76c23
commit 3434c93655
2 changed files with 33 additions and 25 deletions
+18 -8
View File
@@ -16,7 +16,7 @@
id, id,
disabled = false, disabled = false,
}: { }: {
team: Team; team?: Team;
event: ExtendedEvent; event: ExtendedEvent;
score?: string; score?: string;
time?: boolean; time?: boolean;
@@ -30,9 +30,19 @@
let hoverService = $teamHoverService; let hoverService = $teamHoverService;
type StringAnyRecord = Record<string, any>; type StringAnyRecord = Record<string, any>;
const unknownTeam: Team = {
id: -1,
kuerzel: "?",
name: "Unbekanntes Team",
color: "-1",
};
const displayTeam = $derived(team ?? unknownTeam);
const canOpenSheet = $derived(!disabled && displayTeam.id !== -1);
</script> </script>
{#if !disabled} {#if canOpenSheet}
<Sheet> <Sheet>
<SheetTrigger> <SheetTrigger>
{#snippet child({ props })} {#snippet child({ props })}
@@ -40,7 +50,7 @@
{/snippet} {/snippet}
</SheetTrigger> </SheetTrigger>
<SheetContent> <SheetContent>
<TeamInfo {team} {event} /> <TeamInfo team={displayTeam} {event} />
</SheetContent> </SheetContent>
</Sheet> </Sheet>
{:else} {:else}
@@ -52,16 +62,16 @@
{...props} {...props}
class="flex justify-between px-2 w-full team-chip text-left border-b border-b-gray-700 last:border-b-0 {time ? 'py-1 hover:bg-gray-800' : 'py-3 cursor-pointer'} team-{disabled class="flex justify-between px-2 w-full team-chip text-left border-b border-b-gray-700 last:border-b-0 {time ? 'py-1 hover:bg-gray-800' : 'py-3 cursor-pointer'} team-{disabled
? -1 ? -1
: team.id} {hoverService.currentHover === team.id ? 'bg-gray-800' : ''} {showWinner ? 'border-l-4' : ''} {showWinner && isWinner ? 'border-l-yellow-500' : 'border-l-gray-950'}" : displayTeam.id} {hoverService.currentHover === displayTeam.id ? 'bg-gray-800' : ''} {showWinner ? 'border-l-4' : ''} {showWinner && isWinner ? 'border-l-yellow-500' : 'border-l-gray-950'}"
onmouseenter={() => team.id === -1 || hoverService.setHover(team.id)} onmouseenter={() => displayTeam.id === -1 || hoverService.setHover(displayTeam.id)}
onmouseleave={() => team.id === -1 || hoverService.clearHover()} onmouseleave={() => displayTeam.id === -1 || hoverService.clearHover()}
{id} {id}
> >
<div class="flex"> <div class="flex">
<div class="w-12 {time ? 'font-bold' : ''}"> <div class="w-12 {time ? 'font-bold' : ''}">
{team.kuerzel} {displayTeam.kuerzel}
</div> </div>
<span class={time ? "font-mono" : "font-bold"}>{team.name}</span> <span class={time ? "font-mono" : "font-bold"}>{displayTeam.name}</span>
</div> </div>
<div class="{showWinner && isWinner && 'font-bold'} {isWinner ? 'text-yellow-400' : ''} {noWinner ? 'font-bold' : ''}"> <div class="{showWinner && isWinner && 'font-bold'} {isWinner ? 'text-yellow-400' : ''} {noWinner ? 'font-bold' : ''}">
{score} {score}
+15 -17
View File
@@ -2,22 +2,20 @@
eventId: 77 eventId: 77
mode: wargear mode: wargear
viewConfig: viewConfig:
groups: groups:
name: Gruppenphase name: Gruppenphase
view: view:
type: GROUP type: GROUP
groups: groups:
- 16 - 16
roundGroupingTimeMinutes: 720 roundGroupingTimeMinutes: 720
roundPrefix: Tag roundPrefix: Tag
final: final:
name: K.O. Phase name: K.O. Phase
view: view:
type: GROUP type: GROUP
groups: groups:
- 18 - 18
roundGroupingTimeMinutes: 720
roundPrefix: Tag
verantwortlicher: JajaKings & YoyoNow verantwortlicher: JajaKings & YoyoNow
--- ---
@@ -58,4 +56,4 @@ und bei erfolgreicher Herausforderung in die WGS eintreten.
Wenn ein Team **UNANGEKUNDIGT** an einem Spieltag fehlt, wird es durch ein Team welches nicht mehr in die WGS Wenn ein Team **UNANGEKUNDIGT** an einem Spieltag fehlt, wird es durch ein Team welches nicht mehr in die WGS
gekommen ist ersetzt. Das rausgeflogene Team kann sich nicht mehr durch eine Herausforderung in die WGS gekommen ist ersetzt. Das rausgeflogene Team kann sich nicht mehr durch eine Herausforderung in die WGS
reinkämpfen. reinkämpfen.