import { useState, useEffect } from 'react' import { Sun, Moon } from 'lucide-react' import clsx from 'clsx' export default function ThemeToggle() { const [isDark, setIsDark] = useState(true) useEffect(() => { // 从 localStorage 读取主题 const saved = localStorage.getItem('theme') if (saved) { setIsDark(saved === 'dark') document.documentElement.classList.toggle('light', saved === 'light') } else { // 检测系统偏好 const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches setIsDark(prefersDark) if (!prefersDark) { document.documentElement.classList.add('light') } } }, []) const toggleTheme = () => { const newIsDark = !isDark setIsDark(newIsDark) document.documentElement.classList.toggle('light', !newIsDark) localStorage.setItem('theme', newIsDark ? 'dark' : 'light') } return ( ) }