diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.tsx index 2aa256ae2d..6c5c9f7b46 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.tsx @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import React, {useState, useCallback, useEffect, useRef} from 'react'; +import React, {useState, useCallback, useEffect, useRef, useMemo} from 'react'; import clsx from 'clsx'; import {useThemeConfig, isSamePath} from '@docusaurus/theme-common'; import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; @@ -209,6 +209,27 @@ function DocSidebar({ } }, [windowSize]); + const closeResponsiveSidebar = useCallback( + (e) => { + e.target.blur(); + setShowResponsiveSidebar(false); + }, + [setShowResponsiveSidebar], + ); + const sidebarItems = useMemo( + () => + sidebar.map((item) => ( + + )), + [sidebar, sidebarCollapsible, path, closeResponsiveSidebar], + ); + return (
)} - +
{hideableSidebar && (