import { useState, useEffect, useCallback } from 'react'; import type { Theme } from '../types'; export function useTheme() { const [theme, setTheme] = useState(() => { const stored = localStorage.getItem('theme') as Theme | null; if (stored) return stored; return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; }); useEffect(() => { document.documentElement.setAttribute('data-theme', theme); localStorage.setItem('theme', theme); }, [theme]); const toggleTheme = useCallback(() => { setTheme((prev) => (prev === 'dark' ? 'light' : 'dark')); }, []); return { theme, toggleTheme }; }