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,
disabled = false,
}: {
team: Team;
team?: Team;
event: ExtendedEvent;
score?: string;
time?: boolean;
@@ -30,9 +30,19 @@
let hoverService = $teamHoverService;
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>
{#if !disabled}
{#if canOpenSheet}
<Sheet>
<SheetTrigger>
{#snippet child({ props })}
@@ -40,7 +50,7 @@
{/snippet}
</SheetTrigger>
<SheetContent>
<TeamInfo {team} {event} />
<TeamInfo team={displayTeam} {event} />
</SheetContent>
</Sheet>
{:else}
@@ -52,16 +62,16 @@
{...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
? -1
: team.id} {hoverService.currentHover === team.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)}
onmouseleave={() => team.id === -1 || hoverService.clearHover()}
: displayTeam.id} {hoverService.currentHover === displayTeam.id ? 'bg-gray-800' : ''} {showWinner ? 'border-l-4' : ''} {showWinner && isWinner ? 'border-l-yellow-500' : 'border-l-gray-950'}"
onmouseenter={() => displayTeam.id === -1 || hoverService.setHover(displayTeam.id)}
onmouseleave={() => displayTeam.id === -1 || hoverService.clearHover()}
{id}
>
<div class="flex">
<div class="w-12 {time ? 'font-bold' : ''}">
{team.kuerzel}
{displayTeam.kuerzel}
</div>
<span class={time ? "font-mono" : "font-bold"}>{team.name}</span>
<span class={time ? "font-mono" : "font-bold"}>{displayTeam.name}</span>
</div>
<div class="{showWinner && isWinner && 'font-bold'} {isWinner ? 'text-yellow-400' : ''} {noWinner ? 'font-bold' : ''}">
{score}
+15 -17
View File
@@ -2,22 +2,20 @@
eventId: 77
mode: wargear
viewConfig:
groups:
name: Gruppenphase
view:
type: GROUP
groups:
- 16
roundGroupingTimeMinutes: 720
roundPrefix: Tag
final:
name: K.O. Phase
view:
type: GROUP
groups:
- 18
roundGroupingTimeMinutes: 720
roundPrefix: Tag
groups:
name: Gruppenphase
view:
type: GROUP
groups:
- 16
roundGroupingTimeMinutes: 720
roundPrefix: Tag
final:
name: K.O. Phase
view:
type: GROUP
groups:
- 18
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
gekommen ist ersetzt. Das rausgeflogene Team kann sich nicht mehr durch eine Herausforderung in die WGS
reinkämpfen.
reinkämpfen.