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' import { userContext } from '../../context/User' import { useNavigate } from 'react-router-dom' const Enrollment = () => { const { t } = useTranslation() const [page, setPage] = useState(0) const { userData, setUserData } = userContext() const navigate = useNavigate() const { mutate } = useMutation((payload) => createUser(payload)) const handleSubmit = () => { if (page === 0) { if (userData.indianResident === '') { toast.error(t('PLEASE_SELECT_YOUR_RESIDENCY')) } else if (userData.name === '' || userData.name.length < 1) { toast.error(t('PLEASE_ENTER_YOUR_NAME')) } else if (!validString.test(userData.name)) { toast.error(t('PLEASE_ENTER_VALID_NAME')) } else if (userData.gender === '') { toast.error(t('PLEASE_SELECT_YOUR_GENDER')) } else { setPage(page + 1) } } else if (page === 1) { if (userData.mobile === '') { toast.error(t('PLEASE_ENTER_YOUR_MOBILE_NUMBER')) } else if (!validMobileNumber.test(userData.mobile)) { toast.error(t('PLEASE_ENTER_VALID_MOBILE_NUMBER')) } else if (userData.email === '') { toast.error(t('PLEASE_ENTER_YOUR_EMAIL')) } else if (!validEmail.test(userData.email)) { toast.error(t('PLEASE_ENTER_VALID_EMAIL')) } else { setPage(page + 1) } } else if (page === 2) { if (!userData.address.state.name) { toast.error(t('PLEASE_SELECT_YOUR_STATE')) } else if (!userData.address.district.name) { toast.error(t('PLEASE_SELECT_YOUR_DISTRICT')) } else if (userData.address.village === '') { toast.error(t('PLEASE_ENTER_YOUR_VILLAGE')) } else if (userData.address.houseNo === '') { toast.error(t('PLEASE_ENTER_YOUR_HOUSE_NUMBER')) } else if (userData.address.street === '') { toast.error(t('PLEASE_ENTER_YOUR_STREET')) } else if (userData.address.locality === '') { toast.error(t('PLEASE_ENTER_YOUR_LOCALITY')) } else if (userData.address.postOffice === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_POST_OFFICE')) } else if (userData.address.landmark === '') { toast.error(t('PLEASE_ENTER_NEAREST_LANDMARK')) } else if (userData.address.pincode === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_PINCODE')) } else if (!validPincode.test(userData.address.pincode)) { toast.error(t('PLEASE_ENTER_VALID_PINCODE')) } else { setPage(page + 1) } } else if (page === 3) { setPage(page + 1) } else if (page === 4) { if (userData.documents.POI === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_IDENTITY')) } else if (userData.documents.POA === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_ADDRESS')) } else if (userData.documents.DOB === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_DATE_OF_BIRTH')) } else { 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: userData.indianResident, name: userData.name, gender: userData.gender, dob: userData.dob, mobile: userData.mobile, email: userData.email, address: userData.address, photo: userData.photo, documents: { POI: userData.documents.POI, POA: userData.documents.POA, DOB: userData.documents.DOB } }, { onSuccess: () => { setUserData(null) navigate('/') } } ) } } console.log(userData) 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