summaryrefslogtreecommitdiff
path: root/client/src/pages/Enrollment
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/pages/Enrollment')
-rw-r--r--client/src/pages/Enrollment/Address/Address.jsx152
-rw-r--r--client/src/pages/Enrollment/Address/Address.module.css17
-rw-r--r--client/src/pages/Enrollment/Agreement/Agreement.jsx3
-rw-r--r--client/src/pages/Enrollment/Enrollment.jsx81
-rw-r--r--client/src/pages/Enrollment/Enrollment.module.css0
-rw-r--r--client/src/pages/Enrollment/FormOne/FormOne.module.css7
-rw-r--r--client/src/pages/Enrollment/FormTwo/FormTwo.jsx64
-rw-r--r--client/src/pages/Enrollment/FormTwo/FormTwo.module.css4
8 files changed, 167 insertions, 161 deletions
diff --git a/client/src/pages/Enrollment/Address/Address.jsx b/client/src/pages/Enrollment/Address/Address.jsx
index 9ae1857..3d1c520 100644
--- a/client/src/pages/Enrollment/Address/Address.jsx
+++ b/client/src/pages/Enrollment/Address/Address.jsx
@@ -4,9 +4,9 @@ import Input from '../../../components/Input/Input'
import { State, City } from 'country-state-city'
import Select from 'react-select'
import { userContext } from '../../../context/User'
+import { useTranslation } from 'react-i18next'
import styles from './Address.module.css'
-import { useTranslation } from 'react-i18next'
const Address = () => {
const { t } = useTranslation()
@@ -26,7 +26,7 @@ const Address = () => {
}))
const customStyles = {
- control: (base, state) => ({
+ control: (base) => ({
...base,
width: '330px',
height: '60px',
@@ -34,7 +34,7 @@ const Address = () => {
border: '3px solid',
borderRadius: '10px !important'
}),
- input: (base, state) => ({
+ input: (base) => ({
...base,
display: 'flex',
justifyContent: 'center',
@@ -49,66 +49,6 @@ const Address = () => {
<Header subheading={t('ENROLLMENT')} />
<div className={styles.address}>
<div className={styles.address__container}>
- <div className={styles.input}>
- <div className={styles.input__container}>
- <label htmlFor="state">{t('STATE')}</label>
- <Select
- id="state"
- name="state"
- options={updatedStates('IN')}
- value={userData.address?.state}
- onChange={(e) => {
- setUserData({
- ...userData,
- address: {
- ...userData.address,
- state: e
- }
- })
- }}
- styles={customStyles}
- />
- </div>
- </div>
- <div className={styles.input}>
- <div className={styles.input__container}>
- <label htmlFor="city">{t('DISTRICT')}</label>
- <Select
- id="city"
- name="city"
- options={updatedCities('IN', userData.address?.state?.isoCode)}
- value={userData.address?.district}
- onChange={(e) => {
- setUserData({
- ...userData,
- address: {
- ...userData.address,
- district: e
- }
- })
- }}
- styles={customStyles}
- />
- </div>
- </div>
- <Input
- id="town"
- label={t('VILLAGE_TOWN')}
- value={userData.village}
- type="text"
- onChange={(e) => {
- setUserData({
- ...userData,
- address: {
- ...userData.address,
- village: e.target.value
- }
- })
- }}
- placeholder={t('ENTER_YOUR_VILLAGE_TOWN')}
- />
- </div>
- <div className={styles.address__container}>
<Input
id="houseNo"
label={t('HOUSE_NUMBER_APARTMENT')}
@@ -126,36 +66,57 @@ const Address = () => {
placeholder={t('ENTER_YOUR_HOUSE_NUMBER_APARTMENT')}
/>
<Input
- id="street"
- label={t('STREET_ROAD')}
- value={userData.street}
+ id="town"
+ label={t('VILLAGE_TOWN')}
+ value={userData.village}
type="text"
onChange={(e) => {
setUserData({
...userData,
address: {
...userData.address,
- street: e.target.value
+ village: e.target.value
}
})
}}
- placeholder={t('ENTER_YOUR_STREET_ROAD')}
+ placeholder={t('ENTER_YOUR_VILLAGE_TOWN')}
/>
+ <div className={styles.input__container}>
+ <label htmlFor="state">{t('STATE')}</label>
+ <Select
+ id="state"
+ name="state"
+ options={updatedStates('IN')}
+ value={userData.address?.state}
+ onChange={(e) => {
+ setUserData({
+ ...userData,
+ address: {
+ ...userData.address,
+ state: e
+ }
+ })
+ }}
+ styles={customStyles}
+ />
+ </div>
+ </div>
+ <div className={styles.address__container}>
<Input
- id="locality"
- label={t('AREA_LOCALITY')}
- value={userData.locality}
+ id="street"
+ label={t('STREET_ROAD')}
+ value={userData.street}
type="text"
onChange={(e) => {
setUserData({
...userData,
address: {
...userData.address,
- locality: e.target.value
+ street: e.target.value
}
})
}}
- placeholder={t('ENTER_YOUR_AREA_LOCALITY')}
+ placeholder={t('ENTER_YOUR_STREET_ROAD')}
/>
<Input
id="postOffice"
@@ -173,23 +134,42 @@ const Address = () => {
}}
placeholder={t('ENTER_YOUR_AREA_POST_OFFICE')}
/>
+ <div className={styles.input__container}>
+ <label htmlFor="city">{t('DISTRICT')}</label>
+ <Select
+ id="city"
+ name="city"
+ options={updatedCities('IN', userData.address?.state?.isoCode)}
+ value={userData.address?.district}
+ onChange={(e) => {
+ setUserData({
+ ...userData,
+ address: {
+ ...userData.address,
+ district: e
+ }
+ })
+ }}
+ styles={customStyles}
+ />
+ </div>
</div>
<div className={styles.address__container}>
<Input
- id="landmark"
- label={t('LANDMARK')}
- value={userData.landmark}
+ id="locality"
+ label={t('AREA_LOCALITY')}
+ value={userData.locality}
type="text"
onChange={(e) => {
setUserData({
...userData,
address: {
...userData.address,
- landmark: e.target.value
+ locality: e.target.value
}
})
}}
- placeholder={t('ENTER_ANY_NEAREST_LANDMARK')}
+ placeholder={t('ENTER_YOUR_AREA_LOCALITY')}
/>
<Input
id="pincode"
@@ -207,6 +187,22 @@ const Address = () => {
}}
placeholder={t('ENTER_YOUR_AREA_PINCODE')}
/>
+ <Input
+ id="landmark"
+ label={t('LANDMARK')}
+ value={userData.landmark}
+ type="text"
+ onChange={(e) => {
+ setUserData({
+ ...userData,
+ address: {
+ ...userData.address,
+ landmark: e.target.value
+ }
+ })
+ }}
+ placeholder={t('ENTER_ANY_NEAREST_LANDMARK')}
+ />
</div>
</div>
</>
diff --git a/client/src/pages/Enrollment/Address/Address.module.css b/client/src/pages/Enrollment/Address/Address.module.css
index 26ca909..eafa781 100644
--- a/client/src/pages/Enrollment/Address/Address.module.css
+++ b/client/src/pages/Enrollment/Address/Address.module.css
@@ -1,28 +1,17 @@
.address {
display: flex;
justify-content: center;
+ margin: 40px 0px 0px;
}
.address__container {
margin: 0px 20px;
}
-.input {
+.input__container {
display: flex;
justify-content: center;
+ flex-direction: column;
font-family: 'Barlow';
font-size: var(--font-medium-s);
}
-
-.input__container {
- display: flex;
- flex-direction: column;
-}
-
-.input__field {
- width: 300px;
- margin: 10px 0px;
- padding: 20px 10px;
- border: 3px solid;
- border-radius: 10px;
-}
diff --git a/client/src/pages/Enrollment/Agreement/Agreement.jsx b/client/src/pages/Enrollment/Agreement/Agreement.jsx
index d3a5b90..7b1b9c6 100644
--- a/client/src/pages/Enrollment/Agreement/Agreement.jsx
+++ b/client/src/pages/Enrollment/Agreement/Agreement.jsx
@@ -81,10 +81,11 @@ const Agreement = ({ unverified, setUnverified }) => {
{show && (
<>
<Input
- type="number"
+ type="text"
id="otp"
value={otp}
onChange={(e) => setOtp(e.target.value)}
+ maxLength="6"
placeholder="XXXXXX"
/>
<Button
diff --git a/client/src/pages/Enrollment/Enrollment.jsx b/client/src/pages/Enrollment/Enrollment.jsx
index 8b62b3c..88bdf47 100644
--- a/client/src/pages/Enrollment/Enrollment.jsx
+++ b/client/src/pages/Enrollment/Enrollment.jsx
@@ -33,19 +33,28 @@ const Enrollment = () => {
const navigate = useNavigate()
const [unverified, setUnverified] = useState(true)
- const pushUser = useMutation((payload) => createUser(payload), {
- onSuccess: () => {
- console.log('Before mutate')
+ const { mutate } = useMutation((payload) => createUser(payload), {
+ onSuccess: (data) => {
setConfirm.mutate({
mobile: `+91${userData.mobile}`,
- id: pushUser.data._id
+ id: data?.data?.result?._id
})
- console.log('After mutate')
setPage(page + 1)
+ },
+ onError: (error) => {
+ console.log(error)
+ if (error?.response?.data?.message === 'User already exists.') {
+ setUserData(initialUserData)
+ navigate('/error')
+ } else {
+ toast.error(t('SOMETHING_WENT_WRONG'))
+ }
}
})
- const setConfirm = useMutation((payload) => sendMessage(payload))
+ const setConfirm = useMutation((payload) => {
+ sendMessage(payload)
+ })
const handleSubmit = () => {
if (page === 0) {
@@ -75,26 +84,26 @@ const Enrollment = () => {
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 === '') {
+ 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.village === '') {
+ toast.error(t('PLEASE_ENTER_YOUR_VILLAGE'))
} 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 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.landmark === '') {
+ toast.error(t('PLEASE_ENTER_NEAREST_LANDMARK'))
} else {
setPage(page + 1)
}
@@ -106,11 +115,7 @@ const Enrollment = () => {
}
} 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'))
+ toast.error(t('SCAN_YOUR_DOCUMENT'))
} else {
setPage(page + 1)
}
@@ -119,21 +124,25 @@ const Enrollment = () => {
} else if (page === 6) {
setPage(page + 1)
} else if (page === 7) {
- pushUser.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
- }
- })
+ if (unverified) {
+ toast.error(t('PLEASE_VERIFY_OTP'))
+ } else {
+ 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
+ }
+ })
+ }
} else if (page === 8) {
setUserData(initialUserData)
navigate('/')
@@ -198,7 +207,7 @@ const Enrollment = () => {
case 7:
return (
<>
- <SubmitButton onClick={handleSubmit} disabled={unverified} />
+ <SubmitButton onClick={handleSubmit} />
<BackButton onClick={() => setPage(page - 1)} />
</>
)
diff --git a/client/src/pages/Enrollment/Enrollment.module.css b/client/src/pages/Enrollment/Enrollment.module.css
deleted file mode 100644
index e69de29..0000000
--- a/client/src/pages/Enrollment/Enrollment.module.css
+++ /dev/null
diff --git a/client/src/pages/Enrollment/FormOne/FormOne.module.css b/client/src/pages/Enrollment/FormOne/FormOne.module.css
index 35d1e49..fae8e9f 100644
--- a/client/src/pages/Enrollment/FormOne/FormOne.module.css
+++ b/client/src/pages/Enrollment/FormOne/FormOne.module.css
@@ -15,15 +15,22 @@
display: flex;
align-items: center;
margin: 15px;
+ cursor: pointer;
}
.formone__resident input[type='radio'] {
width: 1.5rem;
height: 1.5rem;
+ cursor: pointer;
+}
+
+.formone__resident label {
+ margin-left: 10px;
}
.formone__gender {
display: flex;
+ margin-bottom: 10px;
}
.formone__dob {
diff --git a/client/src/pages/Enrollment/FormTwo/FormTwo.jsx b/client/src/pages/Enrollment/FormTwo/FormTwo.jsx
index 05ad075..0bce4bc 100644
--- a/client/src/pages/Enrollment/FormTwo/FormTwo.jsx
+++ b/client/src/pages/Enrollment/FormTwo/FormTwo.jsx
@@ -1,44 +1,46 @@
import React from 'react'
+import { useTranslation } from 'react-i18next'
import Input from '../../../components/Input/Input'
import Header from '../../../components/Header/Header'
-import SubmitButton from '../../../components/SubmitButton/SubmitButton'
-import { useTranslation } from 'react-i18next'
import { userContext } from '../../../context/User'
+import styles from './FormTwo.module.css'
+
const FormTwo = () => {
const { t } = useTranslation()
const { userData, setUserData } = userContext()
return (
- <div className="formtwo">
+ <>
<Header subheading={t('ENROLLMENT')} />
- <Input
- id="mobile"
- value={userData.mobile}
- label={t('MOBILE')}
- type="text"
- onChange={(e) => {
- setUserData({
- ...userData,
- mobile: e.target.value
- })
- }}
- placeholder={t('ENTER_YOUR_MOBILE_NUMBER')}
- />
- <Input
- id="email"
- value={userData.email}
- label={t('EMAIL')}
- type="email"
- onChange={(e) => {
- setUserData({
- ...userData,
- email: e.target.value
- })
- }}
- placeholder={t('ENTER_YOUR_EMAIL_ID')}
- />
- <SubmitButton />
- </div>
+ <div className={styles.formtwo__input}>
+ <Input
+ id="mobile"
+ value={userData.mobile}
+ label={t('MOBILE')}
+ type="text"
+ onChange={(e) => {
+ setUserData({
+ ...userData,
+ mobile: e.target.value
+ })
+ }}
+ placeholder={t('ENTER_YOUR_MOBILE_NUMBER')}
+ />
+ <Input
+ id="email"
+ value={userData.email}
+ label={t('EMAIL')}
+ type="email"
+ onChange={(e) => {
+ setUserData({
+ ...userData,
+ email: e.target.value
+ })
+ }}
+ placeholder={t('ENTER_YOUR_EMAIL_ID')}
+ />
+ </div>
+ </>
)
}
diff --git a/client/src/pages/Enrollment/FormTwo/FormTwo.module.css b/client/src/pages/Enrollment/FormTwo/FormTwo.module.css
index 8b13789..d135f8f 100644
--- a/client/src/pages/Enrollment/FormTwo/FormTwo.module.css
+++ b/client/src/pages/Enrollment/FormTwo/FormTwo.module.css
@@ -1 +1,3 @@
-
+.formtwo__input {
+ margin: 60px;
+}