diff --git a/src/pages/ChatFinderPage/index.tsx b/src/pages/ChatFinderPage/index.tsx index 21ca18df9263..04057a3cf943 100644 --- a/src/pages/ChatFinderPage/index.tsx +++ b/src/pages/ChatFinderPage/index.tsx @@ -1,6 +1,6 @@ import type {StackScreenProps} from '@react-navigation/stack'; import isEmpty from 'lodash/isEmpty'; -import React, {useEffect, useMemo, useState} from 'react'; +import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -63,6 +63,14 @@ function ChatFinderPage({betas, isSearchingForReports, navigation}: ChatFinderPa const offlineMessage: MaybePhraseKey = isOffline ? [`${translate('common.youAppearToBeOffline')} ${translate('search.resultsAreLimited')}`, {isTranslated: true}] : ''; const [searchValue, debouncedSearchValue, setSearchValue] = useDebouncedState(''); + const [, debouncedSearchValueInServer, setSearchValueInServer] = useDebouncedState('', 500); + const updateSearchValue = useCallback( + (value: string) => { + setSearchValue(value); + setSearchValueInServer(value); + }, + [setSearchValue, setSearchValueInServer], + ); useEffect(() => { Timing.start(CONST.TIMING.CHAT_FINDER_RENDER); @@ -70,8 +78,8 @@ function ChatFinderPage({betas, isSearchingForReports, navigation}: ChatFinderPa }, []); useEffect(() => { - Report.searchInServer(debouncedSearchValue.trim()); - }, [debouncedSearchValue]); + Report.searchInServer(debouncedSearchValueInServer.trim()); + }, [debouncedSearchValueInServer]); const searchOptions = useMemo(() => { if (!areOptionsInitialized || !isScreenTransitionEnd) { @@ -146,7 +154,7 @@ function ChatFinderPage({betas, isSearchingForReports, navigation}: ChatFinderPa } if (option.reportID) { - setSearchValue(''); + updateSearchValue(''); Navigation.dismissModal(option.reportID); } else { Report.navigateToAndOpenReport(option.login ? [option.login] : []); @@ -177,7 +185,7 @@ function ChatFinderPage({betas, isSearchingForReports, navigation}: ChatFinderPa textInputValue={searchValue} textInputLabel={translate('optionsSelector.nameEmailOrPhoneNumber')} textInputHint={offlineMessage} - onChangeText={setSearchValue} + onChangeText={updateSearchValue} headerMessage={headerMessage} headerMessageStyle={headerMessage === translate('common.noResultsFound') ? [themeStyles.ph4, themeStyles.pb5] : undefined} onLayout={setPerformanceTimersEnd}