src/components/nav-secondary.tsx 1.0 K raw
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
}