import { NavigationGroup, NavigationItem, NavigationMenuProps, } from "./welcome-types.ts"; import { getNavigationGroups, isNavigationItemActive, } from "./navigationConfig.ts"; /** * NavigationMenu Component * Native-rendered dropdown content for
menu. */ export default function NavigationMenu( { isLoggedIn, currentRoute, navigationGroups }: NavigationMenuProps, ) { function getItemStateClass(item: NavigationItem): string { if (item.disabled) return "navigation-menu-item--disabled"; if (item.path === "/auth/logout") return "navigation-menu-item--logout"; if (item.path === "/auth/login") return "navigation-menu-item--login"; return "navigation-menu-item--default"; } function renderNavigationItem(item: NavigationItem) { if (!item.isForm && isNavigationItemActive(item, currentRoute)) { return null; } const itemClass = `navigation-menu-item ${getItemStateClass(item)}`; if (item.isForm && item.formAction) { return (
); } return ( {item.label} ); } function renderNavigationGroup(group: NavigationGroup) { if (group.items.length === 0) return null; return (