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