import { createContext, useContext, useEffect, type ReactNode } from "react"; import { usePersistentState } from "../hooks/usePersistentState"; type ThemeContextType = { isDarkMode: boolean; toggleTheme: () => void; }; const ThemeContext = createContext(undefined); type ThemeProviderProps = { children: ReactNode; }; export function ThemeProvider({ children }: ThemeProviderProps) { const [isDarkMode, setIsDarkMode] = usePersistentState("theme", false); useEffect(() => { document.documentElement.setAttribute("data-theme", isDarkMode ? "dark" : "light"); }, [isDarkMode]); const toggleTheme = () => setIsDarkMode((prev) => !prev); return {children}; } export function useTheme(): ThemeContextType { const context = useContext(ThemeContext); if (context === undefined) { throw new Error("useTheme must be used within a ThemeProvider"); } return context; }