Spaces:
Sleeping
Sleeping
import React, { useEffect, useState } from 'react'; | |
import ReactDOM from 'react-dom/client'; | |
import App from './components/App.jsx'; | |
export const ThemeContext = React.createContext(); | |
const ThemeProvider = ({ children }) => { | |
const [theme, setTheme] = useState(() => { | |
if (typeof window !== 'undefined') { | |
return localStorage.getItem('theme') || 'light'; | |
} | |
return 'light'; | |
}); | |
useEffect(() => { | |
document.documentElement.classList.toggle('dark', theme === 'dark'); | |
localStorage.setItem('theme', theme); | |
}, [theme]); | |
return ( | |
<ThemeContext.Provider value={{ theme, setTheme }}> | |
{children} | |
</ThemeContext.Provider> | |
); | |
}; | |
ReactDOM.createRoot(document.getElementById('root')).render( | |
<ThemeProvider> | |
<App /> | |
</ThemeProvider> | |
); |