11import passthroughPolicyTagListSelector from '@selectors/PolicyTagList' ;
22import React , { useEffect , useState } from 'react' ;
33import { usePersonalDetails } from '@components/OnyxListItemProvider' ;
4- import { useOptionsList } from '@components/OptionListContextProvider' ;
54import InviteMemberListItem from '@components/SelectionList/ListItem/InviteMemberListItem' ;
65import SelectionListWithSections from '@components/SelectionList/SelectionListWithSections' ;
76import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails' ;
87import useDebouncedState from '@hooks/useDebouncedState' ;
8+ import useFilteredOptions from '@hooks/useFilteredOptions' ;
99import useLocalize from '@hooks/useLocalize' ;
1010import useOnyx from '@hooks/useOnyx' ;
1111import 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