aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/ui-new/src/stores/game-store.ts
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2026-02-25 01:32:51 +0800
committer苏向夜 <fu050409@163.com>2026-02-25 01:32:51 +0800
commit66668d85d603c5841d755a6023aa1925559fc6d4 (patch)
tree485464148c76b0021efb55b7d2afd1c3004ceee0 /packages/ui-new/src/stores/game-store.ts
parenta6773bd092db654360c599ca6b0108ea0e456e8c (diff)
downloadDropOut-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.ts101
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 });
- },
-}));