"use client"; import React, { createContext, useContext, useEffect, useState } from "react"; type Theme = "light" | "dark"; const ThemeCtx = createContext<{ theme: Theme; setTheme: (t: Theme) => void }>({ theme: "light", setTheme: () => {}, }); export function ThemeProvider({ children }: { children: React.ReactNode }) { const [theme, setThemeState] = useState("light"); useEffect(() => { try { const stored = localStorage.getItem("theme") as Theme | null; if (stored === "dark" || stored === "light") { setThemeState(stored); document.documentElement.classList.toggle("dark", stored === "dark"); } } catch {} }, []); const setTheme = (t: Theme) => { setThemeState(t); try { localStorage.setItem("theme", t); } catch {} document.documentElement.classList.toggle("dark", t === "dark"); }; return {children}; } export function useTheme() { return useContext(ThemeCtx); }