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}
+14 -16
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
---