import React, { useState } from 'react' import Address from './Address/Address' import Agreement from './Agreement/Agreement' import DocumentScanner from './DocumentScanner/DocumentScanner' import FinalSlip from './FinalSlip/FinalSlip' import Fingerprint from './Fingerprint/Fingerprint' import FormTwo from './FormTwo/FormTwo' import IrisScan from './IrisScan/IrisScan' import { useMutation } from 'react-query' import PhotoCapture from './PhotoCapture/PhotoCapture' import SubmitButton from '../../components/SubmitButton/SubmitButton' import FormOne from './FormOne/FormOne' import Home from '../Home/Home' import { validEmail, validMobileNumber, validPincode, validString } from '../../constants/RegEx' import { createUser } from '../../services/apiservice' import { useTranslation } from 'react-i18next' import { ToastContainer, toast } from 'react-toastify' import 'react-toastify/dist/ReactToastify.css' const Enrollment = () => { const { t } = useTranslation() const [page, setPage] = useState(0) const [formData, setFormData] = useState({ indianResident: '', name: '', gender: '', dob: new Date().toISOString().slice(0, 10), mobile: '', email: '', country: '', state: '', district: '', village: '', houseNo: '', street: '', locality: '', postOffice: '', landmark: '', pincode: '', address: '', photo: '', documents: { POI: '', POA: '', DOB: '' } }) const { mutate } = useMutation((payload) => createUser(payload)) const handleSubmit = () => { if (page === 0) { if (formData.indianResident === '') { toast.error(t('PLEASE_SELECT_YOUR_RESIDENCY')) } else if (formData.name === '' || formData.name.length < 1) { toast.error(t('PLEASE_ENTER_YOUR_NAME')) } else if (!validString.test(formData.name)) { toast.error(t('PLEASE_ENTER_VALID_NAME')) } else if (formData.gender === '') { toast.error(t('PLEASE_SELECT_YOUR_GENDER')) } else { setPage(page + 1) } } else if (page === 1) { if (formData.mobile === '') { toast.error(t('PLEASE_ENTER_YOUR_MOBILE_NUMBER')) } else if (!validMobileNumber.test(formData.mobile)) { toast.error(t('PLEASE_ENTER_VALID_MOBILE_NUMBER')) } else if (formData.email === '') { toast.error(t('PLEASE_ENTER_YOUR_EMAIL')) } else if (!validEmail.test(formData.email)) { toast.error(t('PLEASE_ENTER_VALID_EMAIL')) } else { setPage(page + 1) } } else if (page === 2) { if (formData.country === '') { toast.error(t('PLEASE_SELECT_YOUR_COUNTRY')) } else if (formData.state === '') { toast.error(t('PLEASE_SELECT_YOUR_STATE')) } else if (formData.district === '') { toast.error(t('PLEASE_SELECT_YOUR_DISTRICT')) } else if (formData.village === '') { toast.error(t('PLEASE_ENTER_YOUR_VILLAGE')) } else if (formData.houseNo === '') { toast.error(t('PLEASE_ENTER_YOUR_HOUSE_NUMBER')) } else if (formData.street === '') { toast.error(t('PLEASE_ENTER_YOUR_STREET')) } else if (formData.locality === '') { toast.error(t('PLEASE_ENTER_YOUR_LOCALITY')) } else if (formData.postOffice === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_POST_OFFICE')) } else if (formData.landmark === '') { toast.error(t('PLEASE_ENTER_NEAREST_LANDMARK')) } else if (formData.pincode === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_PINCODE')) } else if (!validPincode.test(formData.pincode)) { toast.error(t('PLEASE_ENTER_VALID_PINCODE')) } else { setFormData({ ...formData, address: `${formData.houseNo} ${formData.street}, ${formData.locality}, ${formData.landmark}, ${formData.village}, ${formData.district.label}, ${formData.country.label} ${formData.pincode}` }) setPage(page + 1) } } else if (page === 3) { setPage(page + 1) } else if (page === 4) { setPage(page + 1) } else if (page === 5) { setPage(page + 1) } else if (page === 6) { setPage(page + 1) } else if (page === 7) { setPage(page + 1) } else if (page === 8) { mutate({ indianResident: formData.indianResident, name: formData.name, gender: formData.gender, dob: formData.dob, mobile: formData.mobile, email: formData.email, address: formData.address, photo: formData.photo, documents: { POI: formData.documents.POI, POA: formData.documents.POA, DOB: formData.documents.DOB } }) setPage(page + 1) } } const conditionalComponent = () => { switch (page) { case 0: return case 1: return case 2: return
case 3: return case 4: return case 5: return case 6: return case 7: return case 8: return default: return } } const conditionalButton = () => { switch (page) { case 0: return Next case 1: return Next case 2: return Next case 3: return Next case 4: return Next case 5: return Next case 6: return Next case 7: return Submit case 8: return Exit default: return Next } } return ( <> {conditionalComponent()} {conditionalButton()} ) } export default Enrollment