Save active sessions in browser local storage
Joining a game now records the session (game ID, player ID, plus player/rat/crew names) in localStorage via the new lib/sessions.js, and the dashboard keeps it enriched as state loads (so the rat name tracks earned Names). The home page lists saved sessions in a "Rejoin a Crew" menu, most-recent first, alongside creating a new game. Deleting an entry only touches localStorage, never the backend, and is undoable: the row greys out with an Undo button and is dropped from storage immediately, so a page refresh finalizes the removal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import { push } from 'svelte-spa-router';
|
||||
import { apiRequest } from '../lib/api';
|
||||
import { setPageTitle } from '../lib/title';
|
||||
import { saveSession } from '../lib/sessions';
|
||||
export let params = {};
|
||||
|
||||
onMount(() => setPageTitle('Join the Crew'));
|
||||
@@ -21,6 +22,9 @@
|
||||
error = '';
|
||||
try {
|
||||
const data = await apiRequest(`/game/${gameId}/join`, 'POST', { name: playerName });
|
||||
// Remember this session so the home page can offer a rejoin link;
|
||||
// the dashboard enriches it with crew/rat names once state loads.
|
||||
saveSession({ gameId, playerId: data.id, playerName });
|
||||
push(`/game/${gameId}/player/${data.id}`);
|
||||
} catch (err) {
|
||||
error = err.message;
|
||||
|
||||
Reference in New Issue
Block a user