import { createContext, useContext, useState, useEffect } from 'react' const ThemeContext = createContext() export function ThemeProvider({ children }) { const [darkMode, setDarkMode] = useState(() => { // Check localStorage or system preference const stored = localStorage.getItem('darkMode') if (stored !== null) return stored === 'true' return window.matchMedia('(prefers-color-scheme: dark)').matches }) useEffect(() => { // Apply dark mode class to document if (darkMode) { document.documentElement.classList.add('dark') } else { document.documentElement.classList.remove('dark') } localStorage.setItem('darkMode', String(darkMode)) }, [darkMode]) const toggleDarkMode = () => setDarkMode(prev => !prev) return ( {children} ) } export function useTheme() { const context = useContext(ThemeContext) if (!context) { throw new Error('useTheme must be used within ThemeProvider') } return context }