aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-05-10 20:19:17 -0400
committerGitHub <noreply@github.com>2021-05-10 20:19:17 -0400
commit6c9d06f8ec0f7fe023d882484c59317e8230de09 (patch)
treea26eaaa7d832d752bf627e38bbaa8ada6a3b3430 /src
parentc05aa193a244c052f7950104b859a557922e8983 (diff)
parent25be50b286034edad75a47ce676401e67746469f (diff)
Merge pull request #410 from brian-tagg/mentionsKeyboardInteractions
[TMA-841] Fixed up keyboard mentions
Diffstat (limited to 'src')
-rw-r--r--src/components/common/TaggTypeahead.tsx19
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}
/>