"use client"; import { Switch } from "@headlessui/react"; import { MoonIcon, SunIcon } from "@heroicons/react/24/outline"; import { useTheme } from "next-themes"; import { useEffect, useState } from "react"; export default function Theme() { const { resolvedTheme, setTheme } = useTheme(); const [mounted, setMounted] = useState(false); const isDark = resolvedTheme === "dark"; // useEffect only runs on the client, so now we can safely show the UI useEffect(() => { setMounted(true); }, []); if (!mounted) { return null; } return ( setTheme(checked ? "dark" : "light")} className={`${ isDark ? "!bg-gray-800 dark:bg-background-dark-400" : "!bg-gray-200 dark:bg-background-dark-400" } relative inline-flex h-4 w-9 items-center rounded-full`} > ); }