From bd956cb4706011e0cd34486954ca77f1461b73a2 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 24 Apr 2023 17:06:45 +0100 Subject: [PATCH] added recipient and fee charge api --- src/components/MyWallet/TransferFund.jsx | 131 +++++++++++++----- src/components/MyWallet/Wallet.jsx | 4 +- .../WalletComponent/PurchasesTable.jsx | 6 +- src/services/UsersService.js | 25 ++++ 4 files changed, 125 insertions(+), 41 deletions(-) diff --git a/src/components/MyWallet/TransferFund.jsx b/src/components/MyWallet/TransferFund.jsx index 27b913b..06c90dc 100644 --- a/src/components/MyWallet/TransferFund.jsx +++ b/src/components/MyWallet/TransferFund.jsx @@ -1,19 +1,58 @@ -import React, {useState} from 'react' +import React, {useEffect, useState} from 'react' import { Link } from 'react-router-dom' import RecentActivityTable from './WalletComponent/RecentActivityTable' import LoadingSpinner from '../Spinners/LoadingSpinner' -function TransferFund({payment}) { - +import usersService from '../../services/UsersService' + +function TransferFund({payment, wallet}) { + const apiCall = new usersService() + + let [newFee, setNewFee] = useState(false) + + let [recepients, setRecipients] = useState({ // FOR COUPON HISTORY + loading: true, + data: [], + error: false + }) + + let [sendMoneyFee, setSendMoneyFee] = useState({fee: 0, total: 0}) // HOLD THE VALUE FOR SEND MONEY FEE + //STATE FOR CONTROLLED INPUTS let [inputs, setInputs] = useState({ amount: '0', - fee: '0', recipient: '', - total: '0', comment: '' }) + //FUNCTION TO GET RECIPIENT LIST + const getRecipients = ()=>{ + apiCall.getRecipient().then((res)=>{ + if(res.data.internal_return < 0){ // success but no data + setRecipients(prev => ({...prev, loading: false})) + return + } + setRecipients(prev => ({...prev, loading: false, data: res.data.result_list})) + }).catch((error)=>{ + setRecipients(prev => ({...prev, loading: false, error: true})) + }) + } + + //FUNCTION TO GET SEND MONEY FEE + const getSendMoneyFee = ()=>{ + let {amount} = inputs + if(Number(amount) <= 0 || amount=='' || isNaN(amount)){ + setSendMoneyFee({fee: 0, total: 0}) + return + } + apiCall.getSendMoneyFee(Number(amount)).then((res)=>{ + setSendMoneyFee({fee: res.data.processing_fee, total: res.data.total_amount}) + }).catch((error)=>{ + setSendMoneyFee({fee: 0, total: 0}) + }) + } + + // FUNCTION TO HANDLE INPUT CHANGE const handleChange = ({target:{name, value}}) => { setInputs(prev => ({...prev, [name]:value})) @@ -23,22 +62,41 @@ function TransferFund({payment}) { const handleSubmit = (e) => { e.preventDefault(); - //valid inputs before submitting. Just for texting remove later + //valid inputs before submitting. Just for texting remove later. check amoutn to be number setInputs({ amount: '0', - fee: '0', recipient: '', - total: '0', comment: '' }) } + + useEffect(()=>{ + getRecipients() + getSendMoneyFee() + },[newFee]) return (
-
-

Withdraw from Naira Wallet : ₦0.00

+ + {wallet.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!

+ }
@@ -49,31 +107,33 @@ function TransferFund({payment}) { placeholder='Amount' required onChange={handleChange} + onMouseEnter={()=>{setNewFee(false)}} + onMouseLeave={()=>{setNewFee(true)}} />
-
- - Total * +
@@ -87,8 +147,23 @@ function TransferFund({payment}) { Add New
- + {recepients.loading ? + + : + recepients.data.length ? + <> + + {recepients.data.map((item, index)=>( + + ))} + + : + recepients.error ? + + : + + }
@@ -108,7 +183,7 @@ function TransferFund({payment}) {
- +
@@ -118,22 +193,6 @@ function TransferFund({payment}) {

Recent Activity

Activity Report

- {/* - - - - - - - - - - - - - - -
DateRecipientAmount/FeeConf/Status
ItemItemItem
*/} {payment.loading ? : diff --git a/src/components/MyWallet/Wallet.jsx b/src/components/MyWallet/Wallet.jsx index 884efb9..0af9a45 100644 --- a/src/components/MyWallet/Wallet.jsx +++ b/src/components/MyWallet/Wallet.jsx @@ -55,7 +55,6 @@ const WalletRoutes = () => { setWalletList(prev => ({...prev, loading: false})) return } - console.log('wallet', res) setWalletList(prev => ({...prev, loading: false, data: res.data.result_list})) }).catch((error)=>{ setWalletList(prev => ({...prev, loading: false, error: true})) @@ -82,6 +81,7 @@ const WalletRoutes = () => { setPurchaseHistory(prev => ({...prev, loading: false})) return } + // console.log('purchase',res.data) setPurchaseHistory(prev => ({...prev, loading: false, data: res.data.result_list})) }).catch((error)=>{ setPurchaseHistory(prev => ({...prev, loading: false, error: true})) @@ -111,7 +111,7 @@ const WalletRoutes = () => { }> } /> - } /> + } /> } /> } /> } /> diff --git a/src/components/MyWallet/WalletComponent/PurchasesTable.jsx b/src/components/MyWallet/WalletComponent/PurchasesTable.jsx index 8c90fdc..20202ae 100644 --- a/src/components/MyWallet/WalletComponent/PurchasesTable.jsx +++ b/src/components/MyWallet/WalletComponent/PurchasesTable.jsx @@ -16,10 +16,10 @@ function PurchasesTable({purchase}) { {purchase.data.map((item, index) => ( - {item.trx_date} - + {item.added_date} + {item.confirmation} {item.amount} - {item.status} + {item.fee} ))} diff --git a/src/services/UsersService.js b/src/services/UsersService.js index bd32ae2..cab41ac 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -140,6 +140,31 @@ class usersService { return this.postAuxEnd("/couponpending", postData); } + // API FUNCTION TO GET COUPON HISTORY + getRecipient(){ + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + page:1, + limit :20, + action: 11175 + }; + return this.postAuxEnd("/recipients", postData); + } + + // API FUNCTION TO GET SEND MONEY FEE + getSendMoneyFee(amount){ + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + amount, + action: 33025 + }; + return this.postAuxEnd("/sendmoneyfee", postData); + } + // API FUNCTION TO GET COUPON HISTORY getCouponHx(){ var postData = {