From 66668d85d603c5841d755a6023aa1925559fc6d4 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 01:32:51 +0800 Subject: chore(workspace): replace legacy codes --- packages/ui-new/src/models/settings.ts | 75 ---------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 packages/ui-new/src/models/settings.ts (limited to 'packages/ui-new/src/models/settings.ts') diff --git a/packages/ui-new/src/models/settings.ts b/packages/ui-new/src/models/settings.ts deleted file mode 100644 index 9f4119c..0000000 --- a/packages/ui-new/src/models/settings.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { toast } from "sonner"; -import { create } from "zustand/react"; -import { getConfigPath, getSettings, saveSettings } from "@/client"; -import type { LauncherConfig } from "@/types"; - -export interface SettingsState { - config: LauncherConfig | null; - configPath: string | null; - - /* Theme getter */ - get theme(): string; - /* Apply theme to the document */ - applyTheme: (theme?: string) => void; - - /* Refresh settings from the backend */ - refresh: () => Promise; - /* Save settings to the backend */ - save: () => Promise; - /* Update settings in the backend */ - update: (config: LauncherConfig) => Promise; - /* Merge settings with the current config without saving */ - merge: (config: Partial) => void; -} - -export const useSettingsStore = create((set, get) => ({ - config: null, - configPath: null, - - get theme() { - const { config } = get(); - return config?.theme || "dark"; - }, - applyTheme: (theme?: string) => { - const { config } = get(); - if (!config) return; - if (!theme) theme = config.theme; - let themeValue = theme; - if (theme === "system") { - themeValue = window.matchMedia("(prefers-color-scheme: dark)").matches - ? "dark" - : "light"; - } - document.documentElement.classList.remove("light", "dark"); - document.documentElement.setAttribute("data-theme", themeValue); - document.documentElement.classList.add(themeValue); - set({ config: { ...config, theme } }); - }, - - refresh: async () => { - const { applyTheme } = get(); - try { - const settings = await getSettings(); - const path = await getConfigPath(); - set({ config: settings, configPath: path }); - applyTheme(settings.theme); - } catch (error) { - console.error("Failed to load settings:", error); - toast.error("Failed to load settings"); - } - }, - save: async () => { - const { config } = get(); - if (!config) return; - await saveSettings(config); - }, - update: async (config) => { - await saveSettings(config); - set({ config }); - }, - merge: (config) => { - const { config: currentConfig } = get(); - if (!currentConfig) throw new Error("Settings not loaded"); - set({ config: { ...currentConfig, ...config } }); - }, -})); -- cgit v1.2.3-70-g09d2