Files
openmaic/OpenMAIC/packages/docs/app/(intl)/[lang]/[...slug]/page.tsx
T

34 lines
1.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { source } from '@/lib/source';
import { notFound } from 'next/navigation';
import type { Metadata } from 'next';
import { RenderDocsPage } from '@/components/docs-page';
import { i18n } from '@/lib/i18n';
// Prefixed-locale docs page at /docs/<lang>/<slug> (requires >=1 slug segment,
// so it never collides with the default-locale single-segment /[slug] route).
export default async function Page(props: PageProps<'/[lang]/[...slug]'>) {
const { lang, slug } = await props.params;
return <RenderDocsPage slug={slug} lang={lang} />;
}
export function generateStaticParams() {
// Every NON-default locale × every slug.
const langs = i18n.languages.filter((l) => l !== i18n.defaultLanguage);
const params: { lang: string; slug: string[] }[] = [];
for (const lang of langs) {
for (const page of source.getPages(lang)) {
params.push({ lang, slug: page.slugs });
}
}
return params;
}
export async function generateMetadata(
props: PageProps<'/[lang]/[...slug]'>,
): Promise<Metadata> {
const { lang, slug } = await props.params;
const page = source.getPage(slug, lang);
if (!page) notFound();
return { title: page.data.title, description: page.data.description };
}