import Link from 'next/link'
import { cn, sidebarMenuButtonVariants, SidebarMenuItem } from 'ui'
import { isDirectLinkAtTopLevel } from './useMobileMenuNavigation'
import type { Route } from '@/components/ui/ui.types'
export interface TopLevelRouteItemProps {
route: Route
isActive: boolean
hasSubmenu: boolean
onTopLevelClick: (route: Route) => void
onCloseSheet?: () => void
}
export function TopLevelRouteItem({
route,
isActive,
hasSubmenu,
onTopLevelClick,
onCloseSheet,
}: TopLevelRouteItemProps) {
const hasItems = hasSubmenu && !isDirectLinkAtTopLevel(route)
const content = (
<>
{route.icon && (
{route.icon}
)}
{route.label}
>
)
const menuButtonClass = cn(
sidebarMenuButtonVariants({ size: 'default', hasIcon: !!route.icon }),
route.disabled && 'opacity-50 pointer-events-none'
)
return (
{hasItems ? (
) : route.link ? (
{content}
) : (
{content}
)}
)
}