"use client"; import { createContext, useContext, useEffect, useState } from "react"; type Theme = "dark" | "light"; interface ThemeContextType { theme: Theme; toggle: () => void; } const ThemeContext = createContext({ theme: "dark", toggle: () => {}, }); export function ThemeProvider({ children }: { children: React.ReactNode }) { const [theme, setTheme] = useState("dark"); useEffect(() => { const stored = localStorage.getItem("wyview-theme") as Theme | null; if (stored) setTheme(stored); }, []); useEffect(() => { const root = document.documentElement; if (theme === "light") { root.classList.add("light"); root.classList.remove("dark"); } else { root.classList.add("dark"); root.classList.remove("light"); } localStorage.setItem("wyview-theme", theme); }, [theme]); const toggle = () => setTheme((t) => (t === "dark" ? "light" : "dark")); return ( {children} ); } export function useTheme() { return useContext(ThemeContext); }