import IconButton from '@mui/material/IconButton'; import Menu from '@mui/material/Menu'; import MenuItem from '@mui/material/MenuItem'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; import LightModeIcon from '@mui/icons-material/LightMode'; import DarkModeIcon from '@mui/icons-material/DarkMode'; import SettingsBrightnessIcon from '@mui/icons-material/SettingsBrightness'; import { useState } from 'react'; import { useThemeStore } from '@/store'; import type { ThemeMode } from '@/theme'; const modes: { value: ThemeMode; label: string; icon: React.ReactNode }[] = [ { value: 'light', label: 'Light', icon: }, { value: 'dark', label: 'Dark', icon: }, { value: 'system', label: 'System', icon: }, ]; export function ThemeToggle() { const { mode, setMode } = useThemeStore(); const [anchor, setAnchor] = useState(null); const current = modes.find((m) => m.value === mode) ?? modes[2]!; return ( <> setAnchor(e.currentTarget)} aria-label="Toggle theme" size="small" sx={{ color: 'text.primary' }} > {current.icon} setAnchor(null)}> {modes.map((m) => ( { setMode(m.value); setAnchor(null); }} > {m.icon} {m.label} ))} ); } export default ThemeToggle;