From 8fe9519afcf8a571b6da746258043431559697ae Mon Sep 17 00:00:00 2001 From: pixii Date: Fri, 7 Mar 2025 09:38:35 +0100 Subject: [PATCH] feat: add game store for lobby overlay/player management --- frontend/src/components/ConnectRoom.svelte | 1 + frontend/src/components/Game/Lobby.svelte | 38 ++++++--- frontend/src/i18n/en.json | 6 +- frontend/src/routes/Game.svelte | 55 +++++++++---- frontend/src/routes/_module.svelte | 70 ++++++++++++++--- frontend/src/routes/index.svelte | 90 +++++++++++++--------- frontend/src/stores/gameStore.ts | 20 +++++ 7 files changed, 204 insertions(+), 76 deletions(-) create mode 100644 frontend/src/stores/gameStore.ts diff --git a/frontend/src/components/ConnectRoom.svelte b/frontend/src/components/ConnectRoom.svelte index ecd3e54..ad908ed 100644 --- a/frontend/src/components/ConnectRoom.svelte +++ b/frontend/src/components/ConnectRoom.svelte @@ -55,6 +55,7 @@ }); +
{#if $rejoinRoomSessionData?.sessionToken}
diff --git a/frontend/src/components/Game/Lobby.svelte b/frontend/src/components/Game/Lobby.svelte index 4d86012..fbd1047 100644 --- a/frontend/src/components/Game/Lobby.svelte +++ b/frontend/src/components/Game/Lobby.svelte @@ -21,9 +21,13 @@ UserX, Play, TextCursorInput, + + Gamepad2 + } from "lucide-svelte"; import { _ } from "svelte-i18n"; import { GameState, sessionStore } from "../../stores/sessionStore"; + import { toggleLobbyOverlay } from '../../stores/gameStore'; let copied = false; let showLeaveModal = false; @@ -160,16 +164,27 @@ {$_("lobby.leave_game")} + +{#if sessionStore.getState().gameState !== GameState.Lobby} + +{/if} +
- {$_("game_status.game_status", { - values: { - game_status: $_( - `game_status.${GameState[$sessionStore.gameState].toLowerCase()}`, - ), - }, - })}{$_("game_status.game_status")} + + {$_(`game_status.${GameState[$sessionStore.gameState].toLowerCase()}`)} + +
@@ -181,6 +196,8 @@ {/if} + + {#if sessionStore.getState().gameState === GameState.Lobby}