import { Link } from '@chakra-ui/next-js' import { Card, CardBody, Heading, Image, LinkBox, LinkOverlay, SimpleGrid, Skeleton } from '@chakra-ui/react' import { useQuery } from '@tanstack/react-query' import { useRouter } from 'next/router' import Pagination from '~/components/pagination' const PER_PAGE = 12 export default function VendorsPage() { const router = useRouter() const { query: { page = 1 }, } = router const { data, isFetching } = useQuery({ queryKey: ['vendors', page], queryFn: async (...props2) => { const url = new URL(`${process.env.NEXT_PUBLIC_DIRECTUS_API_URL}/items/vendors`) url.searchParams.append('fields[]', '*') url.searchParams.append('limit', PER_PAGE) url.searchParams.append('page', page) url.searchParams.append('sort', 'name') url.searchParams.append('meta[]', 'filter_count') const res = await fetch(url.toString()) if (!res.ok) { throw new Error('Oops') } return res.json() }, keepPreviousData: true, cacheTime: 1000 * 60 * 30, staleTime: 1000 * 60 * 30, }) const { meta, data: vendors } = data || { meta: {}, data: [] } return (
Vendors {isFetching && new Array(PER_PAGE).fill(true).map((v, k) => ( ))} {!isFetching && vendors.map((v) => ( {v.name} {v.name} ))}
) }