diff --git a/packages/docusaurus-theme-classic/src/theme-classic.d.ts b/packages/docusaurus-theme-classic/src/theme-classic.d.ts
index bbd4d109fe..5c23c13105 100644
--- a/packages/docusaurus-theme-classic/src/theme-classic.d.ts
+++ b/packages/docusaurus-theme-classic/src/theme-classic.d.ts
@@ -227,8 +227,12 @@ declare module '@theme/DocSidebar/Desktop/CollapseButton' {
export default function CollapseButton(props: Props): JSX.Element;
}
-declare module '@theme/DocSidebar/Desktop/Filter' {
- export default function Filter(): JSX.Element;
+declare module '@theme/DocSidebar/Common/Filter' {
+ export interface Props {
+ readonly className?: string;
+ }
+
+ export default function Filter(props: Props): JSX.Element;
}
declare module '@theme/DocSidebarItem' {
diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Filter/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Common/Filter/index.tsx
similarity index 87%
rename from packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Filter/index.tsx
rename to packages/docusaurus-theme-classic/src/theme/DocSidebar/Common/Filter/index.tsx
index a1714ff24b..d9cae74a12 100644
--- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Filter/index.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Common/Filter/index.tsx
@@ -8,14 +8,15 @@
import React from 'react';
import clsx from 'clsx';
import {useDocsFilter} from '@docusaurus/theme-common';
+import type {Props} from '@theme/DocSidebar/Desktop/Filter';
import styles from './styles.module.css';
-function Filter(): JSX.Element {
+function Filter({className}: Props): JSX.Element {
const {setFilterTerm, filterTerm = ''} = useDocsFilter();
return (
-
+
{hideOnScroll && }
- {filterableSidebar && }
+ {filterableSidebar && }
{hideableSidebar && }
diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/styles.module.css b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/styles.module.css
index 8d7734af15..7fcaf4f5e4 100644
--- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/styles.module.css
+++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/styles.module.css
@@ -43,6 +43,10 @@
margin-right: 0.5rem;
height: 2rem;
}
+
+ .filter {
+ padding: 0.5rem;
+ }
}
.sidebarLogo {
diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx
index 48314ab6b1..25982044ab 100644
--- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx
@@ -8,37 +8,49 @@
import React from 'react';
import clsx from 'clsx';
import {
+ useThemeConfig,
NavbarSecondaryMenuFiller,
type NavbarSecondaryMenuComponent,
ThemeClassNames,
useNavbarMobileSidebar,
+ useDocsFilter,
+ filterDocsSidebar,
} from '@docusaurus/theme-common';
import DocSidebarItems from '@theme/DocSidebarItems';
+import Filter from '@theme/DocSidebar/Common/Filter';
import type {Props} from '@theme/DocSidebar/Mobile';
+import styles from './styles.module.css';
+
// eslint-disable-next-line react/function-component-definition
const DocSidebarMobileSecondaryMenu: NavbarSecondaryMenuComponent
= ({
sidebar,
path,
}) => {
+ const {filterableSidebar} = useThemeConfig();
+ const {filterTerm} = useDocsFilter();
+ const filteredSidebar = filterDocsSidebar(sidebar, filterTerm);
const mobileSidebar = useNavbarMobileSidebar();
return (
-
- {
- // Mobile sidebar should only be closed if the category has a link
- if (item.type === 'category' && item.href) {
- mobileSidebar.toggle();
- }
- if (item.type === 'link') {
- mobileSidebar.toggle();
- }
- }}
- level={1}
- />
-
+ <>
+ {filterableSidebar && }
+
+ {
+ // Mobile sidebar should only be closed if the category has a link
+ if (item.type === 'category' && item.href) {
+ mobileSidebar.toggle();
+ }
+ if (item.type === 'link') {
+ mobileSidebar.toggle();
+ }
+ }}
+ level={1}
+ />
+
+ >
);
};
diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/styles.module.css b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/styles.module.css
new file mode 100644
index 0000000000..9a584564ec
--- /dev/null
+++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/styles.module.css
@@ -0,0 +1,10 @@
+/**
+ * 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.
+ */
+
+.filter {
+ margin-bottom: 0.7rem;
+}