147 lines
6.0 KiB
TypeScript
147 lines
6.0 KiB
TypeScript
import React from "react";
|
|
import {useNavigate} from 'react-router-dom'
|
|
import { Button, InputCompOne } from "..";
|
|
import { RouteHandler } from "../../router/routes";
|
|
|
|
import {Formik, Form} from 'formik'
|
|
import * as Yup from "yup";
|
|
|
|
const initialValues = {
|
|
disburse_account: "",
|
|
bank_name: "",
|
|
account_name: "",
|
|
account_number: "",
|
|
checked: false
|
|
};
|
|
|
|
// To get the validation schema
|
|
const validationSchema = Yup.object().shape({
|
|
disburse_account: Yup.string()
|
|
.required("Required"),
|
|
bank_name: Yup.string()
|
|
.required("Required"),
|
|
account_name: Yup.string()
|
|
.required("Required"),
|
|
account_number: Yup.string()
|
|
.required("Required"),
|
|
checked: Yup.bool() // use bool instead of boolean
|
|
.oneOf([true], "You must accept the terms and conditions")
|
|
});
|
|
|
|
const DebitAccount: React.FC = () => {
|
|
const navigate = useNavigate()
|
|
|
|
//FUNCTION TO HANDLE SUBMIT
|
|
const handleSubmit = (values:any) => {
|
|
console.log(values)
|
|
navigate(RouteHandler.letsGetStarted, {replace:true})
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<div className="w-full rounded py-3 mb-9 bg-[#5C2684] px-5">
|
|
<p className="text-base text-[#FBB700] tracking-[3%] font-extrabold w-fit">
|
|
CREDIT ACCOUNT ( Your account to receive your loan )
|
|
</p>
|
|
</div>
|
|
<Formik
|
|
initialValues={initialValues}
|
|
validationSchema={validationSchema}
|
|
onSubmit={handleSubmit}
|
|
>
|
|
{(props)=>(
|
|
<Form>
|
|
<InputCompOne
|
|
parentClass="max-w-[29.4375rem] w-full my-5 ml-5"
|
|
label="Disbursement Account Number "
|
|
name="disburse_account"
|
|
labelSpan="( Your FCMB Account )"
|
|
labelSpanClass="text-[12px] text-[#5C2684] ml-1"
|
|
parentInputClass="w-full"
|
|
labelClass="font-bold text-[18px] leading-[21.7808px] tracking-[2%] text-[#5C2684] mb-[2px]"
|
|
input
|
|
inputClass="w-full h-[36px] bg-[#EFEFEF] rounded-[6px]"
|
|
value={props.values.disburse_account}
|
|
onChange={props.handleChange}
|
|
error={(props.errors.disburse_account && props.touched.disburse_account) ? props.errors.disburse_account : ''}
|
|
/>
|
|
|
|
<div className="mt-9 flex flex-col gap-9">
|
|
<div className="w-full rounded py-3 bg-[#5C2684] px-5">
|
|
<p className="text-base text-[#FBB700] tracking-[3%] font-extrabold w-fit">
|
|
DEBIT ACCOUNT ( Your salary account for monthly repayment )
|
|
</p>
|
|
</div>
|
|
<InputCompOne
|
|
parentClass="max-w-[471px] w-full ml-5"
|
|
label="Bank Name"
|
|
name="bank_name"
|
|
parentInputClass="w-full"
|
|
labelClass="font-bold text-[18px] leading-[21.7808px] tracking-[2%] text-[#5C2684] mb-[2px]"
|
|
input
|
|
inputClass="w-full h-[36px] bg-[#EFEFEF] rounded-[6px]"
|
|
value={props.values.bank_name}
|
|
onChange={props.handleChange}
|
|
error={(props.errors.bank_name && props.touched.bank_name) ? props.errors.bank_name : ''}
|
|
/>
|
|
|
|
<div className="flex items-center gap-[59px]">
|
|
<InputCompOne
|
|
parentClass="max-w-[471px] w-full ml-5"
|
|
label="Account Number"
|
|
name="account_number"
|
|
parentInputClass="w-full"
|
|
labelClass="font-bold text-[18px] leading-[21.7808px] tracking-[2%] text-[#5C2684] mb-[2px]"
|
|
input
|
|
inputClass="w-full h-[36px] bg-[#EFEFEF] rounded-[6px]"
|
|
value={props.values.account_number}
|
|
onChange={props.handleChange}
|
|
error={(props.errors.account_number && props.touched.account_number) ? props.errors.account_number : ''}
|
|
/>
|
|
<InputCompOne
|
|
parentClass="max-w-[471px] w-full ml-5"
|
|
label="Account Name"
|
|
name="account_name"
|
|
parentInputClass="w-full"
|
|
labelClass="font-bold text-[18px] leading-[21.7808px] tracking-[2%] text-[#5C2684] mb-[2px]"
|
|
input
|
|
inputClass="w-full h-[36px] bg-[#EFEFEF] rounded-[6px]"
|
|
value={props.values.account_name}
|
|
onChange={props.handleChange}
|
|
error={(props.errors.account_name && props.touched.account_name) ? props.errors.account_name : ''}
|
|
/>
|
|
</div>
|
|
|
|
<div className="max-w-[578px] flex items-center">
|
|
<input
|
|
type="checkbox"
|
|
// checked={true}
|
|
|
|
name='checked'
|
|
onChange={props.handleChange}
|
|
className="form-checkbox h-[25px] w-[25px] rounded-sm text-[#5c2684] "
|
|
style={{ backgroundColor: "#5C2684" }}
|
|
/>
|
|
<label className="ml-2 text-gray-700">
|
|
I have read, understood and accept the{" "}
|
|
<span className="text-[#4545CB]">applicant's attestation</span> and
|
|
all the <span className="text-[#4545CB]">terms and conditions</span>{" "}
|
|
for FCMB premium salary loan.
|
|
</label>
|
|
{props.errors.checked && props.touched.checked && <span className='text-[10px] text-red-500'>{props.errors.checked}</span>}
|
|
</div>
|
|
<Button
|
|
className="my-8 max-w-[33.875rem] btn-R bg-[#5A2C82] w-full h-11"
|
|
text="Apply"
|
|
type="submit"
|
|
/>
|
|
</div>
|
|
</Form>
|
|
)}
|
|
</Formik>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default DebitAccount;
|