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 (