From e26330af9aca7c98e3c2d647908c65d675a537e1 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Thu, 27 Apr 2023 13:49:19 +0100 Subject: [PATCH] handling adding recipient done --- .../Helpers/Inputs/InputCom/index.jsx | 4 + src/components/MyWallet/AddRecipient.jsx | 55 +++++++++-- src/components/MyWallet/TransferFund.jsx | 98 ++++++++++--------- src/services/UsersService.js | 11 +++ 4 files changed, 110 insertions(+), 58 deletions(-) diff --git a/src/components/Helpers/Inputs/InputCom/index.jsx b/src/components/Helpers/Inputs/InputCom/index.jsx index 9dd8efc..1e1fc52 100644 --- a/src/components/Helpers/Inputs/InputCom/index.jsx +++ b/src/components/Helpers/Inputs/InputCom/index.jsx @@ -15,6 +15,8 @@ export default function InputCom({ onClick, disable, blurHandler, + onMouseEnter, + onMouseLeave }) { return (
@@ -40,6 +42,8 @@ export default function InputCom({ name={name} readOnly={disable} onBlur={blurHandler} + onMouseEnter={onMouseEnter} + onMouseLeave={onMouseLeave} /> {iconName && (
diff --git a/src/components/MyWallet/AddRecipient.jsx b/src/components/MyWallet/AddRecipient.jsx index 9d3752d..fb47d8d 100644 --- a/src/components/MyWallet/AddRecipient.jsx +++ b/src/components/MyWallet/AddRecipient.jsx @@ -1,9 +1,12 @@ import React, {useEffect, useState} from 'react' -import { Link } from 'react-router-dom' +import { Link, useNavigate } from 'react-router-dom' import Icons from '../Helpers/Icons' import usersService from '../../services/UsersService' import InputCom from '../Helpers/Inputs/InputCom' +import LoadingSpinner from '../Spinners/LoadingSpinner' +import {toast} from 'react-toastify' + import {Formik, Form} from 'formik' import * as Yup from 'yup' @@ -34,7 +37,7 @@ const validationSchema = Yup.object().shape({ .required('Repeat Account Number is required') .oneOf([Yup.ref('accountNumber'), null], 'Must match Account Number'), accountType: Yup.string() - .min(3, 'Minimum 3 characters') + .min(1, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Account Type is required'), city: Yup.string() @@ -63,6 +66,10 @@ function AddRecipient() { const apiURL = new usersService() + const navigate = useNavigate() + + let [requestStatus, setRequestStatus] = useState({message: '', loading: false, status: false}) + let [allCountries, setAllCountries] = useState({ // STATE TO HOLD LIST OF COUNTRIES loading: true, data: [] @@ -78,14 +85,36 @@ function AddRecipient() { data: [] }) - //FUNCTION TO HANDLE SUBMIT + //FUNCTION TO HANDLE ADD RECIPIENT SUBMIT const handleSubmit = (values, helpers) => { - // setRequestState({message: '', loading: true, status: false}) - console.log('working') + setRequestStatus({message: '', loading: true, status: false}) - //valid inputs before submitting. Just for texting remove later + let reqData = { //REQUEST DATA FOR API CALL + firstname: values.firstname, + lastname: values.lastname, + bank_code: values.bank, + account_no: values.accountNumber, + account_type: values.accountType, + country: values.country, + state: values.state, + city: values.city + } + + //CALL TO ADD RECIPIENT API + apiURL.addRecipient(reqData).then((res)=>{ + if(res.data.internal_return < 0){ + setRequestStatus({message: 'could not add recipient, try again!', loading: false, status: true}) + return + } + // setRequestStatus({message: 'Recipient Added Successfully!', loading: false, status: true}) + toast.success("Recipient Added Successfully!"); + setTimeout(()=>{navigate('../transfer-fund',{replace:true})},1000) + }).catch((error)=>{ + setRequestStatus({message: 'Opps! an error occured! Try again later', loading: false, status: false}) + }) } + // FUNCTION TO GET COUNTRIES const getCountry = ()=> { apiURL.getSignupCountryData().then((res)=>{ @@ -205,7 +234,7 @@ function AddRecipient() {
+ +
+ {setNewFee(false)}} onMouseLeave={()=>{setNewFee(true)}} - /> + />
-
- - + +
+
-
-
- - +
+
+
-
-
-
-
- - -
+
+ {/* */} + +