"use client"; import { createContext, useContext, useEffect, useState } from "react"; type Theme = "dark" | "light"; const ThemeContext = createContext<{ theme: Theme; toggleTheme: () => void; }>({ theme: "dark", toggleTheme: () => {}, }); // safe getter (évite SSR crash) function getInitialTheme(): Theme { if (typeof window === "undefined") {return "dark";} return ( (localStorage.getItem("theme") as Theme) || (document.documentElement.getAttribute("data-theme") as Theme) || "dark" ); } export default function ThemeProvider({ children, }: { children: React.ReactNode; }) { const [theme, setTheme] = useState(() => getInitialTheme()); useEffect(() => { document.documentElement.setAttribute("data-theme", theme); localStorage.setItem("theme", theme); }, [theme]); const toggleTheme = () => { setTheme((prev) => (prev === "dark" ? "light" : "dark")); }; return ( {children} ); } export function useTheme() { return useContext(ThemeContext); }