import { Menu, MenuItem, MenuSection } from '@nrwl/nx-dev/models-menu'; import cx from 'classnames'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { useCallback, useState } from 'react'; export interface SidebarProps { menu: Menu; navIsOpen?: boolean; } export function Sidebar({ menu, navIsOpen }: SidebarProps): JSX.Element { return (
); } function SidebarSection({ section }: { section: MenuSection }): JSX.Element { return ( <> {section.hideSectionHeader ? null : (

{section.name}

)} ); } function SidebarSectionItems({ item }: { item: MenuItem }): JSX.Element { const router = useRouter(); const [collapsed, setCollapsed] = useState(!item.disableCollapsible); const handleCollapseToggle = useCallback(() => { if (!item.disableCollapsible) { setCollapsed(!collapsed); } }, [collapsed, setCollapsed, item]); function withoutAnchors(linkText: string): string { return linkText?.includes('#') ? linkText.substring(0, linkText.indexOf('#')) : linkText; } return ( <>
{item.name} {item.disableCollapsible ? null : ( )}
); } function CollapsibleIcon({ isCollapsed, }: { isCollapsed: boolean; }): JSX.Element { return ( ); }