diff options
| author | 2026-02-25 01:32:51 +0800 | |
|---|---|---|
| committer | 2026-02-25 01:32:51 +0800 | |
| commit | 66668d85d603c5841d755a6023aa1925559fc6d4 (patch) | |
| tree | 485464148c76b0021efb55b7d2afd1c3004ceee0 /packages/ui-new/src/stores/game-store.ts | |
| parent | a6773bd092db654360c599ca6b0108ea0e456e8c (diff) | |
| download | DropOut-66668d85d603c5841d755a6023aa1925559fc6d4.tar.gz DropOut-66668d85d603c5841d755a6023aa1925559fc6d4.zip | |
chore(workspace): replace legacy codes
Diffstat (limited to 'packages/ui-new/src/stores/game-store.ts')
| -rw-r--r-- | packages/ui-new/src/stores/game-store.ts | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/packages/ui-new/src/stores/game-store.ts b/packages/ui-new/src/stores/game-store.ts deleted file mode 100644 index fa0f9f8..0000000 --- a/packages/ui-new/src/stores/game-store.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { toast } from "sonner"; -import { create } from "zustand"; -import { getVersions } from "@/client"; -import type { Version } from "@/types/bindings/manifest"; - -interface GameState { - // State - versions: Version[]; - selectedVersion: string; - - // Computed property - latestRelease: Version | undefined; - - // Actions - loadVersions: (instanceId?: string) => Promise<void>; - startGame: ( - currentAccount: any, - openLoginModal: () => void, - activeInstanceId: string | null, - setView: (view: any) => void, - ) => Promise<void>; - setSelectedVersion: (version: string) => void; - setVersions: (versions: Version[]) => void; -} - -export const useGameStore = create<GameState>((set, get) => ({ - // Initial state - versions: [], - selectedVersion: "", - - // Computed property - get latestRelease() { - return get().versions.find((v) => v.type === "release"); - }, - - // Actions - loadVersions: async (instanceId?: string) => { - console.log("Loading versions for instance:", instanceId); - try { - // Ask the backend for known versions (optionally scoped to an instance). - // The Tauri command `get_versions` is expected to return an array of `Version`. - const versions = await getVersions(); - set({ versions: versions ?? [] }); - } catch (e) { - console.error("Failed to load versions:", e); - // Keep the store consistent on error by clearing versions. - set({ versions: [] }); - } - }, - - startGame: async ( - currentAccount, - openLoginModal, - activeInstanceId, - setView, - ) => { - const { selectedVersion } = get(); - - if (!currentAccount) { - alert("Please login first!"); - openLoginModal(); - return; - } - - if (!selectedVersion) { - alert("Please select a version!"); - return; - } - - if (!activeInstanceId) { - alert("Please select an instance first!"); - setView("instances"); - return; - } - - toast.info("Preparing to launch " + selectedVersion + "..."); - - try { - // Note: In production, this would call Tauri invoke - // const msg = await invoke<string>("start_game", { - // instanceId: activeInstanceId, - // versionId: selectedVersion, - // }); - - // Simulate success - await new Promise((resolve) => setTimeout(resolve, 1000)); - toast.success("Game started successfully!"); - } catch (e) { - console.error(e); - toast.error(`Error: ${e}`); - } - }, - - setSelectedVersion: (version: string) => { - set({ selectedVersion: version }); - }, - - setVersions: (versions: Version[]) => { - set({ versions }); - }, -})); |