diff --git a/src/routes/game/[did]/[rkey]/+page.svelte b/src/routes/game/[did]/[rkey]/+page.svelte index 3930e79..517af62 100644 --- a/src/routes/game/[did]/[rkey]/+page.svelte +++ b/src/routes/game/[did]/[rkey]/+page.svelte @@ -293,14 +293,16 @@ blackDid: black, status: 'active' as const, }); + resolvePlayerHandles(white, black); + connectJetstream(opponentDid); + + // Persist to PDS after Jetstream is connected if (auth.agent && myRkey) { const updates: Record = { status: 'active' }; if (weAreWhite) updates.black = black; else updates.white = white; - await updateGame(auth.agent, myRkey, updates); + updateGame(auth.agent, myRkey, updates).catch(() => {}); } - resolvePlayerHandles(white, black); - connectJetstream(opponentDid); } }, onConnectionChange: (isConnected) => { @@ -491,6 +493,7 @@ if (!auth.agent || !auth.did || !myRkey) return; const result = game.myColor === 'white' ? '0-1' : '1-0'; + game.setResult(result, 'resignation'); game.setStatus('completed'); await updateGame(auth.agent, myRkey, { status: 'completed', @@ -863,9 +866,9 @@ {/if} - {#if !isSpectator} + {#if !isSpectator && game.status === 'active' && game.moveCount > 0} - {game.status === 'waiting' ? 'Cancel game' : `Claim win (opponent inactive ${daysSinceActivity}d)`} + Claim win (opponent inactive {daysSinceActivity}d) {/if} {/if}