Skip to content

Commit 8acf3f6

Browse files
committed
Fix initial system theme
1 parent d170b3e commit 8acf3f6

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/contexts/ThemeContext.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,14 @@ export function ThemeProvider({ children }: { children: ReactNode }) {
3131
// Initialize theme as early as possible to prevent flash
3232
useLayoutEffect(() => {
3333
const stored = localStorage.getItem('theme') as Theme;
34-
if (stored && THEMES.includes(stored)) {
35-
setTheme(stored);
36-
const effectiveTheme = getEffectiveTheme(stored);
37-
document.documentElement.classList.add(effectiveTheme);
38-
document.documentElement.style.colorScheme = effectiveTheme;
34+
const initialTheme = stored && THEMES.includes(stored) ? stored : 'system';
35+
setTheme(initialTheme);
36+
const effectiveTheme = getEffectiveTheme(initialTheme);
37+
document.documentElement.classList.remove(...THEMES);
38+
document.documentElement.classList.add(effectiveTheme);
39+
document.documentElement.style.colorScheme = effectiveTheme;
40+
if (!stored) {
41+
localStorage.setItem('theme', initialTheme);
3942
}
4043
setMounted(true);
4144
}, []);

0 commit comments

Comments
 (0)