summaryrefslogtreecommitdiff
path: root/admin/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'admin/src/pages')
-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
5 files changed, 122 insertions, 22 deletions
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;
+}