import React, {useEffect, useState} from 'react' import { Link } from 'react-router-dom' import Icons from '../Helpers/Icons' import usersService from '../../services/UsersService' import InputCom from '../Helpers/Inputs/InputCom' import {Formik, Form} from 'formik' import * as Yup from 'yup' const validationSchema = Yup.object().shape({ firstname: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Firstname is required'), lastname: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Lastname is required'), country: Yup.string() .min(1, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Country is required'), bank: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Bank name is required'), accountNumber: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Account Number is required'), repeatAccountNumber: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Repeat Password is required'), accountType: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('Account Type is required'), city: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('City is required'), state: Yup.string() .min(3, 'Minimum 3 characters') .max(25, 'Maximum 25 characters') .required('State is required'), }) const initialValues = { firstname: '', lastname: '', country: '', bank: '', accountNumber: '', repeatAccountNumber: '', accountType: '', state: '', city: '' } function AddRecipient() { const apiURL = new usersService() let [allCountries, setAllCountries] = useState({ // STATE TO HOLD LIST OF COUNTRIES loading: true, data: [] }) let [bankName, setBankName] = useState({ // STATE TO HOLD LIST OF BANK NAME loading: true, data: [] }) let [accType, setAccType] = useState({ // STATE TO HOLD LIST ACCOUNT TYPE loading: true, data: [] }) //FUNCTION TO HANDLE SUBMIT const handleSubmit = (values, helpers) => { // setRequestState({message: '', loading: true, status: false}) console.log('working') //valid inputs before submitting. Just for texting remove later } // FUNCTION TO GET COUNTRIES const getCountry = ()=> { apiURL.getSignupCountryData().then((res)=>{ if(res.data.internal_return < 0){ setAllCountries(prev => ({loading: false, data: []})) return } setAllCountries(prev => ({loading: false, data:res.data.signup_country})) }).catch((error)=>{ setAllCountries(prev => ({loading: false, data: []})) }) } // END OF FUNCTION TO GET COUNTRIES // FUNCTION TO GET COUNTRY BANK const getCountryBank = ()=> { apiURL.getCountryBank().then((res)=>{ if(res.data.internal_return < 0){ setBankName(prev => ({loading: false, data: []})) return } setBankName(prev => ({loading: false, data:res.data.result_list})) }).catch((error)=>{ setBankName(prev => ({loading: false, data: []})) }) } // END OF FUNCTION TO GET COUNTRY BANK // FUNCTION TO GET ACCOUNT TYPES const getAccountTypes = ()=> { apiURL.getAccountTypes().then((res)=>{ if(res.data.internal_return < 0){ setAccType(prev => ({loading: false, data: []})) return } setAccType(prev => ({loading: false, data:res.data.result_list})) }).catch((error)=>{ setAccType(prev => ({loading: false, data: []})) }) } // END OF FUNCTION TO GET ACCOUNT TYPES useEffect(()=>{ getCountry() // TO LOAD LIST COUNTRY getCountryBank() // TO LOAD LIST COUNTRY BANK getAccountTypes() // TO LOAD LIST ACCOUNT TYPES },[]) return (

ADD BANK ACCOUNT

{(props)=>(
{/* inputs starts here */} {/* firstname */}
{(props.errors.firstname && props.touched.firstname) &&

{props.errors.firstname}

}
{/* lastname */}
{(props.errors.lastname && props.touched.lastname) &&

{props.errors.lastname}

}
{/* country */}
{(props.errors.country && props.touched.country) &&

{props.errors.country}

}
{/* bank name */}
{(props.errors.bank && props.touched.bank) &&

{props.errors.bank}

}
{/* ACCOUNT NUMBER */}
{(props.errors.accountNumber && props.touched.accountNumber) &&

{props.errors.accountNumber}

}
{/* REPEAT ACCT. NUMBER */}
{(props.errors.repeatAccountNumber && props.touched.repeatAccountNumber) &&

{props.errors.repeatAccountNumber}

}
{/* Account Type */}
{(props.errors.accountType && props.touched.accountType) &&

{props.errors.accountType}

}
{/* state */}
{(props.errors.state && props.touched.state) &&

{props.errors.state}

}
{/* city */}
{(props.errors.city && props.touched.city) &&

{props.errors.city}

}
{/* end of inputs starts here */}
)}
) } export default AddRecipient