blob: 3703fdec1fa860a15c287e813766e8a1a87ac3c9 [file]
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import React from 'react';
import {useActiveDocContext} from '@docusaurus/plugin-content-docs/client';
import {useLayoutDoc} from '@docusaurus/theme-common/internal';
import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem';
import type {Props} from '@theme/NavbarItem/DocNavbarItem';
export default function DocNavbarItem({
docId,
label: staticLabel,
docsPluginId,
...props
}: Props): JSX.Element | null {
const {activeDoc} = useActiveDocContext(docsPluginId);
const doc = useLayoutDoc(docId, docsPluginId);
// Draft items are not displayed in the navbar.
if (doc === null) {
return null;
}
return (
<DefaultNavbarItem
exact
{...props}
isActive={() =>
activeDoc?.path === doc.path ||
(!!activeDoc?.sidebar && activeDoc.sidebar === doc.sidebar)
}
label={staticLabel ?? doc.id}
to={doc.path}
/>
);
}