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