'use client'; import { useEffect, useState } from 'react'; import Moon from 'lucide-react/dist/esm/icons/moon'; import Sun from 'lucide-react/dist/esm/icons/sun'; import { Button } from '@/components/ui/button'; export function DarkModeToggle() { const [isDark, setIsDark] = useState(false); useEffect(() => { // Check if dark mode is enabled in localStorage or system preference // Handle SSR by checking if we're in the browser if (typeof window === 'undefined') return; const savedTheme = localStorage.getItem('theme'); const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; const shouldBeDark = savedTheme === 'dark' || (!savedTheme && prefersDark); setIsDark(shouldBeDark); if (shouldBeDark) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } }, []); const toggleDarkMode = () => { const newIsDark = !isDark; setIsDark(newIsDark); // Handle SSR by checking if we're in the browser if (typeof window === 'undefined') return; if (newIsDark) { document.documentElement.classList.add('dark'); localStorage.setItem('theme', 'dark'); } else { document.documentElement.classList.remove('dark'); localStorage.setItem('theme', 'light'); } }; return ( ); }