From 5bafa8fd6a90ef75f89251dfa13ec21dc73ac99d Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Fri, 14 May 2021 06:47:14 -0700 Subject: Added invites to header, organized imports --- src/components/friends/InviteFriendTile.tsx | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/components') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index 48f65a94..d384ed27 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -1,3 +1,4 @@ +import {useNavigation} from '@react-navigation/core'; import React, {useEffect, useState} from 'react'; import { Alert, @@ -9,11 +10,10 @@ import { View, } from 'react-native'; import {useSelector} from 'react-redux'; -import {RootState} from 'src/store/rootReducer'; import {TAGG_LIGHT_BLUE} from '../../constants'; import { + ERROR_FAILED_TO_INVITE_CONTACT, ERROR_NO_CONTACT_INVITE_LEFT, - ERROR_SOMETHING_WENT_WRONG, INVITE_USER_SMS_BODY, SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE, SUCCESS_CONFIRM_INVITE_CONTACT_TITLE, @@ -23,7 +23,8 @@ import { InviteContactType, SearchResultType, } from '../../screens/profile/InviteFriendsScreen'; -import {getRemainingInviteCount, inviteFriendService} from '../../services'; +import {inviteFriendService} from '../../services'; +import {RootState} from '../../store/rootReducer'; import {normalize} from '../../utils'; interface InviteFriendTileProps { @@ -31,18 +32,22 @@ interface InviteFriendTileProps { remind: boolean; results: SearchResultType; setResults: Function; + invitesLeft: number; + setInvitesLeft: (updateInvites: number) => void; } const InviteFriendTile: React.FC = ({ item, + invitesLeft, + setInvitesLeft, remind, results, setResults, }) => { + const navigation = useNavigation(); const [invited, setInvited] = useState(remind); const {name} = useSelector((state: RootState) => state.user.profile); const [formatedPhoneNumber, setFormattedPhoneNumber] = useState(''); - const handleInviteFriend = async () => { // If user has been invited already, don't show alerts and change invite count if (invited) { @@ -54,6 +59,7 @@ const InviteFriendTile: React.FC = ({ ); const inviteCode = response?.invite_code; if (inviteCode) { + // Open iMessage Linking.openURL( `sms:${item.phoneNumber}&body=${INVITE_USER_SMS_BODY( item.firstName, @@ -63,12 +69,11 @@ const InviteFriendTile: React.FC = ({ ); } } else { - const invites_left = await getRemainingInviteCount(); - if (invites_left < 1) { + if (invitesLeft < 1) { Alert.alert(ERROR_NO_CONTACT_INVITE_LEFT); } Alert.alert( - SUCCESS_CONFIRM_INVITE_CONTACT_TITLE(invites_left), + SUCCESS_CONFIRM_INVITE_CONTACT_TITLE(String(invitesLeft)), SUCCESS_CONFIRM_INVITE_CONTACT_MESSAGE, [ {text: 'No!', style: 'cancel'}, @@ -83,7 +88,8 @@ const InviteFriendTile: React.FC = ({ ); const inviteCode = response?.invite_code; if (!inviteCode) { - Alert.alert(ERROR_SOMETHING_WENT_WRONG); + setInvited(false); + Alert.alert(ERROR_FAILED_TO_INVITE_CONTACT); } // Add user to Pending Users list const newPendingUser: InviteContactType = { @@ -110,6 +116,7 @@ const InviteFriendTile: React.FC = ({ // Update results after navigating out of the app setTimeout(() => { setInvited(true); + setInvitesLeft(invitesLeft - 1); setResults({ ...results, pendingUsers: [...results.pendingUsers, newPendingUser], @@ -117,7 +124,7 @@ const InviteFriendTile: React.FC = ({ }); }, 500); - if (invites_left === 1) { + if (invitesLeft === 1) { Alert.alert(SUCCESS_LAST_CONTACT_INVITE); } }, -- cgit v1.2.3-70-g09d2 From db9c1d584403eddd49666d031d1f37f387720b44 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Thu, 20 May 2021 14:42:02 -0700 Subject: lint errors --- src/components/friends/InviteFriendTile.tsx | 1 - src/routes/main/MainStackNavigator.tsx | 4 +--- src/screens/profile/InviteFriendsScreen.tsx | 12 ++---------- 3 files changed, 3 insertions(+), 14 deletions(-) (limited to 'src/components') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index d384ed27..15648902 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -44,7 +44,6 @@ const InviteFriendTile: React.FC = ({ results, setResults, }) => { - const navigation = useNavigation(); const [invited, setInvited] = useState(remind); const {name} = useSelector((state: RootState) => state.user.profile); const [formatedPhoneNumber, setFormattedPhoneNumber] = useState(''); diff --git a/src/routes/main/MainStackNavigator.tsx b/src/routes/main/MainStackNavigator.tsx index 3b183cc0..8f2192f1 100644 --- a/src/routes/main/MainStackNavigator.tsx +++ b/src/routes/main/MainStackNavigator.tsx @@ -92,9 +92,7 @@ export type MainStackParams = { badge_title: string; badge_img: string; }; - InviteFriendsScreen: { - screenType: ScreenType; - }; + InviteFriendsScreen: undefined; SPWelcomeScreen: {}; ChatList: undefined; Chat: undefined; diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index 24a4c821..49acf1b7 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -46,16 +46,7 @@ export type SearchResultType = { pendingUsers: InviteContactType[]; }; -type InviteFriendsScreenRouteProp = RouteProp< - MainStackParams, - 'InviteFriendsScreen' ->; - -interface InviteFriendsScreenProps { - route: InviteFriendsScreenRouteProp; -} - -const InviteFriendsScreen: React.FC = ({route}) => { +const InviteFriendsScreen: React.FC = () => { const navigation = useNavigation(); const [usersFromContacts, setUsersFromContacts] = useState< ProfilePreviewType[] @@ -85,6 +76,7 @@ const InviteFriendsScreen: React.FC = ({route}) => { }), [invitesLeft], ); + useEffect(() => { const handleFindFriends = () => { extractContacts().then(async (retrievedContacts) => { -- cgit v1.2.3-70-g09d2 From ccb37b8a49cb0a1b50ab3731a59c8c09b8aca62b Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Thu, 20 May 2021 15:39:26 -0700 Subject: Fix lint --- src/components/friends/InviteFriendTile.tsx | 1 - src/screens/profile/InviteFriendsScreen.tsx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src/components') diff --git a/src/components/friends/InviteFriendTile.tsx b/src/components/friends/InviteFriendTile.tsx index 15648902..f990df6a 100644 --- a/src/components/friends/InviteFriendTile.tsx +++ b/src/components/friends/InviteFriendTile.tsx @@ -1,4 +1,3 @@ -import {useNavigation} from '@react-navigation/core'; import React, {useEffect, useState} from 'react'; import { Alert, diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index 49acf1b7..4f6319f7 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -1,4 +1,4 @@ -import {RouteProp, useNavigation} from '@react-navigation/native'; +import {useNavigation} from '@react-navigation/native'; import React, {useEffect, useMemo, useState} from 'react'; import { FlatList, @@ -18,7 +18,7 @@ import Animated from 'react-native-reanimated'; import Icon from 'react-native-vector-icons/Feather'; import {TabsGradient} from '../../components'; import {InviteFriendTile} from '../../components/friends'; -import {headerBarOptions, MainStackParams} from '../../routes'; +import {headerBarOptions} from '../../routes'; import { getRemainingInviteCount, usersFromContactsService, -- cgit v1.2.3-70-g09d2