| 1 | import React from "react" |
| 2 | import { type LucideIcon } from "lucide-react" |
| 3 | |
| 4 | import { |
| 5 | SidebarGroup, |
| 6 | SidebarGroupContent, |
| 7 | SidebarMenu, |
| 8 | SidebarMenuBadge, |
| 9 | SidebarMenuButton, |
| 10 | SidebarMenuItem, |
| 11 | } from "@/components/ui/sidebar" |
| 12 | |
| 13 | export function NavSecondary({ |
| 14 | items, |
| 15 | ...props |
| 16 | }: { |
| 17 | items: { |
| 18 | title: string |
| 19 | url: string |
| 20 | icon: LucideIcon |
| 21 | badge?: React.ReactNode |
| 22 | }[] |
| 23 | } & React.ComponentPropsWithoutRef<typeof SidebarGroup>) { |
| 24 | return ( |
| 25 | <SidebarGroup {...props}> |
| 26 | <SidebarGroupContent> |
| 27 | <SidebarMenu> |
| 28 | {items.map((item) => ( |
| 29 | <SidebarMenuItem key={item.title}> |
| 30 | <SidebarMenuButton asChild> |
| 31 | <a href={item.url}> |
| 32 | <item.icon /> |
| 33 | <span>{item.title}</span> |
| 34 | </a> |
| 35 | </SidebarMenuButton> |
| 36 | {item.badge && <SidebarMenuBadge>{item.badge}</SidebarMenuBadge>} |
| 37 | </SidebarMenuItem> |
| 38 | ))} |
| 39 | </SidebarMenu> |
| 40 | </SidebarGroupContent> |
| 41 | </SidebarGroup> |
| 42 | ) |
| 43 | } |