import { Badge, Box, Container, Flex, Heading, Spinner, Table, TableContainer, Tbody, Td, Th, Thead, Tr, } from "@chakra-ui/react" import { useQuery, useQueryClient } from "@tanstack/react-query" import { createFileRoute } from "@tanstack/react-router" import { type UserPublic, 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({ queryKey: ["users"], queryFn: () => UsersService.readUsers({}), }) if (isError) { const errDetail = (error as any).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"}
) )} ) }