import { Badge, Box, Container, Flex, Heading, Spinner, Table, TableContainer, Tbody, Td, Th, Thead, Tr } from '@chakra-ui/react'; import { createFileRoute } from '@tanstack/react-router'; import { useQuery, useQueryClient } from 'react-query'; import { ApiError, UserOut, UsersService } from '../../client'; import ActionsMenu from '../../components/Common/ActionsMenu'; import Navbar from '../../components/Common/Navbar'; import useCustomToast from '../../hooks/useCustomToast'; export const Route = createFileRoute('/_layout/admin')({ component: Admin, }) function Admin() { const queryClient = useQueryClient(); const showToast = useCustomToast(); const currentUser = queryClient.getQueryData('currentUser'); const { data: users, isLoading, isError, error } = useQuery('users', () => UsersService.readUsers({})) if (isError) { const errDetail = (error as ApiError).body?.detail; showToast('Something went wrong.', `${errDetail}`, 'error'); } return ( <> {isLoading ? ( // TODO: Add skeleton ) : ( users && User Management {users.data.map((user) => ( ))}
Full name Email Role Status Actions
{user.full_name || 'N/A'}{currentUser?.id === user.id && You} {user.email} {user.is_superuser ? 'Superuser' : 'User'} {user.is_active ? 'Active' : 'Inactive'}
)} ) } export default Admin;