@@ -161,7 +212,7 @@ const Settings: React.FC = () => {
{t("about")}
{t("version")}:
{appVersion || "-"}
diff --git a/src/renderer/src/main.tsx b/src/renderer/src/main.tsx
index 98b8962..bcafced 100644
--- a/src/renderer/src/main.tsx
+++ b/src/renderer/src/main.tsx
@@ -5,8 +5,21 @@ import { ThemeProvider } from "@lobehub/ui";
import { I18nextProvider } from "react-i18next";
import i18n from "./i18n";
import App from "./App";
+import { useThemeStore } from "./stores/themeStore";
import "./index.css";
+const ThemeApp: React.FC = () => {
+ const { themeMode, setThemeMode } = useThemeStore();
+
+ return (
+
+
+
+
+
+ );
+};
+
ReactDOM.createRoot(document.getElementById("root")!).render(
-
-
-
-
-
+
,
diff --git a/src/renderer/src/stores/index.ts b/src/renderer/src/stores/index.ts
index 636de9d..8cf391e 100644
--- a/src/renderer/src/stores/index.ts
+++ b/src/renderer/src/stores/index.ts
@@ -9,4 +9,6 @@ export { useDeployStore } from "./deployStore";
export { useVersionStore } from "./versionStore";
export { useUIStore } from "./uiStore";
export { useSessionStore } from "./sessionStore";
-export type { ViewMode, SelectedFile } from "./sessionStore";
\ No newline at end of file
+export type { ViewMode, SelectedFile } from "./sessionStore";
+export { useThemeStore } from "./themeStore";
+export type { ThemeMode } from "./themeStore";
\ No newline at end of file
diff --git a/src/renderer/src/stores/themeStore.ts b/src/renderer/src/stores/themeStore.ts
new file mode 100644
index 0000000..4763236
--- /dev/null
+++ b/src/renderer/src/stores/themeStore.ts
@@ -0,0 +1,32 @@
+/**
+ * Theme Store
+ * Manages theme mode preference with localStorage persistence
+ */
+
+import { create } from "zustand";
+import { persist } from "zustand/middleware";
+
+export type ThemeMode = "light" | "dark" | "auto";
+
+interface ThemeState {
+ // State
+ themeMode: ThemeMode;
+
+ // Actions
+ setThemeMode: (mode: ThemeMode) => void;
+}
+
+export const useThemeStore = create
()(
+ persist(
+ (set) => ({
+ // Initial state
+ themeMode: "auto",
+
+ // Actions
+ setThemeMode: (mode) => set({ themeMode: mode }),
+ }),
+ {
+ name: "theme-storage",
+ },
+ ),
+);