import React, { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { toast } from "react-toastify"; import usersService from '../../services/UsersService'; function ReferralDisplay() { const apiCall = new usersService() // GET API CALL const navigate = useNavigate() let [refHistoryReload, setRefHistoryReload] = useState(false) // Determines when referral history reloads // STATE TO HOLD REFERRAL HISTORY let [referralList, setReferralList] = useState({ loading: true, error: false, data: [] }) let [error, setError] = useState({message: '', loading: false}) // for displaying error message on the page //function to call referral history API const allReferrals = () => { setReferralList({ loading: true, error: false, data: [] }) apiCall.getReferralHx().then((res)=>{ setReferralList((prev)=>{ return {...prev, loading: false, data:[...res.data.result_list]} }) }).catch((error)=>{ setReferralList(prev => ({...prev, loading: false, error: true})) }) } //FUNCTION TO SEND REFERRAL MESSAGE const sendReferralMsg = (postData) => { apiCall.sendReferralMsg(postData).then((res)=>{ if(res.data.internal_return < 0){ setError({message:'Email already referred', loading: false}) return }else{ setInputs({ firstname: '', lastname: '', email: '',}) toast.success("Message Sent"); setError({message:'', loading: false}) setRefHistoryReload(prev => !prev) } }).catch((error)=>{ setError({message:'Opps! an error occured, try again later', loading: false}) }) } //STATE FOR CONTROLLED INPUTS let [inputs, setInputs] = useState({ firstname: '', lastname: '', email: '' }) // FUNCTION TO HANDLE INPUT CHANGE const handleChange = ({target:{name, value}}) => { setInputs(prev => ({...prev, [name]:value})) } //FUNCTION TO HANDLE SUBMIT const handleSubmit = (e) => { e.preventDefault(); setError({message: '', loading: true}) let {firstname, lastname, email} = inputs if(!firstname || !lastname || !email){ setError({message: 'Please fill all fields', loading: false}) return } var postData = { uid: localStorage.getItem("uid"), member_id: localStorage.getItem("member_id"), sessionid: localStorage.getItem("session_token"), action: 11032, ref_firstname: firstname, ref_lastname: lastname, ref_email: email }; sendReferralMsg(postData) // FUNCTION TO SEND REFERRAL MESSAGE } useEffect(()=>{ allReferrals() }, [refHistoryReload]) return (

Send Referral


{error.message != '' &&

{error.message}

}
{error.loading ?
: }

Referral List

{referralList.loading ? (
) : ( {referralList.data.length ? referralList.data.map((item, index) => ( )) : ( referralList.error ? : ( ) ) }
Added/Name Email Status
{item.added_date} / {item.firstname} {item.lastname} {item.email} {item.status}
Opps! couldn't get referral history. Try reloading the page
No Item Found on referral List
) }
) } export default ReferralDisplay