'use client' import { useEffect, useState } from 'react' const STORAGE_KEY = 'magent_theme' const getPreferredTheme = () => { if (typeof window === 'undefined') return 'dark' const stored = window.localStorage.getItem(STORAGE_KEY) if (stored === 'light' || stored === 'dark') { return stored } return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' } const applyTheme = (theme: string) => { if (typeof document === 'undefined') return document.documentElement.setAttribute('data-theme', theme) } export default function ThemeToggle() { const [theme, setTheme] = useState<'light' | 'dark'>('dark') useEffect(() => { const preferred = getPreferredTheme() setTheme(preferred) applyTheme(preferred) }, []) const toggle = () => { const next = theme === 'dark' ? 'light' : 'dark' setTheme(next) applyTheme(next) if (typeof window !== 'undefined') { window.localStorage.setItem(STORAGE_KEY, next) } } return ( ) }