Help is on the way! To mark it as solved, use the /solve command. In the meantime, here are some existing threads that may help you:
#failed to collect page data
3 messages · Page 1 of 1 (latest)
Trying to paste the code but it's too long, moment
import { PayloadRedirects } from '@/components/PayloadRedirects'
import configPromise from '@payload-config'
import { getPayloadHMR } from '@payloadcms/next/utilities'
import { draftMode } from 'next/headers'
import React, { cache } from 'react'
import type { Page as PageType } from '@/payload-types'
import { RenderBlocks } from '@/blocks/RenderBlocks'
import { generateMeta } from '@/utilities/generateMeta'
export async function generateStaticParams() {
const payload = await getPayloadHMR({ config: configPromise })
const pages = await payload.find({
collection: 'pages',
draft: false,
limit: 1000,
overrideAccess: false,
})
const params = pages.docs
?.filter((doc) => {
return doc.slug !== 'home'
})
.map(({ slug }) => {
return { slug }
})
return params
}
type Args = {
params: Promise<{
slug?: string
}>
}
export default async function Page({ params: paramsPromise }: Args) {
const { slug = 'home' } = await paramsPromise
const url = '/' + slug
let page: PageType | null
page = await queryPageBySlug({
slug,
})
if (!page) {
return <PayloadRedirects url={url} />
}
const { hero, layout } = page
return (
<article className="pt-16 pb-24">
{/* Allows redirects for valid pages too */}
<PayloadRedirects disableNotFound url={url} />
<RenderBlocks blocks={layout} />
</article>
)
}
export async function generateMetadata({ params: paramsPromise }: { params: Promise<{ slug?: string }> }): Promise<Metadata> {
const { slug = 'home' } = await paramsPromise
const page = await queryPageBySlug({
slug,
})
return generateMeta({ doc: page })
}
const queryPageBySlug = cache(async ({ slug }: { slug: string }) => {
const { isEnabled: draft } = await draftMode()
const payload = await getPayloadHMR({ config: configPromise })```