import React, { useEffect, useCallback, useState } from 'react'; import { Link } from 'react-router-dom'; import { Card, CardBody, Row, Col } from 'reactstrap'; import FalconCardHeader from '../common/FalconCardHeader'; import { useTranslation } from 'react-i18next'; import JKAffiliatePayeeAddress from './JKAffiliatePayeeAddress'; import JKAffiliatePayeeVenmo from './JKAffiliatePayeeVenmo'; import JKAffiliatePayeeTax from './JKAffiliatePayeeTax'; import { useAuth } from '../../context/UserAuth'; import { getAffiliatePartnerData } from '../../helpers/rest'; import { useIsMounted } from '../../hooks/useIsMounted'; import { postAffiliatePartnerData } from '../../helpers/rest'; import { toast } from 'react-toastify'; const JKAffiliatePayee = () => { const { t } = useTranslation('affiliate'); const { currentUser } = useAuth(); const [affiliateUser, setAffiliateUser] = useState(null); const [notAffiliate, setNotAffiliate] = useState(false); const [loading, setLoading] = useState(false); const isMounted = useIsMounted(); const [submitting, setSubmitting] = useState(false); const fetchAffiliatePartnerData = useCallback(async userId => { if (!userId) { return; } try { setLoading(true); const response = await getAffiliatePartnerData(userId); const affiliate = await response.json(); setAffiliateUser(affiliate.account); } catch (error) { console.error('Error fetching affiliate partner data:', error); if (error && error.status === 400) { // If the affiliate partner data is not found, set the affiliate user to null setAffiliateUser(null); setNotAffiliate(true); } }finally { setLoading(false); } }, []); const onSubmit = data => { //post setSubmitting(true); const params = { ...affiliateUser, ...data}; setAffiliateUser(params); postAffiliatePartnerData(currentUser.id, params).then(response => { if(response.ok) { // Show success message console.log('Affiliate partner data updated successfully'); toast.success(t('payee.save_success')); } }).catch(error => { console.error('Error updating affiliate partner data:', error); toast.error(t('payee.save_error')); }).finally(() => { setSubmitting(false); }); }; useEffect(() => { // Fetch affiliate payee data if (currentUser) { fetchAffiliatePartnerData(currentUser.id); } }, [currentUser]); return ( {!isMounted || loading ?

Loading...

: notAffiliate ? (

{t('payee.not_affiliate')}

Learn how you can earn cash simply by telling your friends and followers about JamKazam.
) : (
)} ); }; export default JKAffiliatePayee;