docs(nx-dev): Update docs sidemenu enabling the close button (#23254)
This PR fixes the issue where the close button was not working in the nx-dev documentation pages after opening the overflow menu. Now, the close button functions correctly.
This commit is contained in:
parent
0bfeea6be3
commit
79ee857380
@ -57,7 +57,11 @@ export default function NxDocumentation({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={menuWithSections} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={menuWithSections}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -40,7 +40,11 @@ export default function AiDocs(): JSX.Element {
|
|||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<div className="hidden">
|
<div className="hidden">
|
||||||
<SidebarContainer menu={{ sections: [] }} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={{ sections: [] }}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<FeedContainer />
|
<FeedContainer />
|
||||||
|
|||||||
@ -223,15 +223,19 @@ export default function Changelog(props: ChangeLogProps): JSX.Element {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<main id="main" role="main">
|
<main id="main" role="main">
|
||||||
<div className="mx-auto flex max-w-7xl flex-col py-8 px-4 sm:px-6 lg:px-8">
|
<div className="mx-auto flex max-w-7xl flex-col px-4 py-8 sm:px-6 lg:px-8">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<Breadcrumbs path={router.asPath} />
|
<Breadcrumbs path={router.asPath} />
|
||||||
</div>
|
</div>
|
||||||
<div className="hidden">
|
<div className="hidden">
|
||||||
<SidebarContainer menu={menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={menu}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<header className="mt-0">
|
<header className="mt-0">
|
||||||
<h1 className="text-3xl font-semibold tracking-tight text-slate-900 dark:text-slate-100 sm:text-5xl">
|
<h1 className="text-3xl font-semibold tracking-tight text-slate-900 sm:text-5xl dark:text-slate-100">
|
||||||
Nx Changelog
|
Nx Changelog
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-4">
|
<p className="mt-4">
|
||||||
@ -271,7 +275,7 @@ export default function Changelog(props: ChangeLogProps): JSX.Element {
|
|||||||
v{changelog.version.split('.').slice(0, 2).join('.')}
|
v{changelog.version.split('.').slice(0, 2).join('.')}
|
||||||
</a>
|
</a>
|
||||||
<Link aria-hidden="true" href={`#${changelog.version}`}>
|
<Link aria-hidden="true" href={`#${changelog.version}`}>
|
||||||
<LinkIcon className="ml-2 mb-1 inline h-5 w-5 opacity-0 group-hover:opacity-100" />
|
<LinkIcon className="mb-1 ml-2 inline h-5 w-5 opacity-0 group-hover:opacity-100" />
|
||||||
</Link>
|
</Link>
|
||||||
</p>
|
</p>
|
||||||
<p className="py-0.5 text-xs leading-5 text-slate-400 dark:text-slate-500">
|
<p className="py-0.5 text-xs leading-5 text-slate-400 dark:text-slate-500">
|
||||||
|
|||||||
@ -65,7 +65,11 @@ export default function Pages({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -65,7 +65,11 @@ export default function CloudRoot({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -65,7 +65,11 @@ export default function Pages({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -65,7 +65,11 @@ export default function PluginsRoot({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -72,7 +72,11 @@ export default function PackageDocument({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -64,7 +64,11 @@ export default function DocumentsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function PackageExecutor({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -64,7 +64,11 @@ export default function ExecutorsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function PackageGenerator({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -64,7 +64,11 @@ export default function GeneratorsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -68,7 +68,11 @@ export default function Package({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -92,7 +92,11 @@ export default function Packages({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
data-testid="wrapper"
|
data-testid="wrapper"
|
||||||
|
|||||||
@ -63,7 +63,11 @@ export default function DocumentsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -70,7 +70,11 @@ export default function Overview({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -70,7 +70,11 @@ export default function RspackPlugins({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function DevServerExecutor({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -63,7 +63,11 @@ export default function ExecutorsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function RspackExecutor({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function ApplicationGenerator({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function ConfigurationGenerator({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -63,7 +63,11 @@ export default function GeneratorsIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -74,7 +74,11 @@ export default function InitGenerator({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -66,7 +66,11 @@ export default function RspackIndex({
|
|||||||
role="main"
|
role="main"
|
||||||
className="flex h-full flex-1 overflow-y-hidden"
|
className="flex h-full flex-1 overflow-y-hidden"
|
||||||
>
|
>
|
||||||
<SidebarContainer menu={vm.menu} navIsOpen={navIsOpen} />
|
<SidebarContainer
|
||||||
|
menu={vm.menu}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
ref={wrapperElement}
|
ref={wrapperElement}
|
||||||
id="wrapper"
|
id="wrapper"
|
||||||
|
|||||||
@ -105,9 +105,11 @@ const rspackSection = {
|
|||||||
export function SidebarContainer({
|
export function SidebarContainer({
|
||||||
menu,
|
menu,
|
||||||
navIsOpen,
|
navIsOpen,
|
||||||
|
toggleNav,
|
||||||
}: {
|
}: {
|
||||||
menu: Menu;
|
menu: Menu;
|
||||||
navIsOpen: boolean;
|
navIsOpen: boolean;
|
||||||
|
toggleNav: (value: boolean) => void;
|
||||||
}): JSX.Element {
|
}): JSX.Element {
|
||||||
// TODO(jack): Remove this rspack modification once we move rspack into main repo (when stable).
|
// TODO(jack): Remove this rspack modification once we move rspack into main repo (when stable).
|
||||||
const menuWithRspack = useMemo(() => {
|
const menuWithRspack = useMemo(() => {
|
||||||
@ -128,8 +130,12 @@ export function SidebarContainer({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div id="sidebar" data-testid="sidebar">
|
<div id="sidebar" data-testid="sidebar">
|
||||||
<SidebarMobile menu={menuWithRspack} navIsOpen={navIsOpen} />
|
<SidebarMobile
|
||||||
<div className="hidden h-full w-72 flex-col border-r border-slate-200 dark:border-slate-700 dark:bg-slate-900 md:flex">
|
menu={menuWithRspack}
|
||||||
|
toggleNav={toggleNav}
|
||||||
|
navIsOpen={navIsOpen}
|
||||||
|
/>
|
||||||
|
<div className="hidden h-full w-72 flex-col border-r border-slate-200 md:flex dark:border-slate-700 dark:bg-slate-900">
|
||||||
<div className="relative flex flex-grow overflow-y-scroll p-4">
|
<div className="relative flex flex-grow overflow-y-scroll p-4">
|
||||||
<Sidebar menu={menuWithRspack} />
|
<Sidebar menu={menuWithRspack} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
import { Dialog, Transition } from '@headlessui/react';
|
import { Dialog, Transition } from '@headlessui/react';
|
||||||
|
import { XMarkIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { AlgoliaSearch } from '@nx/nx-dev/feature-search';
|
||||||
import { Menu, MenuItem, MenuSection } from '@nx/nx-dev/models-menu';
|
import { Menu, MenuItem, MenuSection } from '@nx/nx-dev/models-menu';
|
||||||
import cx from 'classnames';
|
import cx from 'classnames';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import { createRef, Fragment, useCallback, useEffect, useState } from 'react';
|
import { createRef, Fragment, useCallback, useEffect, useState } from 'react';
|
||||||
|
import { NxIcon } from './nx-icon';
|
||||||
|
|
||||||
export interface SidebarProps {
|
export interface SidebarProps {
|
||||||
menu: Menu;
|
menu: Menu;
|
||||||
@ -11,6 +14,7 @@ export interface SidebarProps {
|
|||||||
export interface FloatingSidebarProps {
|
export interface FloatingSidebarProps {
|
||||||
menu: Menu;
|
menu: Menu;
|
||||||
navIsOpen: boolean;
|
navIsOpen: boolean;
|
||||||
|
toggleNav: (open: boolean) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function Sidebar({ menu }: SidebarProps): JSX.Element {
|
export function Sidebar({ menu }: SidebarProps): JSX.Element {
|
||||||
@ -177,6 +181,7 @@ function CollapsibleIcon({
|
|||||||
export function SidebarMobile({
|
export function SidebarMobile({
|
||||||
menu,
|
menu,
|
||||||
navIsOpen,
|
navIsOpen,
|
||||||
|
toggleNav,
|
||||||
}: FloatingSidebarProps): JSX.Element {
|
}: FloatingSidebarProps): JSX.Element {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const isCI: boolean = router.asPath.startsWith('/ci');
|
const isCI: boolean = router.asPath.startsWith('/ci');
|
||||||
@ -237,7 +242,7 @@ export function SidebarMobile({
|
|||||||
return (
|
return (
|
||||||
<Transition.Root show={navIsOpen} as={Fragment}>
|
<Transition.Root show={navIsOpen} as={Fragment}>
|
||||||
<Dialog as="div" className="relative z-40" onClose={() => void 0}>
|
<Dialog as="div" className="relative z-40" onClose={() => void 0}>
|
||||||
<div className="fixed inset-0 top-[57px] z-40 flex">
|
<div className="fixed inset-0 z-40 flex">
|
||||||
<Transition.Child
|
<Transition.Child
|
||||||
as={Fragment}
|
as={Fragment}
|
||||||
enter="transition ease-in-out duration-300 transform"
|
enter="transition ease-in-out duration-300 transform"
|
||||||
@ -247,9 +252,37 @@ export function SidebarMobile({
|
|||||||
leaveFrom="translate-x-0"
|
leaveFrom="translate-x-0"
|
||||||
leaveTo="-translate-x-full"
|
leaveTo="-translate-x-full"
|
||||||
>
|
>
|
||||||
<Dialog.Panel className="relative flex w-full flex-col overflow-y-auto bg-white p-4 dark:bg-slate-900">
|
<Dialog.Panel className="relative flex w-full flex-col overflow-y-auto bg-white dark:bg-slate-900">
|
||||||
|
{/*HEADER*/}
|
||||||
|
<div className="flex w-full items-center border-b border-slate-200 bg-slate-50 p-4 lg:hidden dark:border-slate-700 dark:bg-slate-800/60">
|
||||||
|
{/*CLOSE BUTTON*/}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="flex focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500"
|
||||||
|
onClick={() => toggleNav(!navIsOpen)}
|
||||||
|
>
|
||||||
|
<span className="sr-only">Close sidebar</span>
|
||||||
|
<XMarkIcon className="mr-3 h-6 w-6" />
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{/*SEARCH*/}
|
||||||
|
<div className="mx-4 w-auto">
|
||||||
|
<AlgoliaSearch />
|
||||||
|
</div>
|
||||||
|
{/*LOGO*/}
|
||||||
|
<div className="ml-auto flex items-center">
|
||||||
|
<Link
|
||||||
|
href="/"
|
||||||
|
className="flex flex-grow items-center px-4 text-slate-900 lg:px-0 dark:text-white"
|
||||||
|
>
|
||||||
|
<span className="sr-only">Nx</span>
|
||||||
|
<NxIcon aria-hidden="true" className="h-8 w-8" />
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="p-4">
|
||||||
{/*SECTIONS*/}
|
{/*SECTIONS*/}
|
||||||
<div className="divide-y divide-slate-200">
|
<div className="mt-5 divide-y divide-slate-200">
|
||||||
<div className="grid w-full shrink-0 grid-cols-3 items-center justify-between">
|
<div className="grid w-full shrink-0 grid-cols-3 items-center justify-between">
|
||||||
{sections.general.map((section) => (
|
{sections.general.map((section) => (
|
||||||
<Link
|
<Link
|
||||||
@ -300,6 +333,7 @@ export function SidebarMobile({
|
|||||||
))}
|
))}
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</Dialog.Panel>
|
</Dialog.Panel>
|
||||||
</Transition.Child>
|
</Transition.Child>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user