From 67da2d8ec3e0e62edb3ef67d58270064e1a9005b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Thu, 4 Jun 2026 11:05:36 +0200 Subject: [PATCH] break(theme-common: move `useSearchQueryString()` + `useSearchLinkCreator()` to theme-search-algolia (#12108) --- packages/docusaurus-theme-common/src/index.ts | 5 ----- .../src/client/index.ts | 1 + .../src/client/searchPage.ts} | 15 ++++++++------- .../src/theme/SearchBar/index.tsx | 6 ++---- .../src/theme/SearchPage/index.tsx | 2 +- 5 files changed, 12 insertions(+), 17 deletions(-) rename packages/{docusaurus-theme-common/src/hooks/useSearchPage.ts => docusaurus-theme-search-algolia/src/client/searchPage.ts} (79%) diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 1d239ec048c6..67583eb5593c 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -70,11 +70,6 @@ export { type TagLetterEntry, } from './utils/tagsUtils'; -export { - useSearchQueryString, - useSearchLinkCreator, -} from './hooks/useSearchPage'; - export {useAnchorTargetClassName} from './utils/anchorUtils'; export {isMultiColumnFooterLinks} from './utils/footerUtils'; diff --git a/packages/docusaurus-theme-search-algolia/src/client/index.ts b/packages/docusaurus-theme-search-algolia/src/client/index.ts index c2d61a668de6..088c5a8b1b6e 100644 --- a/packages/docusaurus-theme-search-algolia/src/client/index.ts +++ b/packages/docusaurus-theme-search-algolia/src/client/index.ts @@ -12,4 +12,5 @@ export { } from './useAlgoliaContextualFacetFilters'; export {useSearchResultUrlProcessor} from './useSearchResultUrlProcessor'; export {useAlgoliaAskAi} from './useAlgoliaAskAi'; +export {useSearchQueryString, useSearchLinkCreator} from './searchPage'; export {mergeFacetFilters} from './utils'; diff --git a/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts b/packages/docusaurus-theme-search-algolia/src/client/searchPage.ts similarity index 79% rename from packages/docusaurus-theme-common/src/hooks/useSearchPage.ts rename to packages/docusaurus-theme-search-algolia/src/client/searchPage.ts index d23a43fefe8d..181c79d658e9 100644 --- a/packages/docusaurus-theme-common/src/hooks/useSearchPage.ts +++ b/packages/docusaurus-theme-search-algolia/src/client/searchPage.ts @@ -7,8 +7,8 @@ import {useCallback} from 'react'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import {useQueryString} from '../utils/historyUtils'; -import type {ThemeConfig as AlgoliaThemeConfig} from '@docusaurus/theme-search-algolia'; +import {useQueryString} from '@docusaurus/theme-common'; +import {useAlgoliaThemeConfig} from './useAlgoliaThemeConfig'; const SEARCH_PARAM_QUERY = 'q'; @@ -24,19 +24,20 @@ export function useSearchQueryString(): [string, (newValue: string) => void] { */ export function useSearchLinkCreator(): (searchValue: string) => string { const { - siteConfig: {baseUrl, themeConfig}, + siteConfig: {baseUrl}, } = useDocusaurusContext(); const { algolia: {searchPagePath}, - } = themeConfig as AlgoliaThemeConfig; + } = useAlgoliaThemeConfig(); return useCallback( - (searchValue: string) => + function createSearchLink(searchValue: string) { // Refer to https://github.com/facebook/docusaurus/pull/2838 // Note: if searchPagePath is falsy, useSearchPage() will not be called - `${baseUrl}${ + return `${baseUrl}${ searchPagePath as string - }?${SEARCH_PARAM_QUERY}=${encodeURIComponent(searchValue)}`, + }?${SEARCH_PARAM_QUERY}=${encodeURIComponent(searchValue)}`; + }, [baseUrl, searchPagePath], ); } diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx index eb3ab9153569..538d18778c44 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx @@ -18,15 +18,13 @@ import {useDocSearchKeyboardEvents} from '@docsearch/react/useDocSearchKeyboardE import Head from '@docusaurus/Head'; import Link from '@docusaurus/Link'; import {useHistory} from '@docusaurus/router'; -import { - isRegexpStringMatch, - useSearchLinkCreator, -} from '@docusaurus/theme-common'; +import {isRegexpStringMatch} from '@docusaurus/theme-common'; import { useAlgoliaContextualFacetFilters, useSearchResultUrlProcessor, useAlgoliaAskAi, mergeFacetFilters, + useSearchLinkCreator, } from '@docusaurus/theme-search-algolia/client'; import Translate from '@docusaurus/Translate'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx index e573d6e7981d..a16f8e552d90 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx @@ -28,13 +28,13 @@ import { PageMetadata, useEvent, usePluralForm, - useSearchQueryString, } from '@docusaurus/theme-common'; import Translate, {translate} from '@docusaurus/Translate'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import { useAlgoliaThemeConfig, useSearchResultUrlProcessor, + useSearchQueryString, } from '@docusaurus/theme-search-algolia/client'; import Layout from '@theme/Layout'; import Heading from '@theme/Heading';