From b3ab5d56cf50c300f6ef48a315ea4b1ffb1db8ba Mon Sep 17 00:00:00 2001 From: Aman Bhogal Date: Fri, 29 Nov 2024 20:38:52 +0000 Subject: [PATCH] feat: add dynamic work page --- src/app/(frontend)/work/[slug]/page.tsx | 36 +++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/app/(frontend)/work/[slug]/page.tsx b/src/app/(frontend)/work/[slug]/page.tsx index 6c1d75b..fa409a8 100644 --- a/src/app/(frontend)/work/[slug]/page.tsx +++ b/src/app/(frontend)/work/[slug]/page.tsx @@ -1,7 +1,39 @@ -export default async function Page() { +import { getPayload } from 'payload'; +import configPromise from '@payload-config'; +import { Metadata, ResolvingMetadata } from 'next'; + +interface Props { + params: Promise<{ slug: string }> +} + +export async function generateMetadata({ params }: Props, _: ResolvingMetadata): Promise { + const { slug } = await params; + + const payload = await getPayload({ + config: configPromise, + }); + + const data = await payload.find({ + collection: 'projects', + depth: 2, + where: { + slug: { + equals: slug, + }, + }, + }); + + return { + description: data.docs.find((doc) => doc.slug === slug)?.description?.toString() || '', + title: `${data.docs.find((doc) => doc.slug === slug)?.title} | Aman Singh Bhogal`, + }; +} + +export default async function Page({ params }: Props) { + const { slug } = await params; return (
-

Page

+

{slug}

); }