diff options
Diffstat (limited to 'client/src/pages/Enrollment/Enrollment.jsx')
-rw-r--r-- | client/src/pages/Enrollment/Enrollment.jsx | 129 |
1 files changed, 58 insertions, 71 deletions
diff --git a/client/src/pages/Enrollment/Enrollment.jsx b/client/src/pages/Enrollment/Enrollment.jsx index c4f5b85..59211f9 100644 --- a/client/src/pages/Enrollment/Enrollment.jsx +++ b/client/src/pages/Enrollment/Enrollment.jsx @@ -21,84 +21,62 @@ 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 [formData, setFormData] = useState({ - indianResident: '', - name: '', - gender: '', - dob: new Date().toISOString().slice(0, 10), - mobile: '', - email: '', - address: { - houseNo: '', - street: '', - locality: '', - landmark: '', - village: '', - district: {}, - state: {}, - postOffice: '', - pincode: '' - }, - photo: '', - documents: { - POI: '', - POA: '', - DOB: '' - } - }) + const { userData, setUserData } = userContext() + const navigate = useNavigate() const { mutate } = useMutation((payload) => createUser(payload)) const handleSubmit = () => { if (page === 0) { - if (formData.indianResident === '') { + if (userData.indianResident === '') { toast.error(t('PLEASE_SELECT_YOUR_RESIDENCY')) - } else if (formData.name === '' || formData.name.length < 1) { + } else if (userData.name === '' || userData.name.length < 1) { toast.error(t('PLEASE_ENTER_YOUR_NAME')) - } else if (!validString.test(formData.name)) { + } else if (!validString.test(userData.name)) { toast.error(t('PLEASE_ENTER_VALID_NAME')) - } else if (formData.gender === '') { + } else if (userData.gender === '') { toast.error(t('PLEASE_SELECT_YOUR_GENDER')) } else { setPage(page + 1) } } else if (page === 1) { - if (formData.mobile === '') { + if (userData.mobile === '') { toast.error(t('PLEASE_ENTER_YOUR_MOBILE_NUMBER')) - } else if (!validMobileNumber.test(formData.mobile)) { + } else if (!validMobileNumber.test(userData.mobile)) { toast.error(t('PLEASE_ENTER_VALID_MOBILE_NUMBER')) - } else if (formData.email === '') { + } else if (userData.email === '') { toast.error(t('PLEASE_ENTER_YOUR_EMAIL')) - } else if (!validEmail.test(formData.email)) { + } else if (!validEmail.test(userData.email)) { toast.error(t('PLEASE_ENTER_VALID_EMAIL')) } else { setPage(page + 1) } } else if (page === 2) { - if (formData.address.state.name === '') { + if (!userData.address.state.name) { toast.error(t('PLEASE_SELECT_YOUR_STATE')) - } else if (formData.address.district.name === '') { + } else if (!userData.address.district.name) { toast.error(t('PLEASE_SELECT_YOUR_DISTRICT')) - } else if (formData.address.village === '') { + } else if (userData.address.village === '') { toast.error(t('PLEASE_ENTER_YOUR_VILLAGE')) - } else if (formData.address.houseNo === '') { + } else if (userData.address.houseNo === '') { toast.error(t('PLEASE_ENTER_YOUR_HOUSE_NUMBER')) - } else if (formData.address.street === '') { + } else if (userData.address.street === '') { toast.error(t('PLEASE_ENTER_YOUR_STREET')) - } else if (formData.address.locality === '') { + } else if (userData.address.locality === '') { toast.error(t('PLEASE_ENTER_YOUR_LOCALITY')) - } else if (formData.address.postOffice === '') { + } else if (userData.address.postOffice === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_POST_OFFICE')) - } else if (formData.address.landmark === '') { + } else if (userData.address.landmark === '') { toast.error(t('PLEASE_ENTER_NEAREST_LANDMARK')) - } else if (formData.address.pincode === '') { + } else if (userData.address.pincode === '') { toast.error(t('PLEASE_ENTER_YOUR_AREA_PINCODE')) - } else if (!validPincode.test(formData.address.pincode)) { + } else if (!validPincode.test(userData.address.pincode)) { toast.error(t('PLEASE_ENTER_VALID_PINCODE')) } else { setPage(page + 1) @@ -106,11 +84,11 @@ const Enrollment = () => { } else if (page === 3) { setPage(page + 1) } else if (page === 4) { - if (formData.documents.POI === '') { + if (userData.documents.POI === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_IDENTITY')) - } else if (formData.documents.POA === '') { + } else if (userData.documents.POA === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_ADDRESS')) - } else if (formData.documents.DOB === '') { + } else if (userData.documents.DOB === '') { toast.error(t('PLEASE_TAKE_THE_PICTURE_OF_THE_PROOF_OF_DATE_OF_BIRTH')) } else { setPage(page + 1) @@ -122,45 +100,54 @@ const Enrollment = () => { } 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 + 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('/') + } } - }) - setPage(page + 1) + ) } } + console.log(userData) + const conditionalComponent = () => { switch (page) { case 0: - return <FormOne formData={formData} setFormData={setFormData} /> + return <FormOne /> case 1: - return <FormTwo formData={formData} setFormData={setFormData} /> + return <FormTwo /> case 2: - return <Address formData={formData} setFormData={setFormData} /> + return <Address /> case 3: - return <PhotoCapture formData={formData} setFormData={setFormData} /> + return <PhotoCapture /> case 4: - return <DocumentScanner formData={formData} setFormData={setFormData} /> + return <DocumentScanner /> case 5: - return <IrisScan formData={formData} setFormData={setFormData} /> + return <IrisScan /> case 6: - return <Fingerprint formData={formData} setFormData={setFormData} /> + return <Fingerprint /> case 7: - return <Agreement formData={formData} setFormData={setFormData} /> + return <Agreement /> case 8: - return <FinalSlip formData={formData} setFormData={setFormData} /> + return <FinalSlip /> default: return <Home /> } |