"use client"; import { useEffect, useState } from "react"; import { readThemePreference, resolveTheme, saveThemePreference, toggleTheme, } from "@/lib/theme-preference.js"; function applyTheme(theme) { document.documentElement.dataset.theme = theme; document.documentElement.style.colorScheme = theme; } export default function ThemeToggle() { const [theme, setTheme] = useState("light"); useEffect(() => { const nextTheme = resolveTheme({ savedTheme: readThemePreference(window.localStorage), systemPrefersDark: window.matchMedia?.("(prefers-color-scheme: dark)").matches, }); setTheme(nextTheme); applyTheme(nextTheme); }, []); const switchTheme = () => { const nextTheme = toggleTheme(theme); setTheme(nextTheme); saveThemePreference(nextTheme, window.localStorage); applyTheme(nextTheme); }; const isDark = theme === "dark"; return ( ); }