Update EventTeamChip component to handle optional team prop and improve display logic
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user