From ed66b92d4f050bad0c27b44b49d2a7d1594abc96 Mon Sep 17 00:00:00 2001 From: Chris Deery <3932645+cdeery@users.noreply.github.com> Date: Wed, 19 Jul 2023 08:36:57 -0400 Subject: [PATCH] feat: don't show titles until typing starts (#11) Use the idiom provided by Algolia to short circuit the query if there is no input in the form --- src/skills-builder/utils/search.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/skills-builder/utils/search.js b/src/skills-builder/utils/search.js index 06a555ad..11c8b1ec 100644 --- a/src/skills-builder/utils/search.js +++ b/src/skills-builder/utils/search.js @@ -26,9 +26,30 @@ export const useAlgoliaSearch = () => { config.ALGOLIA_APP_ID, config.ALGOLIA_SEARCH_API_KEY, ); + const searchNotEmptyClient = { + ...client, + search(requests) { + if (requests.every(({ params }) => !params.query)) { + return Promise.resolve({ + results: requests.map(() => ({ + hits: [], + nbHits: 0, + nbPages: 0, + page: 0, + processingTimeMS: 0, + hitsPerPage: 0, + exhaustiveNbHits: false, + query: '', + params: '', + })), + }); + } + return client.search(requests); + }, + }; const productIndex = client.initIndex(config.ALGOLIA_PRODUCT_INDEX_NAME); const jobIndex = client.initIndex(config.ALGOLIA_JOBS_INDEX_NAME); - return [client, productIndex, jobIndex]; + return [searchNotEmptyClient, productIndex, jobIndex]; }, [ config.ALGOLIA_APP_ID,