feat(nav-main): refactor sidebar menu to handle items without submenus

This commit is contained in:
cfngc4594 2025-03-30 20:43:12 +08:00
parent 60d5c98aca
commit 99f6696fa2

View File

@ -30,14 +30,22 @@ export interface NavMainProps {
}[];
}
export function NavMain({
items,
}: NavMainProps) {
export function NavMain({ items }: NavMainProps) {
return (
<SidebarGroup>
<SidebarGroupLabel>Platform</SidebarGroupLabel>
<SidebarMenu>
{items.map((item) => (
{items.map((item) =>
!item.items ? (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton asChild tooltip={item.title}>
<a href={item.url}>
{item.icon && <item.icon />}
<span>{item.title}</span>
</a>
</SidebarMenuButton>
</SidebarMenuItem>
) : (
<Collapsible
key={item.title}
asChild
@ -54,7 +62,7 @@ export function NavMain({
</CollapsibleTrigger>
<CollapsibleContent>
<SidebarMenuSub>
{item.items?.map((subItem) => (
{item.items.map((subItem) => (
<SidebarMenuSubItem key={subItem.title}>
<SidebarMenuSubButton asChild>
<a href={`${item.url}${subItem.url}`}>
@ -67,7 +75,8 @@ export function NavMain({
</CollapsibleContent>
</SidebarMenuItem>
</Collapsible>
))}
)
)}
</SidebarMenu>
</SidebarGroup>
);