import { cache } from 'react'; import type { Metadata } from 'next'; import { notFound } from 'next/navigation'; import { ContentRenderer, createCmsClient } from '@kit/cms'; import { cn } from '@kit/ui/utils'; const getPageBySlug = cache(pageLoader); interface DocumentationPageProps { params: Promise<{ slug: string[] }>; } async function pageLoader(slug: string) { const client = await createCmsClient(); return client.getContentItemBySlug({ slug, collection: 'documentation' }); } export async function generateMetadata({ params, }: DocumentationPageProps): Promise { const slug = (await params).slug.join('/'); const page = await getPageBySlug(slug); if (!page) { notFound(); } const { title, description } = page; return { title, description, }; } async function DocumentationPage({ params }: DocumentationPageProps) { const slug = (await params).slug.join('/'); const page = await getPageBySlug(slug); if (!page) { notFound(); } const description = page?.description ?? ''; return (

{page.title}

{description}

); } export default DocumentationPage;