Skip to content

Commit 5173ab7

Browse files
authored
Merge pull request Expensify#88186 from hoangzinh/fix/issue-82188
Migrate SearchFiltersChatsSelector.tsx from useOptionsList to useFilteredOptions
2 parents eb119eb + de41aee commit 5173ab7

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

src/components/Search/SearchFiltersChatsSelector.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import passthroughPolicyTagListSelector from '@selectors/PolicyTagList';
22
import React, {useEffect, useState} from 'react';
33
import {usePersonalDetails} from '@components/OnyxListItemProvider';
4-
import {useOptionsList} from '@components/OptionListContextProvider';
54
import InviteMemberListItem from '@components/SelectionList/ListItem/InviteMemberListItem';
65
import SelectionListWithSections from '@components/SelectionList/SelectionListWithSections';
76
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
87
import useDebouncedState from '@hooks/useDebouncedState';
8+
import useFilteredOptions from '@hooks/useFilteredOptions';
99
import useLocalize from '@hooks/useLocalize';
1010
import useOnyx from '@hooks/useOnyx';
1111
import usePrivateIsArchivedMap from '@hooks/usePrivateIsArchivedMap';
@@ -47,8 +47,10 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
4747
const {translate} = useLocalize();
4848
const personalDetails = usePersonalDetails();
4949
const {didScreenTransitionEnd} = useScreenWrapperTransitionStatus();
50-
const {options, areOptionsInitialized} = useOptionsList({
51-
shouldInitialize: didScreenTransitionEnd,
50+
const [searchTerm, debouncedSearchTerm, setSearchTerm] = useDebouncedState('');
51+
const {options: listOptions, isLoading} = useFilteredOptions({
52+
enabled: didScreenTransitionEnd,
53+
isSearching: !!debouncedSearchTerm.trim(),
5254
});
5355

5456
const [reports] = useOnyx(ONYXKEYS.COLLECTION.REPORT);
@@ -63,7 +65,6 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
6365
const [isSearchingForReports] = useOnyx(ONYXKEYS.RAM_ONLY_IS_SEARCHING_FOR_REPORTS);
6466
const reportAttributesDerived = useReportAttributes();
6567
const [selectedReportIDs, setSelectedReportIDs] = useState<string[]>(initialReportIDs);
66-
const [searchTerm, debouncedSearchTerm, setSearchTerm] = useDebouncedState('');
6768
const cleanSearchTerm = searchTerm.trim().toLowerCase();
6869
const [draftComments] = useOnyx(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT);
6970
const privateIsArchivedMap = usePrivateIsArchivedMap();
@@ -83,10 +84,10 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
8384
});
8485

8586
const defaultOptions =
86-
!areOptionsInitialized || !isScreenTransitionEnd
87+
isLoading || !isScreenTransitionEnd || !listOptions
8788
? defaultListOptions
8889
: getSearchOptions({
89-
options,
90+
options: listOptions,
9091
draftComments,
9192
nvpDismissedProductTraining,
9293
betas: undefined,
@@ -108,7 +109,7 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
108109

109110
const sections: SelectionListSections = [];
110111

111-
if (areOptionsInitialized) {
112+
if (!isLoading) {
112113
const formattedResults = formatSectionsFromSearchTerm(
113114
cleanSearchTerm,
114115
selectedOptions,
@@ -175,7 +176,7 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
175176
);
176177

177178
const isLoadingNewOptions = !!isSearchingForReports;
178-
const shouldShowLoadingPlaceholder = !didScreenTransitionEnd || !areOptionsInitialized || !initialReportIDs || !personalDetails;
179+
const shouldShowLoadingPlaceholder = !didScreenTransitionEnd || isLoading || !initialReportIDs || !personalDetails;
179180

180181
const textInputOptions = {
181182
value: searchTerm,

0 commit comments

Comments
 (0)