defer search screen
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
memo,
|
memo,
|
||||||
useCallback,
|
useCallback,
|
||||||
|
useDeferredValue,
|
||||||
useLayoutEffect,
|
useLayoutEffect,
|
||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
@@ -75,9 +76,10 @@ export function SearchScreenShell({
|
|||||||
const queryClient = useQueryClient()
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
// Query terms
|
// Query terms
|
||||||
const [searchText, setSearchText] = useState<string>(queryParam)
|
const [searchText, setSearchText] = useState(queryParam)
|
||||||
|
const deferredSearchText = useDeferredValue(searchText)
|
||||||
const {data: autocompleteData, isFetching: isAutocompleteFetching} =
|
const {data: autocompleteData, isFetching: isAutocompleteFetching} =
|
||||||
useActorAutocompleteQuery(searchText, true)
|
useActorAutocompleteQuery(deferredSearchText, true)
|
||||||
|
|
||||||
const [showAutocomplete, setShowAutocomplete] = useState(false)
|
const [showAutocomplete, setShowAutocomplete] = useState(false)
|
||||||
|
|
||||||
@@ -203,8 +205,8 @@ export function SearchScreenShell({
|
|||||||
}, [setShowAutocomplete, setSearchText, navigation, route.params, route.name])
|
}, [setShowAutocomplete, setSearchText, navigation, route.params, route.name])
|
||||||
|
|
||||||
const onSubmit = useCallback(() => {
|
const onSubmit = useCallback(() => {
|
||||||
navigateToItem(searchText)
|
navigateToItem(deferredSearchText)
|
||||||
}, [navigateToItem, searchText])
|
}, [navigateToItem, deferredSearchText])
|
||||||
|
|
||||||
const onAutocompleteResultPress = useCallback(() => {
|
const onAutocompleteResultPress = useCallback(() => {
|
||||||
if (isWeb) {
|
if (isWeb) {
|
||||||
@@ -376,11 +378,11 @@ export function SearchScreenShell({
|
|||||||
display: showAutocomplete && !fixedParams ? 'flex' : 'none',
|
display: showAutocomplete && !fixedParams ? 'flex' : 'none',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
}}>
|
}}>
|
||||||
{searchText.length > 0 ? (
|
{deferredSearchText.length > 0 ? (
|
||||||
<AutocompleteResults
|
<AutocompleteResults
|
||||||
isAutocompleteFetching={isAutocompleteFetching}
|
isAutocompleteFetching={isAutocompleteFetching}
|
||||||
autocompleteData={autocompleteData}
|
autocompleteData={autocompleteData}
|
||||||
searchText={searchText}
|
searchText={deferredSearchText}
|
||||||
onSubmit={onSubmit}
|
onSubmit={onSubmit}
|
||||||
onResultPress={onAutocompleteResultPress}
|
onResultPress={onAutocompleteResultPress}
|
||||||
onProfileClick={handleProfileClick}
|
onProfileClick={handleProfileClick}
|
||||||
@@ -428,7 +430,6 @@ let SearchScreenInner = ({
|
|||||||
const {hasSession} = useSession()
|
const {hasSession} = useSession()
|
||||||
const {gtTablet} = useBreakpoints()
|
const {gtTablet} = useBreakpoints()
|
||||||
const [activeTab, setActiveTab] = useState(0)
|
const [activeTab, setActiveTab] = useState(0)
|
||||||
const {_} = useLingui()
|
|
||||||
|
|
||||||
const onPageSelected = useCallback(
|
const onPageSelected = useCallback(
|
||||||
(index: number) => {
|
(index: number) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user