diff --git a/docs/src/modules/components/AppSearch.js b/docs/src/modules/components/AppSearch.js index b4a8c79ca2391b..450ae7a5b9922c 100644 --- a/docs/src/modules/components/AppSearch.js +++ b/docs/src/modules/components/AppSearch.js @@ -228,6 +228,8 @@ DocSearchHit.propTypes = { hit: PropTypes.object.isRequired, }; +const standaloneProducts = ['base-ui', 'joy-ui']; + export default function AppSearch(props) { useLazyCSS( 'https://cdn.jsdelivr.net/npm/@docsearch/css@3.0.0-alpha.40/dist/style.min.css', @@ -323,6 +325,18 @@ export default function AppSearch(props) { optionalFilters.push(`productCategoryId:${pageContext.productCategoryId}`); } + // Filter out stand-alone products unless we're on their subsections + let filters = undefined; + if (standaloneProducts.length > 0) { + const filtersPredicates = []; + for (let i = 0; i < standaloneProducts.length; i += 1) { + if (pageContext.productId !== standaloneProducts[i]) { + filtersPredicates.push(`NOT productId:${standaloneProducts[i]}`); + } + } + filters = filtersPredicates.join(' AND '); + } + return ( @@ -335,6 +349,7 @@ export default function AppSearch(props) { indexName="material-ui" searchParameters={{ facetFilters: ['version:master', facetFilterLanguage], + filters, optionalFilters, attributesToRetrieve: [ // Copied from https://github.com/algolia/docsearch/blob/ce0c865cd8767e961ce3088b3155fc982d4c2e2e/packages/docsearch-react/src/DocSearchModal.tsx#L231