import { Link } from '@chakra-ui/next-js' import { Card, CardBody, Heading, Image, LinkBox, LinkOverlay, SimpleGrid, Text, 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) => { await new Promise((r) => setTimeout(r, 2000)) const res = await fetch( `${process.env.NEXT_PUBLIC_DIRECTUS_API_URL}/items/vendors?fields[]=*&limit=12&page=${page}&meta[]=filter_count&sort=name` ) if (!res.ok) { throw new Error('wrong') } 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} ))}
) }