Navigation Menu
A tab-styled navigation bar with link tabs and dropdown menus.
Show code Hide code
import { NavigationMenu } from '@mylighthouse/prism-react';
import { useEffect, useState } from 'react';
export default function NavigationMenuExample(): React.JSX.Element {
const [section, setSection] = useState('overview');
useEffect(() => {
const sync = (): void =>
setSection(window.location.hash.slice(1) || 'overview');
sync();
window.addEventListener('hashchange', sync);
return (): void => {
window.removeEventListener('hashchange', sync);
};
}, []);
return (
<NavigationMenu>
<NavigationMenu.List>
<NavigationMenu.Item>
<NavigationMenu.Link
active={section === 'overview'}
href="components/navigation-menu/#overview"
>
Overview
</NavigationMenu.Link>
</NavigationMenu.Item>
<NavigationMenu.Item
active={['daily', 'weekly', 'monthly'].includes(section)}
>
<NavigationMenu.Trigger>Reports</NavigationMenu.Trigger>
<NavigationMenu.Content>
<NavigationMenu.Content.Item
active={section === 'daily'}
href="components/navigation-menu/#daily"
>
Daily
</NavigationMenu.Content.Item>
<NavigationMenu.Content.Item
active={section === 'weekly'}
href="components/navigation-menu/#weekly"
>
Weekly
</NavigationMenu.Content.Item>
<NavigationMenu.Content.Item
active={section === 'monthly'}
href="components/navigation-menu/#monthly"
>
Monthly
</NavigationMenu.Content.Item>
</NavigationMenu.Content>
</NavigationMenu.Item>
<NavigationMenu.Item>
<NavigationMenu.Link
active={section === 'settings'}
href="components/navigation-menu/#settings"
>
Settings
</NavigationMenu.Link>
</NavigationMenu.Item>
</NavigationMenu.List>
</NavigationMenu>
);
} NavigationMenu
No component-specific props
NavigationMenu.List
No component-specific props
NavigationMenu.Item
| Name | Default | Type | Description |
|---|---|---|---|
active | -- | boolean | -- |
NavigationMenu.Link
| Name | Default | Type | Description |
|---|---|---|---|
active | -- | boolean | -- |
href | -- | string | -- |
render | -- | ReactElement<unknown, string | JSXElementConstructor<any>> | -- |
NavigationMenu.Trigger
No component-specific props
NavigationMenu.Content
No component-specific props
NavigationMenu.Content.Item
| Name | Default | Type | Description |
|---|---|---|---|
active | -- | boolean | -- |
closeOnClick | -- | boolean | -- |
render | -- | ReactElement<unknown, string | JSXElementConstructor<any>> | -- |