Skip to content

Commit 0d676f3

Browse files
committed
Migrate SearchFiltersChatsSelector from useOptionsList to useFilteredOptions
1 parent b538fb3 commit 0d676f3

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';
@@ -46,8 +46,10 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
4646
const {translate} = useLocalize();
4747
const personalDetails = usePersonalDetails();
4848
const {didScreenTransitionEnd} = useScreenWrapperTransitionStatus();
49-
const {options, areOptionsInitialized} = useOptionsList({
50-
shouldInitialize: didScreenTransitionEnd,
49+
const [searchTerm, debouncedSearchTerm, setSearchTerm] = useDebouncedState('');
50+
const {options: listOptions, isLoading} = useFilteredOptions({
51+
enabled: didScreenTransitionEnd,
52+
isSearching: !!debouncedSearchTerm.trim(),
5153
});
5254

5355
const [reports] = useOnyx(ONYXKEYS.COLLECTION.REPORT);
@@ -62,7 +64,6 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
6264
const [isSearchingForReports] = useOnyx(ONYXKEYS.RAM_ONLY_IS_SEARCHING_FOR_REPORTS);
6365
const reportAttributesDerived = useReportAttributes();
6466
const [selectedReportIDs, setSelectedReportIDs] = useState<string[]>(initialReportIDs);
65-
const [searchTerm, debouncedSearchTerm, setSearchTerm] = useDebouncedState('');
6667
const cleanSearchTerm = searchTerm.trim().toLowerCase();
6768
const [draftComments] = useOnyx(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT);
6869
const privateIsArchivedMap = usePrivateIsArchivedMap();
@@ -81,10 +82,10 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
8182
});
8283

8384
const defaultOptions =
84-
!areOptionsInitialized || !isScreenTransitionEnd
85+
isLoading || !isScreenTransitionEnd || !listOptions
8586
? defaultListOptions
8687
: getSearchOptions({
87-
options,
88+
options: listOptions,
8889
draftComments,
8990
nvpDismissedProductTraining,
9091
betas: undefined,
@@ -105,7 +106,7 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
105106

106107
const sections: SelectionListSections = [];
107108

108-
if (areOptionsInitialized) {
109+
if (!isLoading) {
109110
const formattedResults = formatSectionsFromSearchTerm(
110111
cleanSearchTerm,
111112
selectedOptions,
@@ -172,7 +173,7 @@ function SearchFiltersChatsSelector({initialReportIDs, onFiltersUpdate, isScreen
172173
);
173174

174175
const isLoadingNewOptions = !!isSearchingForReports;
175-
const shouldShowLoadingPlaceholder = !didScreenTransitionEnd || !areOptionsInitialized || !initialReportIDs || !personalDetails;
176+
const shouldShowLoadingPlaceholder = !didScreenTransitionEnd || isLoading || !initialReportIDs || !personalDetails;
176177

177178
const textInputOptions = {
178179
value: searchTerm,

0 commit comments

Comments
 (0)