From aa9482bb953ee92ce0cac7906042031af4e2e87d Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Fri, 28 Apr 2023 15:23:43 +0100 Subject: [PATCH] transfer fund implemented --- src/components/MyWallet/Balance.jsx | 4 +- src/components/MyWallet/ConfirmTransfer.jsx | 213 +++++++++++--------- src/components/MyWallet/TransferFund.jsx | 2 +- src/components/MyWallet/WalletHeader.jsx | 2 +- src/services/UsersService.js | 13 ++ 5 files changed, 139 insertions(+), 95 deletions(-) diff --git a/src/components/MyWallet/Balance.jsx b/src/components/MyWallet/Balance.jsx index 3125134..a8d3682 100644 --- a/src/components/MyWallet/Balance.jsx +++ b/src/components/MyWallet/Balance.jsx @@ -31,11 +31,11 @@ function Balance({wallet, payment, coupon, purchase}) {

balance

- {item.symbol}{(item.amount*1).toFixed(2)} + {item.symbol}{(item.amount*0.01).toFixed(2)}

Escrow

- {item.symbol}{(item.escrow*1).toFixed(2)} + {item.symbol}{(item.escrow*0.01).toFixed(2)}
diff --git a/src/components/MyWallet/ConfirmTransfer.jsx b/src/components/MyWallet/ConfirmTransfer.jsx index c77c4f0..1ce2289 100644 --- a/src/components/MyWallet/ConfirmTransfer.jsx +++ b/src/components/MyWallet/ConfirmTransfer.jsx @@ -1,10 +1,15 @@ -import React, {useState} from 'react' +import React, {useState, useEffect} from 'react' import {useLocation, useNavigate} from 'react-router-dom' import RecentActivityTable from './WalletComponent/RecentActivityTable' import LoadingSpinner from '../Spinners/LoadingSpinner' import InputCom from '../Helpers/Inputs/InputCom' +import {toast} from 'react-toastify' + +import usersService from '../../services/UsersService' function ConfirmTransfer({payment, wallet}) { + const apiURL = new usersService() + const navigate = useNavigate() let {state} = useLocation() @@ -14,107 +19,133 @@ function ConfirmTransfer({payment, wallet}) { } let [requestStatus, setRequestStatus] = useState({message: '', loading: false, status: false}) + let [pageLoading, setPageLoading] = useState(true) //FUNCTION TO HANDLE SUBMIT const handleSubmit = () => { - // let [requestStatus, setRequestStatus] = useState({message: '', loading: true, status: false}) - - //valid inputs before submitting. Just for texting remove later - + setRequestStatus({message: '', loading: true, status: false}) + let reqData = { + amount: Number(state.amount), + Fee: Number(state.fee), + recipientid: Number(state.recipientID) + } + apiURL.sendMoney(reqData).then((res)=>{ + if(res.data.internal_return < 0){ + setRequestStatus({message: 'Could not perform transaction', loading: false, status: false}) + return + } + setRequestStatus({message: 'transfer successful', loading: false, status: true}) + toast.success('Transfer sucessful') + setTimeout(()=>{ + navigate('/', {replace: true}) + }, 1000) + }).catch(error=>{ + setRequestStatus({message: 'Opps! something went wrong! Try Again', loading: false, status: false}) + }) } + + useEffect(()=>{ + setPageLoading(false) + },[]) return (
-
-
-
- {wallet.loading ? + {pageLoading ? + + : + ( +
+
+
+ {wallet.loading ? + + : + wallet.data.length ? +

+ {wallet.data.map(item => { + if(item.description == 'Naira'){ + return `Withdraw from Naira Wallet : ${item.symbol}${(item.amount*0.01).toFixed(2)}` + } + })} +

+ : + wallet.error ? +

Opps! An Error Occured

+ : +

No Wallet Information Found!

+ } +
+
+
+

Confirm Withdraw to Account

+ {/* AMOUNT */} +
+ +
+ + {/* RECIPIENT ACC: */} +
+ +
+ + {/* PROCESSING FEE: */} +
+ +
+ + {/* TOTAL */} +
+ +
+ + {/* COMMENT/NOTE */} +
+ +
+
+ +
+ {requestStatus.message &&

{requestStatus.message}

} +
+ {requestStatus.loading ? : - wallet.data.length ? -

- {wallet.data.map(item => { - if(item.description == 'Naira'){ - return `Withdraw from Naira Wallet : ${item.symbol}${(item.amount*1).toFixed(2)}` - } - })} -

- : - wallet.error ? -

Opps! An Error Occured

- : -

No Wallet Information Found!

- } -
-
-
-

Confirm Withdraw to Account

- {/* AMOUNT */} -
- + + }
- - {/* RECIPIENT ACC: */} -
- -
- - {/* PROCESSING FEE: */} -
- -
- - {/* TOTAL */} -
- -
- - {/* COMMENT/NOTE */} -
- -
-
- - -
-
- {requestStatus.loading ? - - : - - }
-
+ ) + }
diff --git a/src/components/MyWallet/TransferFund.jsx b/src/components/MyWallet/TransferFund.jsx index 740981d..bfc0b49 100644 --- a/src/components/MyWallet/TransferFund.jsx +++ b/src/components/MyWallet/TransferFund.jsx @@ -103,7 +103,7 @@ function TransferFund({payment, wallet}) {

{wallet.data.map(item => { if(item.description == 'Naira'){ - return `Withdraw from Naira Wallet : ${item.symbol}${(item.amount*1).toFixed(2)}` + return `Withdraw from Naira Wallet : ${item.symbol}${(item.amount*0.01).toFixed(2)}` } })}

diff --git a/src/components/MyWallet/WalletHeader.jsx b/src/components/MyWallet/WalletHeader.jsx index d769841..5cfa5a3 100644 --- a/src/components/MyWallet/WalletHeader.jsx +++ b/src/components/MyWallet/WalletHeader.jsx @@ -58,7 +58,7 @@ export default function WalletHeader(props) {

- {(value.amount*1).toFixed(2)} {value.code} + {(value.amount*0.01).toFixed(2)} {value.code}

{/*(773.69 USD)*/} diff --git a/src/services/UsersService.js b/src/services/UsersService.js index 5885e64..ebf00df 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -230,6 +230,19 @@ class usersService { }; return this.postAuxEnd("/paymenthx", postData); } + + // API FUNCTION TO GET PAYMENT HISTORY + sendMoney(reqData){ + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + senderid: localStorage.getItem("member_id"), + action: 33020, + ...reqData + }; + return this.postAuxEnd("/sendmoney", postData); + } //END POINT CALL FOR REFERRAL HISTORY getReferralHx(){