import React, { useCallback, useState } from 'react';
import cx from 'classnames';
import Link from 'next/link';
import {
Menu,
MenuItem,
MenuSection,
} from '@nrwl/nx-dev/data-access-documents';
import { useRouter } from 'next/router';
export interface SidebarProps {
menu: Menu;
navIsOpen?: boolean;
}
export function Sidebar({ menu, navIsOpen }: SidebarProps) {
return (
);
}
function SidebarSection({ section }: { section: MenuSection }) {
return (
<>
{section.hideSectionHeader ? null : (
{section.name}
)}
-
{section.itemList.map((item, index) => (
))}
>
);
}
function SidebarSectionItems({ item }: { item: MenuItem }) {
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 }) {
return (
);
}
export default Sidebar;