import { Button, Flex, Spacer, Stack, Table, TableCaption, TableContainer, Tbody, Td, Th, Thead, Tr, } from "@chakra-ui/react"; import Link from "next/link"; import { useState } from "react"; import fetcher from "src/lib/fetcher"; import useSWR from "swr"; /** * Fetches users from the users api route and then presents them in a simple Chakra table. */ const UsersCell = () => { const [pageIndex, setPageIndex] = useState(0); const [users, setUsers] = useState([]); // Fetch and save the users. // This follows useSWR's recommendation for simple pagination: // https://swr.vercel.app/docs/pagination#when-to-use-useswr useSWR(`/api/admin/users?pageIndex=${pageIndex}`, fetcher, { onSuccess: setUsers, }); const toPreviousPage = () => { setPageIndex(Math.max(0, pageIndex - 1)); }; const toNextPage = () => { setPageIndex(pageIndex + 1); }; // Present users in a naive table. return ( Users {users.map((user, index) => ( ))}
Id Email Name Role Update
{user.id} {user.email} {user.name} {user.role} Manage
); }; export default UsersCell;