"use client" import { useEffect, useState } from "react" import { Moon, Sun } from "lucide-react" import { useTheme } from "next-themes" import { cn } from "@/lib/utils" /** * Renders an empty slot until mounted: `resolvedTheme` is unknown on the server (and on * the client's first paint, before next-themes reads localStorage), so rendering an icon * before that would either be wrong or cause a hydration mismatch. */ export function ThemeToggle({ className }: { className?: string }) { const { resolvedTheme, setTheme } = useTheme() const [mounted, setMounted] = useState(false) useEffect(() => setMounted(true), []) if (!mounted) { return
} const isDark = resolvedTheme === "dark" return ( ) }