From 65b689d4af0fa0727e3542e1cfac6a2e267a03b1 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 24 Apr 2024 10:23:36 -0700 Subject: [PATCH] don't flash results in autocomplete --- src/view/screens/Search/Search.tsx | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index ea29b12c61..f0703c741c 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -28,7 +28,7 @@ import {s} from '#/lib/styles' import {logger} from '#/logger' import {isNative, isWeb} from '#/platform/detection' import {listenSoftReset} from '#/state/events' -import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' +import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' import {useActorSearch} from '#/state/queries/actor-search' import {useModerationOpts} from '#/state/queries/preferences' import {useSearchPostsQuery} from '#/state/queries/search-posts' @@ -550,8 +550,10 @@ export function SearchScreen( const [searchText, setSearchText] = React.useState(q) const throttledInput = useThrottledValue(searchText, 300) - const {data: autocompleteData, isFetching: isAutocompleteFetching} = - useActorAutocompleteQuery(throttledInput) + // Autocomplete + const search = useActorAutocompleteFn() + const [autocompleteData, setAutocompleteData] = + React.useState() const [inputIsFocused, setInputIsFocused] = React.useState(false) const [showAutocompleteResults, setShowAutocompleteResults] = @@ -578,6 +580,16 @@ export function SearchScreen( loadSearchHistory() }, []) + React.useEffect(() => { + if (!throttledInput) { + setAutocompleteData(undefined) + } else { + search({query: throttledInput}).then(res => { + setAutocompleteData(res) + }) + } + }, [search, throttledInput]) + const onPressMenu = React.useCallback(() => { track('ViewHeader:MenuButtonClicked') setDrawerOpen(true) @@ -786,7 +798,7 @@ export function SearchScreen( {showAutocompleteResults ? ( <> {/* TODO avoid showing spinner if we have any previous results -hailey */} - {(isAutocompleteFetching && !autocompleteData) || !moderationOpts ? ( + {(searchText && !autocompleteData) || !moderationOpts ? ( ) : (