import React from "react"; import { allDocs } from "contentlayer/generated"; import { notFound } from "next/navigation"; import { format } from "date-fns"; import MDX from "@/components/MDX"; import { Text } from "@/components/retroui/Text"; import { Metadata } from "next"; import { MoveUpRightIcon } from "lucide-react"; import { generateToc } from "@/lib/toc"; import TableOfContents from "@/components/TableOfContents"; interface IProps { params: { slug: string[] }; } function getDocParams({ params }: IProps) { const slug = `/docs${params.slug ? `/${params.slug.join("/")}` : ""}`; const doc = allDocs.find((doc) => doc.url === slug); if (!doc) { return null; } return doc; } export async function generateMetadata({ params }: IProps): Promise { const doc = getDocParams({ params }); if (!doc) { return { title: "Not Found | Retro UI", }; } return { title: `${doc.title} | Retro UI`, description: doc.description, }; } export default async function page({ params }: IProps) { const doc = getDocParams({ params }); if (!doc) { return notFound(); } const toc = await generateToc(doc.body.raw); return ( <> {/* Main Content */}
{doc.title}

{doc.description}

{doc.links && (
{doc.links?.api_reference && ( API Reference )} {doc.links && doc.links?.source && ( Source )}
)}

Last Updated: {format(doc.lastUpdated, "dd MMM, yyy")}

{/* Table of Contents */}
); }