diff options
| author | Ivan Chen <ivan@tagg.id> | 2021-05-20 22:40:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-20 22:40:39 -0400 |
| commit | 837783915ed6156a3d6d130d5c44cf810e501994 (patch) | |
| tree | 4c01a2eb1a25e2d3105cdc4a0d2d795b0356a3e8 /src/screens/profile/InviteFriendsScreen.tsx | |
| parent | 8641391ac28e5a1b2ca513755a44b71ef3ee64e9 (diff) | |
| parent | ccb37b8a49cb0a1b50ab3731a59c8c09b8aca62b (diff) | |
Merge pull request #435 from shravyaramesh/tma843-fix-invite-system
[TMA-843] Added invites to header, organized imports
Diffstat (limited to 'src/screens/profile/InviteFriendsScreen.tsx')
| -rw-r--r-- | src/screens/profile/InviteFriendsScreen.tsx | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/src/screens/profile/InviteFriendsScreen.tsx b/src/screens/profile/InviteFriendsScreen.tsx index bf91e8f3..4f6319f7 100644 --- a/src/screens/profile/InviteFriendsScreen.tsx +++ b/src/screens/profile/InviteFriendsScreen.tsx @@ -1,4 +1,4 @@ -import {RouteProp} from '@react-navigation/native'; +import {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} from '../../routes'; +import { + getRemainingInviteCount, + usersFromContactsService, +} from '../../services/UserFriendsService'; import {ProfilePreviewType} from '../../types'; import { extractContacts, @@ -43,16 +46,8 @@ export type SearchResultType = { pendingUsers: InviteContactType[]; }; -type InviteFriendsScreenRouteProp = RouteProp< - MainStackParams, - 'InviteFriendsScreen' ->; - -interface InviteFriendsScreenProps { - route: InviteFriendsScreenRouteProp; -} - -const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({}) => { +const InviteFriendsScreen: React.FC = () => { + const navigation = useNavigation(); const [usersFromContacts, setUsersFromContacts] = useState< ProfilePreviewType[] >([]); @@ -63,6 +58,24 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({}) => { 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 = () => { @@ -132,6 +145,8 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({}) => { <InviteFriendTile item={item} remind={true} + invitesLeft={invitesLeft} + setInvitesLeft={setInvitesLeft} results={results} setResults={setResults} /> @@ -153,6 +168,8 @@ const InviteFriendsScreen: React.FC<InviteFriendsScreenProps> = ({}) => { <InviteFriendTile item={item} remind={false} + invitesLeft={invitesLeft} + setInvitesLeft={setInvitesLeft} results={results} setResults={setResults} /> |
