import { useEffect, useState } from "react"; import { useTheme } from "next-themes"; import { Sun, Moon, Monitor } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; interface ThemeToggleProps { className?: string; } const themeLabels: Record = { light: "Hell", dark: "Dunkel", system: "System", }; export function ThemeToggle({ className }: ThemeToggleProps) { const { theme, setTheme, resolvedTheme } = useTheme(); const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); const currentLabel = themeLabels[theme ?? "system"] ?? "System"; const icon = !mounted ? ( ) : theme === "system" ? ( ) : resolvedTheme === "dark" ? ( ) : ( ); return ( setTheme("light")}> Hell setTheme("dark")}> Dunkel setTheme("system")}> System ); }