import { NotionAPI } from "notion-client"; import Image from "next/image"; import { getPageImageUrls, getPageTitle } from "notion-utils"; import "@/components/notion/notion.scss"; import "react-notion-x/src/styles.css"; import "prismjs/themes/prism-tomorrow.css"; import { BackgroundGradentProvider } from "@/components/gradient-provider"; import GrainProvider from "@/components/grain"; import { Footer } from "../Footer"; import { Connect } from "../Connect"; import { Home } from "lucide-react"; import Link from "next/link"; import { NRenderer } from "@/components/notion/renderer"; import { Metadata, ResolvingMetadata } from "next"; export const revalidate = 100; type Props = { searchParams: { id?: string }; }; export async function generateMetadata( { searchParams }: Props, parent: ResolvingMetadata, ): Promise { const notion = new NotionAPI(); const recordMap = await notion.getPage(searchParams.id!); const title = getPageTitle(recordMap); const images = getPageImageUrls(recordMap, { mapImageUrl: (url) => url }); const previousImages = (await parent).openGraph?.images || []; return { title: title, description: "Written by raj", openGraph: { images: [...images, ...previousImages], }, twitter: { images: [...images, ...previousImages], }, }; } export default async function Story({ searchParams, }: { searchParams: { id?: string }; }) { if (!searchParams.id) return null; const notion = new NotionAPI(); const recordMap = await notion.getPage(searchParams.id); const title = getPageTitle(recordMap); const images = getPageImageUrls(recordMap, { mapImageUrl: (url) => url }); return (
{title}

{title}

Home
); }