From 5c01225acf5aa4c5be3b4638779d1f766c054eca Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Fri, 14 May 2021 13:46:35 -0700 Subject: Added pending user list --- src/screens/profile/InviteFriendsScreen.tsx | 96 ++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 28 deletions(-) (limited to 'src') diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index e1f739c5..87b00aaf 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -1,19 +1,28 @@ -import React, {useEffect, useState} from 'react'; +import {RouteProp} from '@react-navigation/native'; +import React, {useEffect, useMemo, useState} from 'react'; import { - View, - Text, - TouchableOpacity, - SafeAreaView, - StyleSheet, - TextInput, FlatList, Keyboard, Linking, + SafeAreaView, + ScrollView, StatusBar, + StyleSheet, + Text, + TextInput, + TouchableOpacity, TouchableWithoutFeedback, - ScrollView, + View, } from 'react-native'; +import {checkPermission} from 'react-native-contacts'; +import Animated from 'react-native-reanimated'; +import Icon from 'react-native-vector-icons/Feather'; import {useDispatch, useStore} from 'react-redux'; +import {ProfilePreview, TabsGradient} from '../../components'; +import {InviteFriendTile} from '../../components/friends'; +import {TAGG_LIGHT_BLUE} from '../../constants'; +import {MainStackParams} from '../../routes'; +import {usersFromContactsService} from '../../services/UserFriendsService'; import {ProfilePreviewType} from '../../types'; import { extractContacts, @@ -25,15 +34,6 @@ import { SCREEN_WIDTH, StatusBarHeight, } from '../../utils'; -import {checkPermission} from 'react-native-contacts'; -import {usersFromContactsService} from '../../services/UserFriendsService'; -import {ProfilePreview, TabsGradient} from '../../components'; -import Animated from 'react-native-reanimated'; -import Icon from 'react-native-vector-icons/Feather'; -import {InviteFriendTile} from '../../components/friends'; -import {TAGG_LIGHT_BLUE} from '../../constants'; -import {MainStackParams} from '../../routes'; -import {RouteProp} from '@react-navigation/native'; const AnimatedIcon = Animated.createAnimatedComponent(Icon); export type InviteContactType = { @@ -42,9 +42,10 @@ export type InviteContactType = { phoneNumber: string; }; -type SearchResultType = { +export type SearchResultType = { usersFromContacts: ProfilePreviewType[]; nonUsersFromContacts: InviteContactType[]; + pendingUsers: InviteContactType[]; }; type InviteFriendsScreenRouteProp = RouteProp< @@ -64,9 +65,11 @@ const InviteFriendsScreen: React.FC = ({route}) => { ProfilePreviewType[] >([]); const [nonUsersFromContacts, setNonUsersFromContacts] = useState<[]>([]); + const [pendingUsers, setPendingUsers] = useState<[]>([]); const [results, setResults] = useState({ usersFromContacts: usersFromContacts, nonUsersFromContacts: nonUsersFromContacts, + pendingUsers: pendingUsers, }); const [query, setQuery] = useState(''); @@ -81,6 +84,7 @@ const InviteFriendsScreen: React.FC = ({route}) => { setResults({ usersFromContacts: response.existing_tagg_users, nonUsersFromContacts: response.invite_from_contacts, + pendingUsers: response.pending_users, }); } else { Linking.openSettings(); @@ -120,6 +124,7 @@ const InviteFriendsScreen: React.FC = ({route}) => { setResults({ usersFromContacts: usersFromContacts, nonUsersFromContacts: nonUsersFromContacts, + pendingUsers: pendingUsers, }); } }; @@ -168,6 +173,48 @@ const InviteFriendsScreen: React.FC = ({route}) => { ); + const PendingList = useMemo( + () => ( + item.phoneNumber} + renderItem={({item}) => ( + + )} + /> + ), + [results.pendingUsers], + ); + + const InviteList = useMemo( + () => ( + item.phoneNumber} + renderItem={({item}) => ( + + )} + /> + ), + [results.nonUsersFromContacts], + ); + return ( @@ -210,19 +257,12 @@ const InviteFriendsScreen: React.FC = ({route}) => { - Contacts on Tagg - + Pending Users + {PendingList} Invite your friends! - item.phoneNumber} - renderItem={({item}) => } - /> + {InviteList} -- cgit v1.2.3-70-g09d2