import React, { useCallback, useState } from 'react'; import cx from 'classnames'; import Link from 'next/link'; import { Menu, MenuItem, MenuSection, VersionMetadata, } from '@nrwl/nx-dev/data-access-documents'; import { useRouter } from 'next/router'; import { Selector } from '@nrwl/nx-dev/ui/common'; export interface SidebarProps { menu: Menu; version: VersionMetadata; versionList: VersionMetadata[]; flavorList: any[]; flavor: any; navIsOpen: boolean; } export function Sidebar({ flavor, flavorList, version, versionList, menu, navIsOpen, }: SidebarProps) { const router = useRouter(); const getStartedPath = (version: string, flavor: string): string => `/${version}/${flavor}/getting-started/${ version === 'latest' ? 'getting-started' : 'intro' }`; return (
({ label: version.name, value: version.id, }))} selected={{ label: version.name, value: version.id }} onChange={(item) => router.push(getStartedPath(item.value, flavor.value)) } />
router.push(getStartedPath(version.id, item.value)) } />
); } function SidebarSection({ section }: { section: MenuSection }) { return ( <> {section.hideSectionHeader ? null : (

{section.name}

)} ); } 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]); return ( <>
{item.name} {item.disableCollapsible ? null : ( )}
); } function CollapsibleIcon({ isCollapsed }: { isCollapsed: boolean }) { return ( ); } export default Sidebar;