fix(theme): SearchPage should respect contextualSearch: false setting (#10178)

Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com>
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
This commit is contained in:
Nick Coughlin 2024-05-30 05:36:37 -07:00 committed by GitHub
parent bc71803b72
commit 1049294ba6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -159,8 +159,9 @@ function SearchPageContent(): JSX.Element {
i18n: {currentLocale}, i18n: {currentLocale},
} = useDocusaurusContext(); } = useDocusaurusContext();
const { const {
algolia: {appId, apiKey, indexName}, algolia: {appId, apiKey, indexName, contextualSearch},
} = useAlgoliaThemeConfig(); } = useAlgoliaThemeConfig();
const processSearchResultUrl = useSearchResultUrlProcessor(); const processSearchResultUrl = useSearchResultUrlProcessor();
const documentsFoundPlural = useDocumentsFoundPlural(); const documentsFoundPlural = useDocumentsFoundPlural();
@ -213,11 +214,16 @@ function SearchPageContent(): JSX.Element {
initialSearchResultState, initialSearchResultState,
); );
// respect settings from the theme config for facets
const disjunctiveFacets = contextualSearch
? ['language', 'docusaurus_tag']
: [];
const algoliaClient = algoliaSearch(appId, apiKey); const algoliaClient = algoliaSearch(appId, apiKey);
const algoliaHelper = algoliaSearchHelper(algoliaClient, indexName, { const algoliaHelper = algoliaSearchHelper(algoliaClient, indexName, {
hitsPerPage: 15, hitsPerPage: 15,
advancedSyntax: true, advancedSyntax: true,
disjunctiveFacets: ['language', 'docusaurus_tag'], disjunctiveFacets,
}); });
algoliaHelper.on( algoliaHelper.on(
@ -313,17 +319,19 @@ function SearchPageContent(): JSX.Element {
}); });
const makeSearch = useEvent((page: number = 0) => { const makeSearch = useEvent((page: number = 0) => {
algoliaHelper.addDisjunctiveFacetRefinement('docusaurus_tag', 'default'); if (contextualSearch) {
algoliaHelper.addDisjunctiveFacetRefinement('language', currentLocale); algoliaHelper.addDisjunctiveFacetRefinement('docusaurus_tag', 'default');
algoliaHelper.addDisjunctiveFacetRefinement('language', currentLocale);
Object.entries(docsSearchVersionsHelpers.searchVersions).forEach( Object.entries(docsSearchVersionsHelpers.searchVersions).forEach(
([pluginId, searchVersion]) => { ([pluginId, searchVersion]) => {
algoliaHelper.addDisjunctiveFacetRefinement( algoliaHelper.addDisjunctiveFacetRefinement(
'docusaurus_tag', 'docusaurus_tag',
`docs-${pluginId}-${searchVersion}`, `docs-${pluginId}-${searchVersion}`,
); );
}, },
); );
}
algoliaHelper.setQuery(searchQuery).setPage(page).search(); algoliaHelper.setQuery(searchQuery).setPage(page).search();
}); });
@ -401,7 +409,7 @@ function SearchPageContent(): JSX.Element {
/> />
</div> </div>
{docsSearchVersionsHelpers.versioningEnabled && ( {contextualSearch && docsSearchVersionsHelpers.versioningEnabled && (
<SearchVersionSelectList <SearchVersionSelectList
docsSearchVersionsHelpers={docsSearchVersionsHelpers} docsSearchVersionsHelpers={docsSearchVersionsHelpers}
/> />