diff --git a/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx b/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx index 88dc39e..6cc979e 100644 --- a/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx +++ b/src/components/FamilyAcc/Tabs/wallet/FamilyAddFundPopout.jsx @@ -22,6 +22,8 @@ const validationSchema = Yup.object().shape({ amount: Yup.number('Please enter a number') .min(1, "Price must be greater than 0") .required("Amount is required"), + comment: Yup.string() + .required("Comment is required"), }); function FamilyAddFundPopout({action, situation, wallet, familyData}) { @@ -40,15 +42,63 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) { to: `${familyData.firstname} ${familyData.lastname}`, comment: '' }; - + // FUNCTION TO PERFORM FAMILY TRANSFER const handleAddFund = (values) => { setRequestStatus({loading:true, status:false, message:''}) - setTimeout(()=>{ - setRequestStatus({loading:false, status:false, message:''}) - action() // TO CLOSE THE MODAL - }, 3000) - // let reqData = {...values} - console.log(values) + + let senderBal = startTransfer?.data?.origing_current_balance || '' // SENDER'S ACCOUNT BALANCE + let senderLimit = startTransfer?.data?.origing_transfer_limit || '' // SENDER'S TRANSFER LIMIT + + let reqData = { // API REQUEST DATA + family_uid : familyData.uid, + wallet_uid : wallet.wallet_uid, + origing_wallet_uid : startTransfer?.data?.origing_wallet_uid, + currency : startTransfer?.data?.currency, + amount : values.amount, + description : values.comment, + family_transfer_mode : 100, + action : 22014 + } + + if(!senderBal || !senderLimit){ // RETURNS UNAUTHORIZED, IF SENDER BAL OR LIMIT IS NOT AVAILABLE + setRequestStatus({loading:false, status:false, message:'Unauthorized, try again later'}) + return setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + }, 5000) + } + + if(values.amount > senderBal*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS BALANCE + setRequestStatus({loading:false, status:false, message:'You cannot send more than your balance'}) + return setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + }, 5000) + } + + if(values.amount > senderLimit*0.01){ // CHECKS TO SEE IF SENDER IS SENDING MORE THAN HIS LIMIT + setRequestStatus({loading:false, status:false, message:`You cannot exceed ${senderLimit*0.01}`}) + return setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + }, 5000) + } + + apiUrl.familyTransfer(reqData).then(({data}) => { + if(data.internal_return < 0){ + setRequestStatus({loading:false, status:false, message:'Transfer Failed'}) + return setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + }, 5000) + } + setRequestStatus({loading:false, status:true, message:'Transfer Successful'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + action() // TO CLOSE THE MODAL + }, 5000) + }).catch(error => { + setRequestStatus({loading:false, status:false, message:'Network Error, try again'}) + setTimeout(()=>{ + setRequestStatus({loading:false, status:false, message:''}) + }, 5000) + }) } // LOAD FAMILY START TRANSFER @@ -60,7 +110,6 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) { } apiUrl.familyTransferStart(reqData).then(response => { setStartTransfer({loading:false, data:response?.data }) - // console.log('reqData', response.data) }).catch(err => { setStartTransfer({loading:false, data: {}}) }) @@ -68,7 +117,7 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) { return ( -
+

Add Fund @@ -116,12 +165,12 @@ function FamilyAddFundPopout({action, situation, wallet, familyData}) {