diff options
author | Ivan Chen <ivan@tagg.id> | 2021-05-10 20:19:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-10 20:19:17 -0400 |
commit | 6c9d06f8ec0f7fe023d882484c59317e8230de09 (patch) | |
tree | a26eaaa7d832d752bf627e38bbaa8ada6a3b3430 | |
parent | c05aa193a244c052f7950104b859a557922e8983 (diff) | |
parent | 25be50b286034edad75a47ce676401e67746469f (diff) |
Merge pull request #410 from brian-tagg/mentionsKeyboardInteractions
[TMA-841] Fixed up keyboard mentions
-rw-r--r-- | src/components/common/TaggTypeahead.tsx | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/components/common/TaggTypeahead.tsx b/src/components/common/TaggTypeahead.tsx index 7cd99278..747e0bb5 100644 --- a/src/components/common/TaggTypeahead.tsx +++ b/src/components/common/TaggTypeahead.tsx @@ -1,26 +1,32 @@ import React, {Fragment, useEffect, useState} from 'react'; import {ScrollView, StyleSheet} from 'react-native'; import {MentionSuggestionsProps} from 'react-native-controlled-mentions'; +import {useSelector} from 'react-redux'; import {SEARCH_ENDPOINT_MESSAGES} from '../../constants'; import {loadSearchResults} from '../../services'; +import {RootState} from '../../store/rootReducer'; import {ProfilePreviewType} from '../../types'; -import {SCREEN_WIDTH} from '../../utils'; +import {SCREEN_WIDTH, shuffle} from '../../utils'; import TaggUserRowCell from './TaggUserRowCell'; const TaggTypeahead: React.FC<MentionSuggestionsProps> = ({ keyword, onSuggestionPress, }) => { + const {friends} = useSelector((state: RootState) => state.friends); const [results, setResults] = useState<ProfilePreviewType[]>([]); const [height, setHeight] = useState(0); useEffect(() => { - getQuerySuggested(); + if (keyword === '') { + setResults(shuffle(friends)); + } else { + getQuerySuggested(); + } }, [keyword]); const getQuerySuggested = async () => { - if (!keyword || keyword.length < 3) { - setResults([]); + if (keyword === undefined || keyword === '@') { return; } const searchResults = await loadSearchResults( @@ -41,15 +47,16 @@ const TaggTypeahead: React.FC<MentionSuggestionsProps> = ({ showsVerticalScrollIndicator={false} onLayout={(event) => { setHeight(event.nativeEvent.layout.height); - }}> + }} + keyboardShouldPersistTaps={'always'}> {results.map((user) => ( <TaggUserRowCell onPress={() => { + setResults([]); onSuggestionPress({ id: user.id, name: user.username, }); - setResults([]); }} user={user} /> |