'use client'; import { useTheme } from 'next-themes'; import { Sun, Moon, Monitor } from 'lucide-react'; import { useEffect, useState } from 'react'; export function ThemeToggle() { const { theme, setTheme } = useTheme(); const [mounted, setMounted] = useState(false); // Avoid hydration mismatch useEffect(() => { setMounted(true); }, []); if (!mounted) { return ( ); } const cycleTheme = () => { if (theme === 'light') setTheme('dark'); else if (theme === 'dark') setTheme('system'); else setTheme('light'); }; const getIcon = () => { switch (theme) { case 'dark': return ; case 'light': return ; default: return ; } }; const getTitle = () => { switch (theme) { case 'dark': return 'Dark mode'; case 'light': return 'Light mode'; default: return 'System theme'; } }; return ( ); }