import { createContext, useContext, useState, useEffect, type ReactNode } from 'react'; type ThemeMode = 'dark' | 'light'; interface ThemeContextType { themeMode: ThemeMode; toggleTheme: () => void; isDark: boolean; } const ThemeContext = createContext(undefined); const STORAGE_KEY = 'paperless-theme-mode'; export function ThemeProvider({ children }: { children: ReactNode }) { const [themeMode, setThemeMode] = useState(() => { const stored = localStorage.getItem(STORAGE_KEY); return (stored === 'light' || stored === 'dark') ? stored : 'dark'; }); useEffect(() => { localStorage.setItem(STORAGE_KEY, themeMode); document.documentElement.setAttribute('data-theme', themeMode); }, [themeMode]); const toggleTheme = () => setThemeMode((prev) => (prev === 'dark' ? 'light' : 'dark')); return ( {children} ); } export function useTheme() { const ctx = useContext(ThemeContext); if (!ctx) throw new Error('useTheme must be used within ThemeProvider'); return ctx; }