summaryrefslogtreecommitdiff
path: root/admin/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'admin/src/pages')
-rw-r--r--admin/src/pages/Home/Home.jsx30
-rw-r--r--admin/src/pages/Home/Home.module.css4
-rw-r--r--admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx50
-rw-r--r--admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css21
-rw-r--r--admin/src/pages/VerifiedUsers/VerifiedUsers.jsx31
-rw-r--r--admin/src/pages/VerifiedUsers/VerifiedUsers.module.css14
6 files changed, 150 insertions, 0 deletions
diff --git a/admin/src/pages/Home/Home.jsx b/admin/src/pages/Home/Home.jsx
new file mode 100644
index 0000000..b8d556e
--- /dev/null
+++ b/admin/src/pages/Home/Home.jsx
@@ -0,0 +1,30 @@
+import React from 'react';
+import {Link} from 'react-router-dom';
+
+import Card from '../../components/Card/Card';
+import Header from '../../components/Header/Header';
+import styles from './Home.module.css';
+
+const Home = ({page, setPage}) => {
+ return (
+ <>
+ <Header subheading='Admin' />
+ <div className={styles.card__container}>
+ <Link to='/verified'>
+ <Card
+ title='Verified'
+ image={`${process.env.PUBLIC_URL}/assets/images/verified.svg`}
+ />
+ </Link>
+ <Link to='/unverified'>
+ <Card
+ title='Unverified'
+ image={`${process.env.PUBLIC_URL}/assets/images/unverified.svg`}
+ />
+ </Link>
+ </div>
+ </>
+ );
+};
+
+export default Home;
diff --git a/admin/src/pages/Home/Home.module.css b/admin/src/pages/Home/Home.module.css
new file mode 100644
index 0000000..de1cead
--- /dev/null
+++ b/admin/src/pages/Home/Home.module.css
@@ -0,0 +1,4 @@
+.card__container {
+ display: flex;
+ justify-content: center;
+}
diff --git a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx b/admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx
new file mode 100644
index 0000000..67de506
--- /dev/null
+++ b/admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx
@@ -0,0 +1,50 @@
+import React, {useEffect} 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 styles from './UnverifiedUsers.module.css';
+
+const UnverifiedUsers = () => {
+ const {data} = useQuery('unverified', getUnverifiedUsers);
+ const deleteUse = useMutation((id) => deleteUser(id));
+ const updateUse = useMutation((id) => updateUser(id, {verified: true}));
+
+ useEffect(() => {}, [data]);
+
+ return (
+ <div className={styles.unverified_users}>
+ <Header subheading='Admin' />
+ <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 UnverifiedUsers;
diff --git a/admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css b/admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css
new file mode 100644
index 0000000..652fe52
--- /dev/null
+++ b/admin/src/pages/UnverifiedUsers/UnverifiedUsers.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/pages/VerifiedUsers/VerifiedUsers.jsx b/admin/src/pages/VerifiedUsers/VerifiedUsers.jsx
new file mode 100644
index 0000000..12d1317
--- /dev/null
+++ b/admin/src/pages/VerifiedUsers/VerifiedUsers.jsx
@@ -0,0 +1,31 @@
+import React from 'react';
+import Accordion from '../../components/Accordion/Accordion';
+import Header from '../../components/Header/Header';
+import {getVerifiedUsers} from '../../services/apiservice';
+import {useQuery} from 'react-query';
+
+import styles from './VerifiedUsers.module.css';
+
+const VerifiedUsers = () => {
+ const {data} = useQuery('verified', getVerifiedUsers);
+
+ return (
+ <div className={styles.verified_users}>
+ <Header subheading='Admin' />
+ <h1 className={styles.verified_users__heading}>Verified Users</h1>
+ <div className='accordion'>
+ {data?.data.length !== 0 ? (
+ data?.data.map((item) => (
+ <div>
+ <Accordion name={item.name} user={item} />
+ </div>
+ ))
+ ) : (
+ <div className={styles.verified_users__nodata}>No Data Found</div>
+ )}
+ </div>
+ </div>
+ );
+};
+
+export default VerifiedUsers;
diff --git a/admin/src/pages/VerifiedUsers/VerifiedUsers.module.css b/admin/src/pages/VerifiedUsers/VerifiedUsers.module.css
new file mode 100644
index 0000000..f558e85
--- /dev/null
+++ b/admin/src/pages/VerifiedUsers/VerifiedUsers.module.css
@@ -0,0 +1,14 @@
+.verified_users {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+
+.verified_users__heading {
+ text-align: center;
+}
+
+.verified_users__nodata {
+ margin: 20px;
+ text-align: center;
+}