import { Pagination, PaginationContainer, PaginationNext, PaginationPage, PaginationPageGroup, PaginationPrevious, usePagination, } from '@ajna/pagination' import { Link } from '@chakra-ui/next-js' import { Card, CardBody, Heading, Image, LinkBox, LinkOverlay, SimpleGrid, Text } from '@chakra-ui/react' import { useRouter } from 'next/navigation' import directus from '~/lib/directus' const PER_PAGE = 12 export const getServerSideProps = async ({ query }) => { const page = query?.page || 1 const sort = query?.sort || 'name' const { data: vendors, meta } = await directus.items('vendors').readByQuery({ fields: [ // '*', ], limit: PER_PAGE, page, meta: ['filter_count'], sort, }) return { props: { vendors, meta, page } } } export default function VendorsPage({ vendors, meta, page }) { const router = useRouter() const { pages, pagesCount, currentPage, setCurrentPage, isDisabled } = usePagination({ total: meta.filter_count, limits: { outer: 1, inner: 1, }, initialState: { pageSize: PER_PAGE, isDisabled: false, currentPage: page, }, }) const handlePageChange = (nextPage) => { setCurrentPage(nextPage) router.replace(`/vendors?page=${nextPage}`) } return (
Vendors {vendors.map((v) => ( Chakra UI {v.name} ))} « {pages.map((page) => ( ))} »
) }