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