From db40f99987a4c17ebb42ccbce3a2f558f439e35a Mon Sep 17 00:00:00 2001 From: Jixabon Date: Sun, 2 Aug 2020 23:14:43 -0500 Subject: [PATCH 1/2] Fix rawResults.map is not a function Detect when an object is returned from index.search() and populate the result from store accordingly. --- src/index.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 31d92db..1279cc1 100644 --- a/src/index.js +++ b/src/index.js @@ -39,8 +39,15 @@ export const useFlexSearch = (query, providedIndex, store, searchOptions) => { return useMemo(() => { if (!query || !index || !store) return [] - const rawResults = index.search(query, searchOptions) - - return rawResults.map(id => store[id]) + var rawResults = index.search(query, searchOptions) + + if (typeof rawRestuls === 'object') { + rawResults.result = rawResults.result.map(id => store[id]) + } + else { + rawResults = rawResults.map(id => store[id]) + } + + return rawResults }, [query, index, store]) } From b95b874c15ca615bf3e90c4b4206d5820dd7a725 Mon Sep 17 00:00:00 2001 From: Jixabon Date: Sun, 2 Aug 2020 23:36:52 -0500 Subject: [PATCH 2/2] Prevent map on undefined result When paginated search has a result and then doesn't index.search() returns an empty array. --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 1279cc1..c85deca 100644 --- a/src/index.js +++ b/src/index.js @@ -41,7 +41,7 @@ export const useFlexSearch = (query, providedIndex, store, searchOptions) => { var rawResults = index.search(query, searchOptions) - if (typeof rawRestuls === 'object') { + if (typeof rawRestuls === 'object' && rawResult.result) { rawResults.result = rawResults.result.map(id => store[id]) } else {