"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 (
);
}