"use client"; import * as React from "react"; import { cn } from "@/lib/utils"; // ─── Types ──────────────────────────────────────────────────────────────────── export interface NavItem { id: string; label: string; href?: string; icon?: React.ReactNode; badge?: string | number; disabled?: boolean; } export interface NavGroup { id: string; title?: string; items: NavItem[]; } export interface SideNavProps extends React.HTMLAttributes { /** 品牌名 */ brandName?: string; /** 品牌图标 */ brandIcon?: React.ReactNode; /** 导航分组 */ groups: NavGroup[]; /** 当前激活的导航项 id */ activeId?: string; /** 导航项点击回调 */ onNavClick?: (item: NavItem) => void; } // ─── NavItemRow ─────────────────────────────────────────────────────────────── const NavItemRow = React.memo( ({ item, active, onClick, }: { item: NavItem; active: boolean; onClick?: () => void; }) => { return ( ); } ); NavItemRow.displayName = "NavItemRow"; // ─── Main SideNav ───────────────────────────────────────────────────────────── const SideNav = React.forwardRef( ( { className, brandName = "GEO Platform", brandIcon, groups, activeId, onNavClick, ...props }, ref ) => { return ( ); } ); SideNav.displayName = "SideNav"; export { SideNav };