import React, {useEffect, useState} from 'react'; import { Alert, StyleSheet, Text, TouchableOpacity, TouchableWithoutFeedback, View, } from 'react-native'; import {TAGG_LIGHT_BLUE} from '../../constants'; import { ERROR_NO_CONTACT_INVITE_LEFT, ERROR_SOMETHING_WENT_WRONG, SUCCESS_INVITE_CONTACT, SUCCESS_LAST_CONTACT_INVITE, } from '../../constants/strings'; import {InviteContactType} from '../../screens/profile/InviteFriendsScreen'; import {inviteFriendService} from '../../services'; import {normalize} from '../../utils'; interface InviteFriendTileProps { item: InviteContactType; } const InviteFriendTile: React.FC = ({item}) => { const [invited, setInvited] = useState(false); const [formatedPhoneNumber, setFormattedPhoneNumber] = useState(''); const handleInviteFriend = async () => { const invites_left = await inviteFriendService( item.phoneNumber, item.firstName, item.lastName, ); if (invites_left > 0) { setInvited(true); Alert.alert(SUCCESS_INVITE_CONTACT(invites_left)); } else if (invites_left === 0) { setInvited(true); Alert.alert(SUCCESS_LAST_CONTACT_INVITE); } else if (invites_left === -1) { Alert.alert(ERROR_NO_CONTACT_INVITE_LEFT); } else { Alert.alert(ERROR_SOMETHING_WENT_WRONG); } }; useEffect(() => { const formatPhoneNumer = () => { const unformatted_number: string = item.phoneNumber; const part_one: string = unformatted_number.substring(2, 5); const part_two: string = unformatted_number.substring(5, 8); const part_three: string = unformatted_number.substring( 8, unformatted_number.length, ); const temp = '(' + part_one + ')' + part_two + '-' + part_three; setFormattedPhoneNumber(temp); }; formatPhoneNumer(); }); return ( {item.firstName + ' ' + item.lastName} {formatedPhoneNumber} {invited ? 'Pending' : 'Invite'} ); }; const styles = StyleSheet.create({ container: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', height: normalize(42), marginBottom: '5%', }, bodyContainer: { flexDirection: 'column', height: normalize(42), justifyContent: 'space-around', }, label: { fontWeight: '500', fontSize: normalize(14), }, phoneNumber: { fontSize: normalize(12), fontWeight: '400', color: '#6C6C6C', letterSpacing: normalize(0.1), }, button: { alignSelf: 'center', justifyContent: 'center', alignItems: 'center', width: 82, height: 25, borderWidth: 2, borderRadius: 2, padding: 0, borderColor: TAGG_LIGHT_BLUE, }, pendingButton: { backgroundColor: TAGG_LIGHT_BLUE, }, inviteButton: { backgroundColor: 'transparent', }, buttonTitle: { padding: 0, fontSize: normalize(11), fontWeight: '700', lineHeight: normalize(13.13), letterSpacing: normalize(0.6), paddingHorizontal: '3.8%', }, pendingButtonTitle: { color: 'white', }, inviteButtonTitle: { color: TAGG_LIGHT_BLUE, }, }); export default InviteFriendTile;