import { useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { Search, Sun, Moon, Plus, Menu } from 'lucide-react'; import { Button, Input } from '@/components/ui'; const TITLES: Record = { '/timeline': { title: '时间线', sub: '按学年与月份回顾全部足迹' }, '/records': { title: '记录', sub: '全部足迹的检索与管理' }, '/grades': { title: '成绩', sub: '学年学科成绩 · 梯度与总览' }, '/dashboard': { title: '统计', sub: '量化个人成长收获' }, '/types': { title: '记录类型', sub: '类型与字段模板管理' }, '/taxonomy': { title: '字典与维度', sub: '级别、角色与成长维度' }, '/profile': { title: '个人信息', sub: '学籍与联系方式维护' }, '/resume': { title: '我的简历', sub: '模板配置 · Word 导出' }, '/assessment': { title: '综合测评', sub: '学年素质测评与材料导出' }, '/admin': { title: '管理', sub: '用户与邀请码 · 数据维护' }, }; export function Header({ onMenu }: { onMenu?: () => void }) { const { pathname } = useLocation(); const navigate = useNavigate(); const [q, setQ] = useState(''); const [dark, setDark] = useState(document.documentElement.classList.contains('dark')); const meta = TITLES[pathname] ?? { title: '' }; const toggleTheme = () => { const next = !dark; setDark(next); document.documentElement.classList.toggle('dark', next); localStorage.setItem('fp-theme', next ? 'dark' : 'light'); window.dispatchEvent(new CustomEvent('fp-theme-change')); }; return (

{meta.title}

{meta.sub &&

{meta.sub}

}
setQ(e.target.value)} onKeyDown={e => { if (e.key === 'Enter' && q.trim()) { navigate('/records?q=' + encodeURIComponent(q.trim())); } }} />
); }