From e8ad3923ea2ebafa83beaa1ad8f169ad07355054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Thu, 26 Dec 2024 16:30:23 +0100 Subject: [PATCH] fix(algolia): properly forward placeholder/translations to DocSearch components (#10799) --- .../src/theme-search-algolia.d.ts | 41 ++++++++++++------- .../src/theme/SearchBar/index.tsx | 8 ++-- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/packages/docusaurus-theme-search-algolia/src/theme-search-algolia.d.ts b/packages/docusaurus-theme-search-algolia/src/theme-search-algolia.d.ts index 5a717fb52d..9e12b5e2dd 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme-search-algolia.d.ts +++ b/packages/docusaurus-theme-search-algolia/src/theme-search-algolia.d.ts @@ -7,23 +7,36 @@ declare module '@docusaurus/theme-search-algolia' { import type {DeepPartial} from 'utility-types'; + import type {DocSearchProps} from '@docsearch/react'; - export type ThemeConfig = { - algolia: { - contextualSearch: boolean; - externalUrlRegex?: string; - appId: string; - apiKey: string; - indexName: string; - searchParameters: {[key: string]: unknown}; - searchPagePath: string | false | null; - replaceSearchResultPathname?: { - from: string; - to: string; - }; - insights?: boolean; + // DocSearch props that Docusaurus exposes directly through props forwarding + type DocusaurusDocSearchProps = Pick< + DocSearchProps, + | 'appId' + | 'apiKey' + | 'indexName' + | 'placeholder' + | 'translations' + | 'searchParameters' + | 'insights' + | 'initialQuery' + >; + + type ThemeConfigAlgolia = DocusaurusDocSearchProps & { + // Docusaurus custom options, not coming from DocSearch + contextualSearch: boolean; + externalUrlRegex?: string; + searchPagePath: string | false | null; + replaceSearchResultPathname?: { + from: string; + to: string; }; }; + + export type ThemeConfig = DocusaurusDocSearchProps & { + algolia: ThemeConfigAlgolia; + }; + export type UserThemeConfig = DeepPartial; } 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 64300308d0..6ae4dd1e1d 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx @@ -242,7 +242,7 @@ function DocSearch({ onMouseOver={importDocSearchModalIfNeeded} onClick={openModal} ref={searchButtonRef} - translations={translations.button} + translations={props.translations?.button ?? translations.button} /> {isOpen && @@ -260,10 +260,10 @@ function DocSearch({ {...(props.searchPagePath && { resultsFooterComponent, })} - {...props} - searchParameters={searchParameters} placeholder={translations.placeholder} - translations={translations.modal} + {...props} + translations={props.translations?.modal ?? translations.modal} + searchParameters={searchParameters} />, searchContainer.current, )}