33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from '@/components/ui/sidebar';
|
|
import { type NavItem, type SharedData } from '@/types';
|
|
import { Link, usePage } from '@inertiajs/react';
|
|
|
|
export function NavMain({ items = [] }: { items: NavItem[] }) {
|
|
const page = usePage<SharedData>();
|
|
const { translations } = page.props;
|
|
const groupLabel =
|
|
(translations?.dashboard?.navigation?.group_label as string | undefined) ?? 'Kundenbereich';
|
|
|
|
return (
|
|
<SidebarGroup className="px-2 py-0">
|
|
<SidebarGroupLabel>{groupLabel}</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>
|
|
);
|
|
}
|