diff options
author | Leon Jiang <35908040+leonyjiang@users.noreply.github.com> | 2021-03-08 20:12:56 -0500 |
---|---|---|
committer | Leon Jiang <35908040+leonyjiang@users.noreply.github.com> | 2021-03-08 20:33:30 -0500 |
commit | fe8220212c64c5d60b43785f4e669642c8761631 (patch) | |
tree | 2d071dcc1398e519892cf72c7e50ea8ae90a392b /src | |
parent | 78954d1bfe2e3c385bd575f0dedbb65bb574078f (diff) |
Fix query clearing delay
Diffstat (limited to 'src')
-rw-r--r-- | src/screens/search/SearchScreen.tsx | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/screens/search/SearchScreen.tsx b/src/screens/search/SearchScreen.tsx index 34d98977..4e6ce6a4 100644 --- a/src/screens/search/SearchScreen.tsx +++ b/src/screens/search/SearchScreen.tsx @@ -64,6 +64,7 @@ const SearchScreen: React.FC = () => { * Main handler for changes in query. */ useEffect(() => { + if (!searching) return; if (!query.length) loadRecentSearches(); if (query.length < 3) { setResults(undefined); @@ -102,6 +103,17 @@ const SearchScreen: React.FC = () => { dispatch(resetScreenType(ScreenType.Search)); }); + // when searching state changes, run animation and reset query accordingly + useEffect(() => { + if (searching) { + timing(top, topInConfig).start(() => setResults(undefined)); + } else { + setQuery(''); + handleBlur(); + timing(top, topOutConfig).start(); + } + }, [searching]); + const loadRecentlySearchedUsers = async () => { try { const asyncCache = await AsyncStorage.getItem('@recently_searched_users'); @@ -148,15 +160,12 @@ const SearchScreen: React.FC = () => { easing: Easing.inOut(Easing.ease), }; const handleFocus = () => { - timing(top, topInConfig).start(); setSearching(true); }; const handleBlur = () => { Keyboard.dismiss(); }; const handleCancel = () => { - handleBlur(); - timing(top, topOutConfig).start(() => setQuery('')); setSearching(false); }; |