From 0ee6e127307e75af34697a8bca6930fdfc500157 Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Tue, 10 Jan 2023 15:29:12 -0500 Subject: [PATCH] fix(algolia): make search footer respect searchPagePath --- .../src/hooks/useSearchPage.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts b/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts index 10661b17f0d8..1b22512f588b 100644 --- a/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts +++ b/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts @@ -8,6 +8,7 @@ import {useCallback, useEffect, useState} from 'react'; import {useHistory} from '@docusaurus/router'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import type {ThemeConfig as AlgoliaThemeConfig} from '@docusaurus/theme-search-algolia'; const SEARCH_PARAM_QUERY = 'q'; @@ -31,8 +32,11 @@ export function useSearchPage(): { } { const history = useHistory(); const { - siteConfig: {baseUrl}, + siteConfig: {baseUrl, themeConfig}, } = useDocusaurusContext(); + const { + algolia: {searchPagePath}, + } = themeConfig as AlgoliaThemeConfig; const [searchQuery, setSearchQueryState] = useState(''); @@ -65,10 +69,11 @@ export function useSearchPage(): { const generateSearchPageLink = useCallback( (targetSearchQuery: string) => // Refer to https://github.com/facebook/docusaurus/pull/2838 - `${baseUrl}search?${SEARCH_PARAM_QUERY}=${encodeURIComponent( - targetSearchQuery, - )}`, - [baseUrl], + // Note: if searchPagePath is falsy, useSearchPage() will not be called + `${baseUrl}${ + searchPagePath as string + }?${SEARCH_PARAM_QUERY}=${encodeURIComponent(targetSearchQuery)}`, + [baseUrl, searchPagePath], ); return {