import { Moon, Sun } from "lucide-react"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; const ThemeToggle = ({ className }: { className?: string }) => { const [theme, setTheme] = useState<"light" | "dark">("light"); useEffect(() => { // Get initial theme from localStorage or system preference const savedTheme = localStorage.getItem("theme"); const systemTheme = window.matchMedia("(prefers-color-scheme: dark)") .matches ? "dark" : "light"; const initialTheme = savedTheme || systemTheme; setTheme(initialTheme as "light" | "dark"); document.documentElement.classList.toggle("dark", initialTheme === "dark"); }, []); const toggleTheme = () => { const newTheme = theme === "light" ? "dark" : "light"; setTheme(newTheme); document.documentElement.classList.toggle("dark"); localStorage.setItem("theme", newTheme); }; return ( ); }; export { ThemeToggle };