Skip to content

Commit 3600046

Browse files
luacmartinsOSBotify
authored andcommitted
Merge pull request #43380 from software-mansion-labs/fix-random-sorting-on-mobile
[Search v1] Fix random sorting on mobile (cherry picked from commit 2261654)
1 parent ef2ac29 commit 3600046

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

src/pages/Search/SearchPageBottomTab.tsx

+29-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React from 'react';
1+
import type {StackScreenProps} from '@react-navigation/stack';
2+
import React, {useMemo} from 'react';
23
import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView';
34
import ScreenWrapper from '@components/ScreenWrapper';
45
import Search from '@components/Search';
@@ -7,20 +8,42 @@ import useLocalize from '@hooks/useLocalize';
78
import useThemeStyles from '@hooks/useThemeStyles';
89
import useWindowDimensions from '@hooks/useWindowDimensions';
910
import Navigation from '@libs/Navigation/Navigation';
11+
import type {CentralPaneNavigatorParamList} from '@libs/Navigation/types';
1012
import TopBar from '@navigation/AppNavigator/createCustomBottomTabNavigator/TopBar';
1113
import CONST from '@src/CONST';
1214
import ROUTES from '@src/ROUTES';
15+
import SCREENS from '@src/SCREENS';
1316
import type {SearchQuery} from '@src/types/onyx/SearchResults';
1417
import SearchFilters from './SearchFilters';
1518

19+
type SearchPageProps = StackScreenProps<CentralPaneNavigatorParamList, typeof SCREENS.SEARCH.CENTRAL_PANE>;
20+
21+
const defaultSearchProps = {
22+
query: '' as SearchQuery,
23+
policyIDs: undefined,
24+
sortBy: CONST.SEARCH_TABLE_COLUMNS.DATE,
25+
sortOrder: CONST.SORT_ORDER.DESC,
26+
};
1627
function SearchPageBottomTab() {
1728
const {translate} = useLocalize();
1829
const {isSmallScreenWidth} = useWindowDimensions();
1930
const activeRoute = useActiveRoute();
2031
const styles = useThemeStyles();
21-
const currentQuery = activeRoute?.params && 'query' in activeRoute.params ? activeRoute?.params?.query : '';
22-
const policyIDs = activeRoute?.params && 'policyIDs' in activeRoute.params ? (activeRoute?.params?.policyIDs as string) : undefined;
23-
const query = currentQuery as SearchQuery;
32+
33+
const {
34+
query: rawQuery,
35+
policyIDs,
36+
sortBy,
37+
sortOrder,
38+
} = useMemo(() => {
39+
if (activeRoute?.name !== SCREENS.SEARCH.CENTRAL_PANE || !activeRoute.params) {
40+
return defaultSearchProps;
41+
}
42+
return {...defaultSearchProps, ...activeRoute.params} as SearchPageProps['route']['params'];
43+
}, [activeRoute]);
44+
45+
const query = rawQuery as SearchQuery;
46+
2447
const isValidQuery = Object.values(CONST.TAB_SEARCH).includes(query);
2548

2649
const handleOnBackButtonPress = () => Navigation.goBack(ROUTES.SEARCH.getRoute(CONST.TAB_SEARCH.ALL));
@@ -45,6 +68,8 @@ function SearchPageBottomTab() {
4568
<Search
4669
policyIDs={policyIDs}
4770
query={query}
71+
sortBy={sortBy}
72+
sortOrder={sortOrder}
4873
/>
4974
)}
5075
</FullPageNotFoundView>

0 commit comments

Comments
 (0)