import React, {useState, useCallback, useRef} from 'react'; import clsx from 'clsx'; import {ThemeClassNames} from '@docusaurus/theme-common'; import {useDocsSidebar} from '@docusaurus/theme-common/internal'; import {useLocation} from '@docusaurus/router'; import DocSidebar from '@theme/DocSidebar'; import ExpandButton from '@theme/DocPage/Layout/Sidebar/ExpandButton'; import styles from './styles.module.css'; import { SwitchTransition, CSSTransition } from 'react-transition-group'; // Reset sidebar state when sidebar changes // Use React key to unmount/remount the children // See https://github.com/facebook/docusaurus/issues/3414 function ResetOnSidebarChange({children}) { const sidebar = useDocsSidebar(); return ( {children} ); } export default function DocPageLayoutSidebar({ sidebar, hiddenSidebarContainer, setHiddenSidebarContainer, }) { const {pathname} = useLocation(); const [hiddenSidebar, setHiddenSidebar] = useState(false); const toggleSidebar = useCallback(() => { if (hiddenSidebar) { setHiddenSidebar(false); } setHiddenSidebarContainer((value) => !value); }, [setHiddenSidebarContainer, hiddenSidebar]); const {name} = useDocsSidebar() const sidebarRef = useRef(null) return ( ); }