import { useState, useEffect } from 'react'; type Theme = 'light' | 'dark'; const THEME_STORAGE_KEY = 'app-theme'; export const useTheme = () => { const [theme, setTheme] = useState(() => { // Get theme from localStorage or default to 'dark' if (typeof window !== 'undefined') { const stored = localStorage.getItem(THEME_STORAGE_KEY) as Theme | null; return stored || 'dark'; } return 'dark'; }) as [Theme, (value: Theme | ((prev: Theme) => Theme)) => void]; useEffect(() => { // Apply theme to document const root = document.documentElement; if (theme === 'dark') { root.classList.add('dark'); } else { root.classList.remove('dark'); } // Save to localStorage localStorage.setItem(THEME_STORAGE_KEY, theme); }, [theme]); const toggleTheme = () => { setTheme((prev) => (prev === 'dark' ? 'light' : 'dark')); }; return { theme, toggleTheme, setTheme }; };