import BlogContent from "@/sections/BlogContent" import getPostMetadata from "@/utils/getPostMetaData" import { headers } from "next/headers" import React from "react" import Spacer from "@/components/Utilities/Spacer" import pb from "@/lib/pocketbase" import Footer from "@/components/Footer" import Background from "@/components/Utilities/Background" export async function generateMetadata({ params }) { const { slug } = params const headersList = headers() const siteURL = headersList.get("host") pb.autoCancellation(false) const post = await pb.collection("blog").getFirstListItem(`slug="${slug}"`, { requestKey: "metaData" }) pb.autoCancellation(true) return { title: `${post.title} | FastPocket`, authors: [ { name: post.author || "Samuel Wyndham" } ], description: post.description, keywords: post.keywords, openGraph: { title: `${post.title} | FastPocket`, description: post.description, type: "article", url: `https://${siteURL}/blogs/${post.slug}`, publishedTime: post.created, modifiedTime: post.updated, authors: [`https://${siteURL}/about`], images: [ { url: `${post.imageUrl}`, width: 1024, height: 576, alt: post.title, type: "image/png" } ] }, twitter: { card: "summary_large_image", site: "@meinbiz", creator: "@meinbiz", title: `${post.title} | FastPocket`, description: post.description, images: [ { url: `${post.imageUrl}`, width: 1024, height: 576, alt: post.title } ] }, alternates: { canonical: `https://${siteURL}/blogs/${post.slug}` } } } export const generateStaticParams = async () => { const posts = await getPostMetadata() console.log("static posts", posts.length) const mappedPosts = posts.map(post => ({ slug: post.slug })) return mappedPosts } const PostPage = async props => { console.log("params", props.params) const post = await pb .collection("blog") .getFirstListItem(`slug="` + props.params.slug + `"`, { requestKey: "post" }) return (
) } export default PostPage