diff options
Diffstat (limited to 'admin/src/pages')
-rw-r--r-- | admin/src/pages/Home/Home.jsx | 30 | ||||
-rw-r--r-- | admin/src/pages/Home/Home.module.css | 4 | ||||
-rw-r--r-- | admin/src/pages/UnverifiedUsers/UnverifiedUsers.jsx | 50 | ||||
-rw-r--r-- | admin/src/pages/UnverifiedUsers/UnverifiedUsers.module.css | 21 | ||||
-rw-r--r-- | admin/src/pages/VerifiedUsers/VerifiedUsers.jsx | 31 | ||||
-rw-r--r-- | admin/src/pages/VerifiedUsers/VerifiedUsers.module.css | 14 |
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; +} |