fix: Refine theme initialization logic to respect saved preferences and system color scheme
This commit is contained in:
@@ -10,11 +10,14 @@ export function ThemeProvider({ children }) {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Check for saved theme preference or default to light mode
|
// Check for saved theme preference or default to light mode
|
||||||
const savedTheme = localStorage.getItem('theme');
|
const savedTheme = localStorage.getItem('theme');
|
||||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
||||||
|
|
||||||
if (savedTheme === 'dark' || (!savedTheme && prefersDark)) {
|
if (savedTheme === 'dark') {
|
||||||
setIsDark(true);
|
setIsDark(true);
|
||||||
document.documentElement.classList.add('dark');
|
document.documentElement.classList.add('dark');
|
||||||
|
} else {
|
||||||
|
// Always default to light mode if no preference is saved
|
||||||
|
setIsDark(false);
|
||||||
|
document.documentElement.classList.remove('dark');
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user