This commit is contained in:
2026-02-16 19:34:35 +00:00
commit 9ab0940ca4
784 changed files with 41710 additions and 0 deletions
@@ -0,0 +1,32 @@
import { useEffect, useRef } from 'react';
import { useTheme } from '@/components/ui/ThemeProvider';
import { useSettings } from './useSettings';
import { DEFAULT_SETTINGS } from './types/user-settings';
export const useThemeSync = () => {
const { settings, saveSettings } = useSettings();
const { setTheme } = useTheme();
const migrated = useRef(false);
useEffect(() => {
if (!settings) return;
// One-time migration: if settings are default and localStorage has a theme, save it
if (!migrated.current) {
migrated.current = true;
const lsTheme = localStorage.getItem('officer-theme');
if (
lsTheme &&
settings.appearance.theme === DEFAULT_SETTINGS.appearance.theme &&
lsTheme !== settings.appearance.theme
) {
const updated = { ...settings, appearance: { ...settings.appearance, theme: lsTheme } };
saveSettings(updated);
setTheme(lsTheme);
return;
}
}
setTheme(settings.appearance.theme);
}, [settings?.appearance.theme]);
};