Files
compras/resources/js/components/nav-main.tsx
T

53 lines
1.8 KiB
TypeScript

import { Link } from '@inertiajs/react';
import {
SidebarGroup,
SidebarGroupLabel,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
} from '@/components/ui/sidebar';
import { useCurrentUrl } from '@/hooks/use-current-url';
import { toUrl } from '@/lib/utils';
import type { NavItem } from '@/types';
export function NavMain({
items,
title = 'Navegação',
}: {
items: NavItem[];
title?: string;
}) {
const { isCurrentOrParentUrl, currentUrl } = useCurrentUrl();
const receivingOrder = /^\/ordens\/\d+\/recepcoes/.test(currentUrl);
return (
<SidebarGroup className="px-2 py-0">
<SidebarGroupLabel>{title}</SidebarGroupLabel>
<SidebarMenu>
{items.map((item) => (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton
asChild
isActive={
(toUrl(item.href) === '/recepcoes' &&
receivingOrder) ||
(isCurrentOrParentUrl(item.href) &&
!(
toUrl(item.href) === '/ordens' &&
receivingOrder
))
}
tooltip={{ children: item.title }}
>
<Link href={item.href} prefetch>
{item.icon && <item.icon />}
<span>{item.title}</span>
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
))}
</SidebarMenu>
</SidebarGroup>
);
}