summaryrefslogtreecommitdiff
path: root/admin/src
diff options
context:
space:
mode:
Diffstat (limited to 'admin/src')
-rw-r--r--admin/src/components/Accordion/Accordion.jsx56
-rw-r--r--admin/src/components/Accordion/Accordion.module.css30
-rw-r--r--admin/src/components/BackButton/BackButton.jsx23
-rw-r--r--admin/src/components/BackButton/BackButton.module.css20
-rw-r--r--admin/src/components/Card/Card.jsx22
-rw-r--r--admin/src/pages/EnrollmentRequests/EnrollmentRequests.jsx (renamed from admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx)37
-rw-r--r--admin/src/pages/EnrollmentRequests/EnrollmentRequests.module.css (renamed from admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css)0
-rw-r--r--admin/src/pages/Home/Home.jsx14
-rw-r--r--admin/src/pages/UpdateRequests/UpdateRequests.jsx72
-rw-r--r--admin/src/pages/UpdateRequests/UpdateRequests.module.css21
-rw-r--r--admin/src/routes/index.js11
-rw-r--r--admin/src/styles/GlobalVariables.css4
12 files changed, 257 insertions, 53 deletions
diff --git a/admin/src/components/Accordion/Accordion.jsx b/admin/src/components/Accordion/Accordion.jsx
index 62663a6..4e7c1c1 100644
--- a/admin/src/components/Accordion/Accordion.jsx
+++ b/admin/src/components/Accordion/Accordion.jsx
@@ -18,28 +18,48 @@ const Accordion = ({name, user}) => {
{isActive && (
<div className={styles.accordion__content}>
<div className={styles.accordion__demographic}>
- <div>Name : {user.name}</div>
- <div>Gender : {user.gender}</div>
- <div>Date of Birth : {user.dob}</div>
- <div>Mobile Number : {user.mobile}</div>
- <div>Email : {user.email}</div>
- <div>
- Address : {user.address.houseNo},{user.address.street},
- {user.address.locality},{user.address.landmark},
- {user.address.village},{user.address.district.name},
- {user.address.state.name},{user.address.pincode}
+ <div className={styles.demographic__heading}>
+ <div>Name</div>
+ <div>Gender</div>
+ <div>Date of Birth</div>
+ <div>Mobile Number</div>
+ <div>Email</div>
+ <div>Address</div>
+ <div>Indian Resident</div>
+ </div>
+ <hr />
+ <div className={styles.demographic__content}>
+ <div>{user.name}</div>
+ <div>{user.gender}</div>
+ <div>{user.dob}</div>
+ <div>{user.mobile}</div>
+ <div>{user.email}</div>
+ <div>
+ {user.address.houseNo},{user.address.street},
+ {user.address.locality},{user.address.landmark},
+ {user.address.village},{user.address.district.name},
+ {user.address.state.name},{user.address.pincode}
+ </div>
+ <div>Indian Resident : {user.indianResident ? 'Yes' : 'No'}</div>
</div>
- <div>Indian Resident : {user.indianResident ? 'Yes' : 'No'}</div>
</div>
<div className={styles.accordion__biometric}>
- <img src={user.photo} alt='' />
- <Button variant='contained'>Documents</Button>
- <Button variant='contained'>Biometric</Button>
+ <img
+ src={user.photo}
+ alt=''
+ height='300px'
+ className={styles.accordion__biometric_image}
+ />
+ <Button
+ sx={{margin: '10px 0px', padding: '20px'}}
+ variant='contained'
+ >
+ Documents
+ </Button>
+ <Button sx={{padding: '20px'}} variant='contained'>
+ Biometric
+ </Button>
</div>
-
- <img src={user.documents.POI} alt='' />
- <img src={user.documents.POA} alt='' />
- <img src={user.documents.DOB} alt='' />
</div>
)}
</div>
diff --git a/admin/src/components/Accordion/Accordion.module.css b/admin/src/components/Accordion/Accordion.module.css
index 86a1c7b..70bee92 100644
--- a/admin/src/components/Accordion/Accordion.module.css
+++ b/admin/src/components/Accordion/Accordion.module.css
@@ -1,5 +1,5 @@
.accordion {
- width: 600px;
+ width: 1500px;
margin: 2rem auto;
}
@@ -24,6 +24,34 @@
}
.accordion__content {
+ display: flex;
+ justify-content: center;
+ background-color: #2c3e50;
+ border-radius: 10px;
+ margin: 10px 0px;
+}
+
+.accordion__demographic {
+ display: flex;
+ width: 60%;
background-color: #ecf0f1;
border-radius: 10px;
+ margin-right: 10px;
+ padding: 20px;
+}
+
+.accordion__biometric {
+ width: 40%;
+ display: flex;
+ flex-direction: column;
+}
+
+.accordion__biometric_image {
+ border-radius: 6px;
+}
+
+.demographic__heading div,
+.demographic__content div {
+ margin: 20px 0px;
+ font-size: var(--font-medium-s);
}
diff --git a/admin/src/components/BackButton/BackButton.jsx b/admin/src/components/BackButton/BackButton.jsx
new file mode 100644
index 0000000..ff99eb6
--- /dev/null
+++ b/admin/src/components/BackButton/BackButton.jsx
@@ -0,0 +1,23 @@
+import React from 'react'
+import styles from './BackButton.module.css'
+
+const BackButton = ({ onClick, onChange }) => {
+ return (
+ <>
+ <button
+ onClick={onClick}
+ className={styles.submit}
+ type="submit"
+ onChange={onChange}
+ >
+ <img
+ className={styles.submit__image}
+ src={`${process.env.PUBLIC_URL}/assets/images/back.svg`}
+ alt=""
+ />
+ </button>
+ </>
+ )
+}
+
+export default BackButton
diff --git a/admin/src/components/BackButton/BackButton.module.css b/admin/src/components/BackButton/BackButton.module.css
new file mode 100644
index 0000000..cc9b51c
--- /dev/null
+++ b/admin/src/components/BackButton/BackButton.module.css
@@ -0,0 +1,20 @@
+.submit {
+ position: absolute;
+ top: 100px;
+ left: 150px;
+ background: transparent;
+ border: none;
+ border-radius: 50%;
+ transition: 0.2s all;
+ cursor: pointer;
+}
+
+.submit:active {
+ transform: scale(0.98);
+ box-shadow: 3px 2px 22px 1px var(--color-shadow);
+}
+
+.submit__image {
+ height: 75px;
+ width: 75px;
+}
diff --git a/admin/src/components/Card/Card.jsx b/admin/src/components/Card/Card.jsx
index 9460955..d57607b 100644
--- a/admin/src/components/Card/Card.jsx
+++ b/admin/src/components/Card/Card.jsx
@@ -1,13 +1,19 @@
-import React from 'react'
-import styles from './Card.module.css'
+import React from 'react';
+import styles from './Card.module.css';
-const Card = ({ title, image, onClick }) => {
+const Card = ({title, image, onClick}) => {
return (
- <div onClick={ onClick } className={styles.card}>
- <img className={styles.card__image} src={image} alt="" />
+ <div onClick={onClick} className={styles.card}>
+ <img
+ className={styles.card__image}
+ src={image}
+ alt=''
+ height='200px'
+ width='200px'
+ />
<h2 className={styles.card__title}>{title}</h2>
</div>
- )
-}
+ );
+};
-export default Card
+export default Card;
diff --git a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx b/admin/src/pages/EnrollmentRequests/EnrollmentRequests.jsx
index 0c3a57d..8423fc0 100644
--- a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx
+++ b/admin/src/pages/EnrollmentRequests/EnrollmentRequests.jsx
@@ -1,4 +1,4 @@
-import React, {useEffect} from 'react';
+import React from 'react';
import Accordion from '../../components/Accordion/Accordion';
import Button from '../../components/Button/Button';
import Header from '../../components/Header/Header';
@@ -8,29 +8,30 @@ import {
updateUser,
} from '../../services/apiservice';
import {useQuery, useMutation} from 'react-query';
+import {useNavigate} from 'react-router-dom';
+import BackButton from '../../components/BackButton/BackButton';
-import styles from './UnverifiedUsers.module.css';
-import Spinner from '../../components/Spinner/Spinner';
+import styles from './EnrollmentRequests.module.css';
-const UnverifiedUsers = () => {
- const {data, isLoading, isError} = useQuery('unverified', getUnverifiedUsers);
- const deleteUse = useMutation((id) => deleteUser(id));
- const updateUse = useMutation((id) => updateUser(id, {verified: true}));
-
- useEffect(() => {}, [data]);
-
- if (isLoading) {
- return <Spinner heading='Admin' />
- }
-
- if (isError) {
- return <div>Error</div>
- }
+const EnrollmentRequests = () => {
+ const navigate = useNavigate();
+ const {data, refetch} = useQuery('unverified', getUnverifiedUsers);
+ const deleteUse = useMutation((id) => deleteUser(id), {
+ onSuccess: () => {
+ refetch();
+ },
+ });
+ const updateUse = useMutation((id) => updateUser(id, {verified: true}), {
+ onSuccess: () => {
+ refetch();
+ },
+ });
return (
<div className={styles.unverified_users}>
<Header subheading='Admin' />
+ <BackButton onClick={() => navigate('/')} />
<h1 className={styles.unverified_users__heading}>Unverified Users</h1>
<div className='accordion'>
{data?.data.length !== 0 ? (
@@ -57,4 +58,4 @@ const UnverifiedUsers = () => {
);
};
-export default UnverifiedUsers;
+export default EnrollmentRequests;
diff --git a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css b/admin/src/pages/EnrollmentRequests/EnrollmentRequests.module.css
index 652fe52..652fe52 100644
--- a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css
+++ b/admin/src/pages/EnrollmentRequests/EnrollmentRequests.module.css
diff --git a/admin/src/pages/Home/Home.jsx b/admin/src/pages/Home/Home.jsx
index b8d556e..bdc01c8 100644
--- a/admin/src/pages/Home/Home.jsx
+++ b/admin/src/pages/Home/Home.jsx
@@ -12,14 +12,20 @@ const Home = ({page, setPage}) => {
<div className={styles.card__container}>
<Link to='/verified'>
<Card
- title='Verified'
+ title='Verified Users'
image={`${process.env.PUBLIC_URL}/assets/images/verified.svg`}
/>
</Link>
- <Link to='/unverified'>
+ <Link to='/enrollment'>
<Card
- title='Unverified'
- image={`${process.env.PUBLIC_URL}/assets/images/unverified.svg`}
+ title='Enrollment Requests'
+ image={`${process.env.PUBLIC_URL}/assets/images/enrollment.svg`}
+ />
+ </Link>
+ <Link to='/update'>
+ <Card
+ title='Update Requests'
+ image={`${process.env.PUBLIC_URL}/assets/images/update.svg`}
/>
</Link>
</div>
diff --git a/admin/src/pages/UpdateRequests/UpdateRequests.jsx b/admin/src/pages/UpdateRequests/UpdateRequests.jsx
new file mode 100644
index 0000000..174dbdc
--- /dev/null
+++ b/admin/src/pages/UpdateRequests/UpdateRequests.jsx
@@ -0,0 +1,72 @@
+import React from 'react';
+import Accordion from '../../components/Accordion/Accordion';
+import Button from '../../components/Button/Button';
+import Header from '../../components/Header/Header';
+import {
+ deleteUser,
+ getUnverifiedUsers,
+ updateUser,
+} from '../../services/apiservice';
+import {useQuery, useMutation} from 'react-query';
+import {useNavigate} from 'react-router-dom';
+import styles from './UpdateRequests.module.css';
+import BackButton from '../../components/BackButton/BackButton';
+import Spinner from '../../components/Spinner/Spinner';
+
+const UpdateRequests = () => {
+ const navigate = useNavigate();
+ const {data, isLoading, isError, refetch} = useQuery(
+ 'unverified',
+ getUnverifiedUsers
+ );
+ const deleteUse = useMutation((id) => deleteUser(id), {
+ onSuccess: () => {
+ refetch();
+ },
+ });
+
+ const updateUse = useMutation((id) => updateUser(id, {verified: true}), {
+ onSuccess: () => {
+ refetch();
+ },
+ });
+
+ if (isLoading) {
+ return <Spinner heading='Admin' />;
+ }
+
+ if (isError) {
+ return <div>Error</div>;
+ }
+
+ return (
+ <div className={styles.unverified_users}>
+ <Header subheading='Admin' />
+ <BackButton onClick={() => navigate('/')} />
+ <h1 className={styles.unverified_users__heading}>Unverified Users</h1>
+ <div className='accordion'>
+ {data?.data.length !== 0 ? (
+ data?.data.map((item) => (
+ <div className={styles.unverified_users__accordion} key={item._id}>
+ <Accordion name={item.name} user={item} />
+ <Button
+ title='Accept'
+ color='green'
+ onClick={() => updateUse.mutate(item._id)}
+ />
+ <Button
+ title='Reject'
+ color='red'
+ onClick={() => deleteUse.mutate(item._id)}
+ />
+ </div>
+ ))
+ ) : (
+ <div className={styles.unverified_users__nodata}>No Data Found</div>
+ )}
+ </div>
+ </div>
+ );
+};
+
+export default UpdateRequests;
diff --git a/admin/src/pages/UpdateRequests/UpdateRequests.module.css b/admin/src/pages/UpdateRequests/UpdateRequests.module.css
new file mode 100644
index 0000000..652fe52
--- /dev/null
+++ b/admin/src/pages/UpdateRequests/UpdateRequests.module.css
@@ -0,0 +1,21 @@
+.unverified_users {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+
+.unverified_users__heading {
+ text-align: center;
+}
+
+.unverified_users__accordion {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 80%;
+}
+
+.unverified_users__nodata {
+ margin: 20px;
+ text-align: center;
+}
diff --git a/admin/src/routes/index.js b/admin/src/routes/index.js
index a42c529..f306a3b 100644
--- a/admin/src/routes/index.js
+++ b/admin/src/routes/index.js
@@ -1,8 +1,8 @@
import React from 'react';
import {Route, Routes} from 'react-router-dom';
-
import Home from '../pages/Home/Home';
-import UnverifiedUsers from '../pages/UnverifiedUsers/UnverifiedUsers';
+import EnrollmentRequests from '../pages/EnrollmentRequests/EnrollmentRequests';
+import UpdateRequests from '../pages/UpdateRequests/UpdateRequests';
import VerifiedUsers from '../pages/VerifiedUsers/VerifiedUsers';
const Index = () => {
@@ -12,8 +12,11 @@ const Index = () => {
<Route path='verified'>
<Route index element={<VerifiedUsers />} />
</Route>
- <Route path='unverified'>
- <Route index element={<UnverifiedUsers />} />
+ <Route path='enrollment'>
+ <Route index element={<EnrollmentRequests />} />
+ </Route>
+ <Route path='update'>
+ <Route index element={<UpdateRequests />} />
</Route>
</Routes>
);
diff --git a/admin/src/styles/GlobalVariables.css b/admin/src/styles/GlobalVariables.css
index a1e3384..2786f06 100644
--- a/admin/src/styles/GlobalVariables.css
+++ b/admin/src/styles/GlobalVariables.css
@@ -3,6 +3,10 @@
--color-shadow: rgba(0, 0, 0, 0.24);
--font-large: 4rem;
+ --font-medium-lm: 3rem;
+ --font-medium-large: 2.5rem;
--font-medium: 2rem;
+ --font-medium-sm: 1.5rem;
--font-medium-s: 1.25rem;
+ --font-small: 1rem;
}