From 21de94869d885cfc26214c5c482814a8ac1c6ab7 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 20 Oct 2026 13:04:28 -0400 Subject: [PATCH] The host is asked before beginning while a seat is still held for someone on their way, since the seat goes once the game begins; and the gallery says the game began before they arrived, so whoever was called and finds the table under way knows why there is no seat Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up --- src/lib/components/Lobby.svelte | 10 ++++++++-- src/routes/join/[code]/+page.svelte | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lib/components/Lobby.svelte b/src/lib/components/Lobby.svelte index d83ac41..dbb4c65 100644 --- a/src/lib/components/Lobby.svelte +++ b/src/lib/components/Lobby.svelte @@ -5,6 +5,8 @@ let { room, link, copied, copyLink }: { room: Room; link: string; copied: boolean; copyLink: () => void } = $props(); const v = $derived(room.view); + /** The host asked to begin while a seat is still held for someone on their way. */ + let beginAsked = $state(false); const hostName = $derived(v.seats.find((s) => s.id === v.host)?.name ?? 'the host'); const keeperSeated = $derived(v.seats.some((s) => s.name.toLowerCase() === v.keeper.toLowerCase())); @@ -67,8 +69,12 @@ {#if room.seatEmpty && room.isHost} {/if} - {#if room.isHost} - + {#if room.isHost && beginAsked && v.expected.length > 0} + A seat is held for {v.expected.join(' and ')}, who {v.expected.length === 1 ? 'has' : 'have'} not arrived. The seat goes once the game begins. + + + {:else if room.isHost} + {v.seats.length < 2 ? 'once a second player is seated' : `with ${v.seats.length} players`} {:else} {hostName} will begin when the table is ready. diff --git a/src/routes/join/[code]/+page.svelte b/src/routes/join/[code]/+page.svelte index 92c9c8b..2c62bc0 100644 --- a/src/routes/join/[code]/+page.svelte +++ b/src/routes/join/[code]/+page.svelte @@ -246,7 +246,8 @@ {#if watching && room?.started && !room.view.over}
{#if seatLost}

{seatLost} Claim it here, or write to the keeper.

- {:else}

Had a seat at this table? Ask the host for a transfer phrase, or make one on the device that still holds the seat, and claim it here. Or write to the keeper for a link that brings it back.

{/if} + {:else}{#if room.view.expected.length > 0}

{room.nameOf(room.view.host)} began the game before {room.view.expected.join(' and ')} arrived, and the seat held for {room.view.expected.length === 1 ? 'them' : 'each'} went with it.

{/if} +

Had a seat at this table? Ask the host for a transfer phrase, or make one on the device that still holds the seat, and claim it here. Or write to the keeper for a link that brings it back.

{/if}