From 62dc109ad81735c450143f901dd682dd632a7790 Mon Sep 17 00:00:00 2001 From: Mateusz Titz Date: Fri, 17 May 2024 09:40:29 +0200 Subject: [PATCH] Update search to work with pagination --- src/components/Search.tsx | 14 ++++++-------- src/libs/actions/Search.ts | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/components/Search.tsx b/src/components/Search.tsx index 4f34c7cf745e..a6729510aa4e 100644 --- a/src/components/Search.tsx +++ b/src/components/Search.tsx @@ -1,3 +1,4 @@ +import {useNavigation} from '@react-navigation/native'; import React, {useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import useNetwork from '@hooks/useNetwork'; @@ -75,19 +76,19 @@ type SearchProps = { function Search({query, policyIDs, sortOrder, sortBy}: SearchProps) { const {isOffline} = useNetwork(); const styles = useThemeStyles(); + const navigation = useNavigation(); + useCustomBackHandler(); const hash = SearchUtils.getQueryHash(query, policyIDs); const [searchResults, searchResultsMeta] = useOnyx(`${ONYXKEYS.COLLECTION.SNAPSHOT}${hash}`); - const offset = 0; - useEffect(() => { if (isOffline) { return; } - SearchActions.search({hash, query, policyIDs, offset, sortBy, sortOrder}); + SearchActions.search({hash, query, policyIDs, offset: 0, sortBy, sortOrder}); // eslint-disable-next-line react-hooks/exhaustive-deps }, [hash, isOffline, sortBy, sortOrder]); @@ -116,7 +117,7 @@ function Search({query, policyIDs, sortOrder, sortBy}: SearchProps) { return; } const currentOffset = searchResults?.search?.offset ?? 0; - SearchActions.search({hash, query, offset: currentOffset + CONST.SEARCH_RESULTS_PAGE_SIZE}); + SearchActions.search({hash, query, offset: currentOffset + CONST.SEARCH_RESULTS_PAGE_SIZE, sortBy, sortOrder}); }; const type = SearchUtils.getSearchType(searchResults?.search); @@ -130,13 +131,10 @@ function Search({query, policyIDs, sortOrder, sortBy}: SearchProps) { const data = SearchUtils.getSections(searchResults?.data ?? {}, type); const onSortPress = (column: SearchColumnType, order: SortOrder) => { - const newRoute = ROUTES.SEARCH.getRoute(query, { - query, + navigation.setParams({ sortBy: column, sortOrder: order, }); - - Navigation.navigate(newRoute); }; const sortedData = getSortedData(data, sortBy, sortOrder); diff --git a/src/libs/actions/Search.ts b/src/libs/actions/Search.ts index fb93fc78481b..43f3e2697e8a 100644 --- a/src/libs/actions/Search.ts +++ b/src/libs/actions/Search.ts @@ -30,7 +30,7 @@ function search({hash, query, policyIDs, offset, sortBy, sortOrder}: SearchParam }, ]; - API.read(READ_COMMANDS.SEARCH, {hash, query, offset, policyIDs}, {optimisticData, finallyData}); + API.read(READ_COMMANDS.SEARCH, {hash, query, offset, policyIDs, sortBy, sortOrder}, {optimisticData, finallyData}); } export { // eslint-disable-next-line import/prefer-default-export