Files
ai-agent/web/components/nav-secondary.tsx
T
2026-04-24 12:01:30 +08:00

51 lines
1.1 KiB
TypeScript

"use client"
import * as React from "react"
import Link from "next/link"
import { usePathname } from "next/navigation"
import {
SidebarGroup,
SidebarGroupContent,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
} from "@/components/ui/sidebar"
export function NavSecondary({
items,
...props
}: {
items: ReadonlyArray<{
title: string
url: string
icon: React.ReactNode
}>
} & React.ComponentPropsWithoutRef<typeof SidebarGroup>) {
const pathname = usePathname()
const isActive = (itemUrl: string) => {
return pathname === itemUrl || pathname.startsWith(itemUrl + "/")
}
return (
<SidebarGroup {...props}>
<SidebarGroupContent>
<SidebarMenu>
{items.map((item) => (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton
render={<Link href={item.url} />}
isActive={isActive(item.url)}
>
{item.icon}
<span>{item.title}</span>
</SidebarMenuButton>
</SidebarMenuItem>
))}
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
)
}