import { createContext, useContext, useEffect, useState } from 'react'; type Theme = 'light' | 'dark'; const ThemeContext = createContext<{ theme: Theme; toggleTheme: () => void; }>({ theme: 'dark', toggleTheme: () => {} }); export function ThemeProvider({ children }: { children: React.ReactNode }) { const [theme, setTheme] = useState(() => { const saved = localStorage.getItem('theme') as Theme; if (saved) return saved; return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; }); useEffect(() => { document.documentElement.classList.toggle('dark', theme === 'dark'); localStorage.setItem('theme', theme); }, [theme]); const toggleTheme = () => setTheme((t) => (t === 'dark' ? 'light' : 'dark')); return ( {children} ); } export const useTheme = () => useContext(ThemeContext);