mirror of
https://github.com/LukeHagar/better-auth.git
synced 2025-12-10 04:19:32 +00:00
86 lines
1.8 KiB
TypeScript
86 lines
1.8 KiB
TypeScript
import { getPage, getPages } from "@/app/source";
|
|
import type { Metadata } from "next";
|
|
import { DocsPage, DocsBody, DocsTitle } from "fumadocs-ui/page";
|
|
import { notFound } from "next/navigation";
|
|
import { absoluteUrl } from "@/lib/utils";
|
|
|
|
export default async function Page({
|
|
params,
|
|
}: {
|
|
params: { slug?: string[] };
|
|
}) {
|
|
const page = getPage(params.slug);
|
|
|
|
if (page == null) {
|
|
notFound();
|
|
}
|
|
const MDX = page.data.exports.default;
|
|
|
|
return (
|
|
<DocsPage
|
|
toc={page.data.exports.toc}
|
|
full={page.data.full}
|
|
editOnGithub={{
|
|
owner: "better-auth",
|
|
repo: "better-auth",
|
|
path: "/docs/content/docs",
|
|
}}
|
|
tableOfContent={{
|
|
style: "clerk",
|
|
header: <div className="h-4 w-10"></div>,
|
|
}}
|
|
footer={{
|
|
enabled: false,
|
|
}}
|
|
>
|
|
<DocsTitle>{page.data.title}</DocsTitle>
|
|
<DocsBody>
|
|
<MDX />
|
|
</DocsBody>
|
|
</DocsPage>
|
|
);
|
|
}
|
|
|
|
export async function generateStaticParams() {
|
|
return getPages().map((page) => ({
|
|
slug: page.slugs,
|
|
}));
|
|
}
|
|
|
|
export function generateMetadata({ params }: { params: { slug?: string[] } }) {
|
|
const page = getPage(params.slug);
|
|
if (page == null) notFound();
|
|
const baseUrl = process.env.NEXT_APP_PUBLIC_URL;
|
|
const url = new URL(`${baseUrl}/api/og`);
|
|
const { title, description } = page.data;
|
|
const pageSlug = page.file.path;
|
|
url.searchParams.set("type", "Documentation");
|
|
url.searchParams.set("mode", "dark");
|
|
url.searchParams.set("heading", `${title}`);
|
|
|
|
return {
|
|
title,
|
|
description,
|
|
openGraph: {
|
|
title,
|
|
description,
|
|
type: "Documentation",
|
|
url: absoluteUrl(`docs/${pageSlug}`),
|
|
images: [
|
|
{
|
|
url: url.toString(),
|
|
width: 1200,
|
|
height: 630,
|
|
alt: title,
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: "summary_large_image",
|
|
title,
|
|
description,
|
|
images: [url.toString()],
|
|
},
|
|
};
|
|
}
|