import type { Metadata } from 'next/types' import { CollectionArchive } from '@/components/CollectionArchive' import { PageRange } from '@/components/PageRange' import { Pagination } from '@/components/Pagination' import configPromise from '@payload-config' import { getPayload } from 'payload' import React from 'react' import PageClient from './page.client' import { notFound } from 'next/navigation' export const revalidate = 600 type Args = { params: Promise<{ pageNumber: string }> } export default async function Page({ params: paramsPromise }: Args) { const { pageNumber } = await paramsPromise const payload = await getPayload({ config: configPromise }) const sanitizedPageNumber = Number(pageNumber) if (!Number.isInteger(sanitizedPageNumber)) notFound() const posts = await payload.find({ collection: 'posts', depth: 1, limit: 12, page: sanitizedPageNumber, overrideAccess: false, }) return (

Posts

{posts?.page && posts?.totalPages > 1 && ( )}
) } export async function generateMetadata({ params: paramsPromise }: Args): Promise { const { pageNumber } = await paramsPromise return { title: `Payload Website Template Posts Page ${pageNumber || ''}`, } } export async function generateStaticParams() { const payload = await getPayload({ config: configPromise }) const { totalDocs } = await payload.count({ collection: 'posts', overrideAccess: false, }) const totalPages = Math.ceil(totalDocs / 10) const pages: { pageNumber: string }[] = [] for (let i = 1; i <= totalPages; i++) { pages.push({ pageNumber: String(i) }) } return pages }