'use client'; import { usePathname } from 'next/navigation'; import type { MenuNode } from '@/lib/api/types/menu'; import { isLayoutOverviewNode, NavTreeItem, layoutNavRootsFromApi, } from '@/components/layout/nav-shared'; export function SidebarNav(props: { items: MenuNode[]; loading: boolean; error: string | null; authed: boolean; onInternalNavigate?: () => void; onMenuNavigate?: (path: string, title: string) => void; }) { const pathname = usePathname() || ''; if (!props.authed) { return
登录后加载侧栏菜单
; } if (props.loading) { return
菜单加载中…
; } if (props.error) { const roots = layoutNavRootsFromApi([]); return ( ); } const roots = layoutNavRootsFromApi(props.items); const onlyOverview = roots.length === 1 && isLayoutOverviewNode(roots[0]); return ( ); }