import { notFound } from "next/navigation"; import type { Metadata } from "next"; import { getProductBySlug } from "@/services/product.service"; import { getPreviewOrFallback } from "@/services/preview.service"; import { BlockRenderer } from "@/blocks/BlockRenderer"; import type { ProductPageDetail } from "@/types/wagtail"; interface ProductDetailPageProps { params: Promise<{ slug: string }>; } export async function generateMetadata({ params, }: ProductDetailPageProps): Promise { const { slug } = await params; const product = await getProductBySlug(slug).catch(() => null); return { title: product?.title ?? "产品未找到" }; } export default async function ProductDetailPage({ params, }: ProductDetailPageProps) { const { slug } = await params; const product = await getPreviewOrFallback( "products.productpage", "body,summary", () => getProductBySlug(slug).catch(() => null), ); if (!product) { notFound(); } return (

{product.title}

{product.summary && (

{product.summary}

)}
); }