"use client"; import { useEffect, useState } from "react"; import { Moon, Sun } from "lucide-react"; type Theme = "light" | "dark"; export default function ThemeToggle() { const [theme, setTheme] = useState("light"); useEffect(() => { const saved = localStorage.getItem("write-theme"); const nextTheme: Theme = saved === "dark" ? "dark" : "light"; setTheme(nextTheme); if (nextTheme === "dark") { document.documentElement.dataset.theme = "dark"; } else { delete document.documentElement.dataset.theme; } }, []); const toggleTheme = () => { const nextTheme: Theme = theme === "dark" ? "light" : "dark"; setTheme(nextTheme); localStorage.setItem("write-theme", nextTheme); if (nextTheme === "dark") { document.documentElement.dataset.theme = "dark"; } else { delete document.documentElement.dataset.theme; } }; const isDark = theme === "dark"; const Icon = isDark ? Sun : Moon; return ( ); }