"use client" import * as React from "react" import { Moon, Sun, Monitor } from "lucide-react" import { useTheme } from "next-themes" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" export function ThemeToggle() { const { setTheme, theme } = useTheme() const [mounted, setMounted] = React.useState(false) // Ensure we only render the correct icon after mounting to avoid hydration mismatch React.useEffect(() => { setMounted(true) }, []) if (!mounted) { return ( ) } return ( setTheme("light")} className="flex items-center gap-3 nav-dropdown-item cursor-pointer group/item" > Light {theme === "light" && ( )} setTheme("dark")} className="flex items-center gap-3 nav-dropdown-item cursor-pointer group/item" > Dark {theme === "dark" && ( )} setTheme("system")} className="flex items-center gap-3 nav-dropdown-item cursor-pointer group/item" > System {theme === "system" && ( )} ) }