fix: 修复亮暗模式以及主题色配置问题

This commit is contained in:
Montia37
2025-09-09 23:06:25 +08:00
parent 0d4afd8cd4
commit 5df55fc916
2 changed files with 17 additions and 19 deletions

View File

@@ -118,28 +118,21 @@ export const useThemeManager = () => {
return (defaultAppearance as Appearance) || THEME_DEFAULTS.appearance;
});
const [color, setColor] = useState<Colors>(() => {
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<Colors>(
(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) {

View File

@@ -92,9 +92,17 @@ export const AppContent = () => {
);
};
const ThemedApp = () => {
const themeManager = useThemeManager();
return (
<ThemeProvider value={themeManager}>
<AppContent />
</ThemeProvider>
);
};
const App = () => {
const { publicSettings, loading } = useNodeData();
const themeManager = useThemeManager();
if (loading) {
return <Loading />;
@@ -102,9 +110,7 @@ const App = () => {
return (
<ConfigProvider publicSettings={publicSettings}>
<ThemeProvider value={themeManager}>
<AppContent />
</ThemeProvider>
<ThemedApp />
</ConfigProvider>
);
};