"use client"; import * as React from "react"; import { Moon, Sun } from "lucide-react"; import { useTheme } from "next-themes"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; export function ModeToggle() { const { theme, setTheme, resolvedTheme } = useTheme(); const [mounted, setMounted] = React.useState(false); // Untuk menghindari hydration mismatch React.useEffect(() => { setMounted(true); }, []); // Jika belum mounted, jangan render apapun untuk menghindari mismatch if (!mounted) { return (
); } // Tentukan theme yang aktif: gunakan resolvedTheme untuk menampilkan ikon yang sesuai // jika theme === "system", resolvedTheme akan menjadi "light" atau "dark" sesuai device const activeTheme = theme === "system" || !theme ? resolvedTheme : theme; const handleToggle = () => { // Toggle antara light dan dark // Jika sekarang light, ganti ke dark, dan sebaliknya if (activeTheme === "light") { setTheme("dark"); } else { setTheme("light"); } }; return ( ); }