import { useState } from 'react' import { NAV_GROUPS, NAV_TOP_LEVEL, type NavTarget } from '../../data/nav' /** * 分类导航树:顶层直达链接 + 可折叠分组。 * 点击叶子节点不跳转页面,而是把目标(分类 + 可选分组)交给父组件的 onNavigate, * 由父组件切换右侧的明细视图。 */ type CategoryNavProps = { /** 当前明细视图的分类 / 分组,用于高亮 */ activeCategoryId?: string activeGroupId?: string onNavigate: (target: NavTarget) => void } export function CategoryNav({ activeCategoryId, activeGroupId, onNavigate }: CategoryNavProps) { const [openGroups, setOpenGroups] = useState([]) const toggle = (id: string) => { setOpenGroups((previous) => previous.includes(id) ? previous.filter((item) => item !== id) : [...previous, id], ) } const isOpen = (id: string) => openGroups.includes(id) return ( ) }