import { getPageImage, getPage, source } from '@/lib/source'; import { DocsBody, DocsDescription, DocsPage, DocsTitle, } from 'fumadocs-ui/layouts/docs/page'; import { notFound } from 'next/navigation'; import { getMDXComponents } from '@/mdx-components'; import type { Metadata } from 'next'; import { createRelativeLink } from 'fumadocs-ui/mdx'; import { Callout } from 'fumadocs-ui/components/callout'; import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; import { Feedback } from '@/components/feedback'; export default async function Page(props: any) { const params = await props.params; const { page, source: pageSource } = getPage(params.slug); if (!page) notFound(); const MDX = page.data.body; return ( {page.data.title} {page.data.description} ); } export const dynamicParams = true; export const revalidate = 3600; export async function generateStaticParams() { return source.generateParams(); } export async function generateMetadata( props: any, ): Promise { const params = await props.params; const { page } = getPage(params.slug); if (!page) notFound(); const baseUrl = 'https://zitadel.com/docs'; const url = params.slug ? `${baseUrl}/${params.slug.join('/')}` : baseUrl; let canonicalUrl = url; if (params.slug?.[0]?.startsWith('v')) { const unversionedSlug = params.slug.slice(1); const unversionedPage = source.getPage(unversionedSlug); if (unversionedPage) { canonicalUrl = `${baseUrl}${unversionedPage.url === '/' ? '' : unversionedPage.url}`; } } return { title: page.data.title, description: page.data.description, alternates: { canonical: canonicalUrl, }, openGraph: { images: getPageImage(page).url, }, }; }