'use client'; import { useState } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { BarChartIcon, HomeIcon, PersonIcon, ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons'; interface NavItemProps { href: string; label: string; icon: React.ReactNode; isCollapsed: boolean; isActive?: boolean; } const NavItem = ({ href, label, icon, isCollapsed, isActive }: NavItemProps) => { return (
{icon}
{!isCollapsed && ( {label} )} {isCollapsed && ( {label} )} ); }; export function Sidebar() { const [isCollapsed, setIsCollapsed] = useState(false); const pathname = usePathname(); const toggleSidebar = () => { setIsCollapsed(!isCollapsed); }; const navigation = [ { name: 'Dashboard', href: '/dashboard', icon: }, { name: 'Analytics', href: '/analytics', icon: }, { name: 'Account', href: '/account', icon: }, ]; return (
{/* 顶部Logo和标题 */}
S
{!isCollapsed && ( ShortURL Analytics )}
{/* 导航菜单 */}
    {navigation.map((item) => (
  • ))}
{/* 底部折叠按钮 */}
); }