blob: 47ab292fabf69b31b03376a8c1a427c7126bb6ac [file]
import React from 'react';
import clsx from 'clsx';
import {useThemeConfig} from '@docusaurus/theme-common';
import {useActivePlugin, useActiveVersion} from '@docusaurus/plugin-content-docs/client';
import Logo from '@theme/Logo';
import SearchBar from '@theme/SearchBar';
import CollapseButton from '@theme/DocSidebar/Desktop/CollapseButton';
import Content from '@theme/DocSidebar/Desktop/Content';
import type {Props} from '@theme/DocSidebar/Desktop';
import {supportsDocsDomainNavigation} from '@site/src/utils/docs-sidebar-scope';
import styles from './styles.module.css';
function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}: Props) {
const activePlugin = useActivePlugin();
const activeVersion = useActiveVersion(activePlugin?.pluginId);
const usesDomainNavigation = supportsDocsDomainNavigation(activePlugin?.pluginId, activeVersion?.name);
const {
navbar: {hideOnScroll},
docs: {
sidebar: {hideable},
},
} = useThemeConfig();
return (
<div
className={clsx(
styles.sidebar,
usesDomainNavigation && styles.sidebarWithDomainNavigation,
hideOnScroll && styles.sidebarWithHideableNavbar,
isHidden && styles.sidebarHidden,
)}>
{hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />}
{!usesDomainNavigation && (
<div className={styles.sidebarHeader}>
<div className={styles.sidebarSearch}>
<SearchBar />
</div>
</div>
)}
<Content path={path} sidebar={sidebar} />
{hideable && <CollapseButton onClick={onCollapse} />}
</div>
);
}
export default React.memo(DocSidebarDesktop);