39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import {
|
|
SidebarGroup,
|
|
SidebarGroupLabel,
|
|
SidebarMenu,
|
|
SidebarMenuButton,
|
|
SidebarMenuItem,
|
|
} from '@/components/ui/sidebar';
|
|
import { type NavItem } from '@/types';
|
|
import { Link, usePage } from '@inertiajs/react';
|
|
|
|
export function NavMain({ items = [] }: { items: NavItem[] }) {
|
|
const page = usePage();
|
|
return (
|
|
<SidebarGroup className="px-2 py-0">
|
|
<SidebarGroupLabel>Platform</SidebarGroupLabel>
|
|
<SidebarMenu>
|
|
{items.map((item) => (
|
|
<SidebarMenuItem key={item.title}>
|
|
<SidebarMenuButton
|
|
asChild
|
|
isActive={page.url.startsWith(
|
|
typeof item.href === 'string'
|
|
? item.href
|
|
: item.href.url,
|
|
)}
|
|
tooltip={{ children: item.title }}
|
|
>
|
|
<Link href={item.href} prefetch>
|
|
{item.icon && <item.icon />}
|
|
<span>{item.title}</span>
|
|
</Link>
|
|
</SidebarMenuButton>
|
|
</SidebarMenuItem>
|
|
))}
|
|
</SidebarMenu>
|
|
</SidebarGroup>
|
|
);
|
|
}
|