feat(ui): single-URL game app-shell (in-memory screens/views) #35
@@ -95,7 +95,11 @@ label `game.shell.menu.return_to_lobby`); it calls
|
||||
`appScreen` / `activeView` persist a snapshot (screen, game id, view +
|
||||
sub-params) to `sessionStorage` (`galaxy-app-nav`) on every mutation
|
||||
and read it back once at construction, so a refresh restores the last
|
||||
screen and view. On a full load the dispatcher records the restored
|
||||
screen and view. Re-entering a game from the lobby is not a restore: the
|
||||
lobby resets `activeView` to the map before `appScreen.go("game")`, so
|
||||
only an in-place refresh replays the saved view — browser Back and the
|
||||
in-game return-to-lobby control both exit to the lobby. On a full load
|
||||
the dispatcher records the restored
|
||||
game id (`appScreen.restoredGameId`); the game shell's boot path then
|
||||
validates it against the player's game list. `GameStateStore.init`
|
||||
looks the game up through `listMyGames` / `findGame`, and if the game
|
||||
|
||||
Reference in New Issue
Block a user