"use client"; import { ThemeProvider, useTheme } from "next-themes"; import { Moon, Sun } from "lucide-react"; import { useSyncExternalStore, type ReactNode } from "react"; const noop = (): (() => void) => () => {}; /** true after hydration, false during SSR — without a setState-in-effect. */ export function useMounted(): boolean { return useSyncExternalStore(noop, () => true, () => false); } export function Providers({ children }: { children: ReactNode }) { return ( {children} ); } export function ThemeToggle() { const { resolvedTheme, setTheme } = useTheme(); const mounted = useMounted(); const dark = mounted ? resolvedTheme === "dark" : true; return ( ); }