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/screens/profile/InviteFriendsScreen.tsx | 33 +++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'src/screens') diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index bf91e8f3..24a4c821 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -1,4 +1,4 @@ -import {RouteProp} from '@react-navigation/native'; +import {RouteProp, useNavigation} from '@react-navigation/native'; import React, {useEffect, useMemo, useState} from 'react'; import { FlatList, @@ -18,8 +18,11 @@ import Animated from 'react-native-reanimated'; import Icon from 'react-native-vector-icons/Feather'; import {TabsGradient} from '../../components'; import {InviteFriendTile} from '../../components/friends'; -import {MainStackParams} from '../../routes'; -import {usersFromContactsService} from '../../services/UserFriendsService'; +import {headerBarOptions, MainStackParams} from '../../routes'; +import { + getRemainingInviteCount, + usersFromContactsService, +} from '../../services/UserFriendsService'; import {ProfilePreviewType} from '../../types'; import { extractContacts, @@ -52,7 +55,8 @@ interface InviteFriendsScreenProps { route: InviteFriendsScreenRouteProp; } -const InviteFriendsScreen: React.FC = ({}) => { +const InviteFriendsScreen: React.FC = ({route}) => { + const navigation = useNavigation(); const [usersFromContacts, setUsersFromContacts] = useState< ProfilePreviewType[] >([]); @@ -63,7 +67,24 @@ const InviteFriendsScreen: React.FC = ({}) => { pendingUsers: pendingUsers, }); const [query, setQuery] = useState(''); + const [invitesLeft, setInvitesLeft] = useState(0); + + useEffect(() => { + // Get number of invites from the backend and set the state + const getInitialInvitesCount = async () => { + const intialInvites = await getRemainingInviteCount(); + setInvitesLeft(intialInvites); + }; + getInitialInvitesCount(); + }, []); + useEffect( + () => + navigation.setOptions({ + ...headerBarOptions('black', `You have ${invitesLeft} Invites`), + }), + [invitesLeft], + ); useEffect(() => { const handleFindFriends = () => { extractContacts().then(async (retrievedContacts) => { @@ -132,6 +153,8 @@ const InviteFriendsScreen: React.FC = ({}) => { @@ -153,6 +176,8 @@ const InviteFriendsScreen: React.FC = ({}) => { -- 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/screens') 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/screens') 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