diff --git a/src/context/ThemeContext.jsx b/src/context/ThemeContext.jsx index b27d1fc..3f1ce89 100644 --- a/src/context/ThemeContext.jsx +++ b/src/context/ThemeContext.jsx @@ -3,13 +3,33 @@ import { createContext, useContext, useState, useEffect } from 'react' const ThemeCtx = createContext(null) export function ThemeProvider({ children }) { + const [theme, setTheme] = useState(() => { - return localStorage.getItem('oe_theme') || 'dark' + try { + const stored = localStorage.getItem('oe_theme') + + if (stored === 'dark' || stored === 'light') { + return stored + } + + if (stored !== null) { + console.warn(`Invalid theme value found in localStorage: "${stored}". Falling back to 'dark'.`) + } + + } catch (error) { + console.warn('Failed to read theme from localStorage:', error) + } + + return 'dark' }) useEffect(() => { document.documentElement.setAttribute('data-theme', theme) - localStorage.setItem('oe_theme', theme) + try { + localStorage.setItem('oe_theme', theme) + } catch (error) { + console.warn('Failed to save theme to localStorage:', error) + } }, [theme]) const toggleTheme = () => {