"use client"; import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, getKeyValue, Spinner, Pagination, } from "@heroui/react"; import {useMemo, useState} from "react"; import useSWR from "swr"; type SWCharacter = { name: string; height: string; mass: string; birth_year: string; }; const fetcher = (...args: Parameters) => fetch(...args).then((res) => res.json()); export default function Page() { const [page, setPage] = useState(1); const {data, isLoading} = useSWR<{ count: number; results: SWCharacter[]; }>(`https://swapi.py4e.com/api/people?page=${page}`, fetcher, { keepPreviousData: true, }); const rowsPerPage = 10; const pages = useMemo(() => { return data?.count ? Math.ceil(data.count / rowsPerPage) : 0; }, [data?.count, rowsPerPage]); return (
0 ? (
setPage(page)} />
) : null } classNames={{ table: "min-h-[400px]", }} > Name Height Mass Birth year } > {(item) => ( {(columnKey) => {getKeyValue(item, columnKey)}} )}
); }