From 5df55fc91653e5230d836902e0aefb481c74879a Mon Sep 17 00:00:00 2001 From: Montia37 Date: Tue, 9 Sep 2025 23:06:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=AE=E6=9A=97?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=BB=A5=E5=8F=8A=E4=B8=BB=E9=A2=98=E8=89=B2?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useTheme.ts | 22 +++++++--------------- src/main.tsx | 14 ++++++++++---- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/hooks/useTheme.ts b/src/hooks/useTheme.ts index a5ab926..7b1447e 100644 --- a/src/hooks/useTheme.ts +++ b/src/hooks/useTheme.ts @@ -118,28 +118,21 @@ export const useThemeManager = () => { return (defaultAppearance as Appearance) || THEME_DEFAULTS.appearance; }); - const [color, setColor] = useState(() => { - if (enableLocalStorage) { - const storedColor = localStorage.getItem("color"); - const cleanedColor = storedColor - ? storedColor.replace(/^"|"$/g, "") - : null; - if (allowedColors.includes(cleanedColor as Colors)) { - return cleanedColor as Colors; - } - } + const [color, setColor] = useState( + (defaultColor as Colors) || THEME_DEFAULTS.color + ); - return (defaultColor as Colors) || THEME_DEFAULTS.color; - }); + useEffect(() => { + setColor((defaultColor as Colors) || THEME_DEFAULTS.color); + }, [defaultColor]); const resolvedAppearance = useSystemTheme(appearance); useEffect(() => { if (enableLocalStorage) { localStorage.setItem("appearance", appearance); - localStorage.setItem("color", color); } - }, [appearance, color, enableLocalStorage]); + }, [appearance, enableLocalStorage]); return { appearance: resolvedAppearance, @@ -149,7 +142,6 @@ export const useThemeManager = () => { setColor, }; }; - export const useTheme = () => { const context = useContext(ThemeContext); if (context === undefined) { diff --git a/src/main.tsx b/src/main.tsx index dfd3af1..3e01dbd 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -92,9 +92,17 @@ export const AppContent = () => { ); }; +const ThemedApp = () => { + const themeManager = useThemeManager(); + return ( + + + + ); +}; + const App = () => { const { publicSettings, loading } = useNodeData(); - const themeManager = useThemeManager(); if (loading) { return ; @@ -102,9 +110,7 @@ const App = () => { return ( - - - + ); };