"use client"; import { useTheme } from "next-themes"; import type * as React from "react"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; import { Laptop, Moon, Sun } from "lucide-react"; import { useState } from "react"; import { useEffect } from "react"; export function ThemeToggle({ className, ...props }: React.ComponentProps) { const { setTheme, theme } = useTheme(); const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); // NOTE: hydration error if we don't do this if (!mounted) { return ( ); } return ( ); }