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:12:56 -0500 |
commit | f712d3f5fad5cfbf523d99fd42f472f4f1b62686 (patch) | |
tree | b361aa3f41d2e740a2642f80352af25df88e3896 | |
parent | 80e3f85701e08492164296823741ba3d2585e0eb (diff) |
Fix query clearing delay
-rw-r--r-- | src/screens/search/SearchScreen.tsx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/screens/search/SearchScreen.tsx b/src/screens/search/SearchScreen.tsx index 61dea11e..df3c1d67 100644 --- a/src/screens/search/SearchScreen.tsx +++ b/src/screens/search/SearchScreen.tsx @@ -51,6 +51,7 @@ const SearchScreen: React.FC = () => { const dispatch = useDispatch(); useEffect(() => { + if (!searching) return; if (query.length < 3) { setResults(undefined); return; @@ -88,6 +89,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'); @@ -120,15 +132,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); }; @@ -141,7 +150,7 @@ const SearchScreen: React.FC = () => { onBlur={handleBlur} onFocus={handleFocus} value={query} - {...{top, searching}} + {...{top}} /> <ScrollView scrollEnabled={!searching} |