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' ;
@@ -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