()
| 41 | ]; |
| 42 | |
| 43 | export function HeaderMenu() { |
| 44 | const [opened, { toggle, close }] = useDisclosure(false); |
| 45 | |
| 46 | const items = links.map((link) => { |
| 47 | const menuItems = link.links?.map((item) => ( |
| 48 | <Menu.Item key={item.link}>{item.label}</Menu.Item> |
| 49 | )); |
| 50 | |
| 51 | if (menuItems) { |
| 52 | return ( |
| 53 | <Menu key={link.label} trigger="hover" transitionProps={{ exitDuration: 0 }} withinPortal> |
| 54 | <Menu.Target> |
| 55 | <a |
| 56 | href={link.link} |
| 57 | className={classes.link} |
| 58 | onClick={(event) => event.preventDefault()} |
| 59 | > |
| 60 | <Center> |
| 61 | <span className={classes.linkLabel}>{link.label}</span> |
| 62 | <IconChevronDown size={14} stroke={1.5} /> |
| 63 | </Center> |
| 64 | </a> |
| 65 | </Menu.Target> |
| 66 | <Menu.Dropdown>{menuItems}</Menu.Dropdown> |
| 67 | </Menu> |
| 68 | ); |
| 69 | } |
| 70 | |
| 71 | return ( |
| 72 | <a |
| 73 | key={link.label} |
| 74 | href={link.link} |
| 75 | className={classes.link} |
| 76 | onClick={(event) => event.preventDefault()} |
| 77 | > |
| 78 | {link.label} |
| 79 | </a> |
| 80 | ); |
| 81 | }); |
| 82 | |
| 83 | return ( |
| 84 | <header className={classes.header}> |
| 85 | <Container size="md"> |
| 86 | <div className={classes.inner}> |
| 87 | <MantineLogo size={28} /> |
| 88 | <Group gap={5} visibleFrom="sm"> |
| 89 | {items} |
| 90 | </Group> |
| 91 | <Burger |
| 92 | opened={opened} |
| 93 | onClick={toggle} |
| 94 | size="sm" |
| 95 | hiddenFrom="sm" |
| 96 | aria-label="Toggle navigation" |
| 97 | /> |
| 98 | </div> |
| 99 | </Container> |
| 100 |
nothing calls this directly
no outgoing calls
no test coverage detected