diff --git a/dashboard/src/pages/Users.tsx b/dashboard/src/pages/Users.tsx index d040585..bed4d0b 100644 --- a/dashboard/src/pages/Users.tsx +++ b/dashboard/src/pages/Users.tsx @@ -28,6 +28,7 @@ import { MenuList, MenuItem, useToast, + Spinner, } from '@chakra-ui/react'; import { FaAngleLeft, @@ -97,7 +98,9 @@ export default function Users() { maxPages: 1, }); const [userList, setUserList] = React.useState([]); + const [loading, setLoading] = React.useState(false); const updateUserList = async () => { + setLoading(true); const { data } = await client .query(UserDetailsQuery, { params: { @@ -114,6 +117,7 @@ export default function Users() { setPaginationProps({ ...paginationProps, ...pagination, maxPages }); setUserList(users); } + setLoading(false); }; React.useEffect(() => { updateUserList(); @@ -161,202 +165,212 @@ export default function Users() { Users - {userList.length > 0 ? ( - - - - - - - - - - - {userList.map((user: userDataTypes) => { - const { email_verified, created_at, ...rest }: any = user; - return ( - - - - -
EmailCreated AtVerifiedActions
{user.email}{dayjs(user.created_at).format('MMM DD, YYYY')} - - {user.email_verified.toString()} - - - - - - - Menu - - - - - - - {!user.email_verified && ( - userVerificationHandler(user)} + {!loading ? ( + userList.length > 0 ? ( + + + + + + + + + + + {userList.map((user: userDataTypes) => { + const { email_verified, created_at, ...rest }: any = user; + return ( + + + + + - - ); - })} - - {paginationProps.maxPages > 1 && ( - - - - - + + Menu + + + + + + + {!user.email_verified && ( + userVerificationHandler(user)} + > + Verify User + + )} + + + + + ); + })} + + {paginationProps.maxPages > 1 && ( + + + + + + paginationHandler({ + page: 1, + }) + } + isDisabled={paginationProps.page <= 1} + mr={4} + icon={} + /> + + + + paginationHandler({ + page: paginationProps.page - 1, + }) + } + isDisabled={paginationProps.page <= 1} + icon={} + /> + + + + + Page{' '} + + {paginationProps.page} + {' '} + of{' '} + + {paginationProps.maxPages} + + + + Go to page:{' '} + + paginationHandler({ + page: parseInt(value), + }) + } + value={paginationProps.page} + > + + + + + + + + + + + + + paginationHandler({ + page: paginationProps.page + 1, + }) + } + isDisabled={ + paginationProps.page >= paginationProps.maxPages + } + icon={} + /> + + + + paginationHandler({ + page: paginationProps.maxPages, + }) + } + isDisabled={ + paginationProps.page >= paginationProps.maxPages + } + ml={4} + icon={} + /> + - - - - - paginationHandler({ - page: paginationProps.page + 1, - }) - } - isDisabled={ - paginationProps.page >= paginationProps.maxPages - } - icon={} - /> - - - - paginationHandler({ - page: paginationProps.maxPages, - }) - } - isDisabled={ - paginationProps.page >= paginationProps.maxPages - } - ml={4} - icon={} - /> - - - - - )} -
EmailCreated AtVerifiedActions
{user.email}{dayjs(user.created_at).format('MMM DD, YYYY')} + + {user.email_verified.toString()} + + + + + - Verify User - - )} - - -
- ) : ( - -
- -
- + )} +
+ ) : ( + - No Data - - +
+ +
+ + No Data + + + ) + ) : ( +
+ +
)} );