import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { JsonLd } from "@/components/CmsMeta"; import { asRichHtml, getBlogBySlug, safe } from "@/lib/catalog"; type PageProps = { params: Promise<{ slug: string }> }; export async function generateMetadata({ params }: PageProps): Promise { const { slug } = await params; const data = await safe(getBlogBySlug(slug), null); if (!data) return { title: "نوشته پیدا نشد" }; const title = data.blog.seoMetaTitle || data.blog.title || data.blog.nameFa || slug; const description = data.blog.seoMetaDescription || data.blog.summary || title; const image = data.blog.thumbnailUrl || data.blog.image; return { title, description, openGraph: image ? { title, description, images: [{ url: image, alt: title }] } : { title, description }, }; } export default async function BlogDetailPage({ params }: PageProps) { const { slug } = await params; const data = await safe(getBlogBySlug(slug), null); if (!data) notFound(); const blog = data.blog; const title = blog.title || blog.nameFa || slug; const html = asRichHtml(blog.contentHtml || blog.descriptionHtml); const image = blog.thumbnailUrl || blog.image; return (
{blog.categoryNameFa ?

{blog.categoryNameFa}

: null}

{title}

{blog.summary ?

{blog.summary}

: null}
{image ? (
{/* eslint-disable-next-line @next/next/no-img-element */} {title}
) : null} {html ? (
) : (

متن این نوشته هنوز تکمیل نشده است.

)} بازگشت به مجله
); }