Files
postshop-frontend/app/[locale]/product/[slug]/page.tsx
2025-12-13 00:05:43 +05:00

38 lines
1.0 KiB
TypeScript

import type { Metadata } from "next";
import { notFound } from "next/navigation";
import ProductPageContent from "../../../../features/products/components/ProductPageContent";
type Props = {
params: { locale: string; slug: string };
};
export const revalidate = 3600; // ISR: Revalidate every hour
export async function generateMetadata({ params }: Props): Promise<Metadata> {
const { locale, slug } = await params;
return {
title: `Product ${slug} | E-Commerce`,
description: `View details for product ${slug}`,
openGraph: {
locale,
type: "website",
title: `Product ${slug} | E-Commerce`,
description: `View details for product ${slug}`,
},
};
}
export async function generateStaticParams() {
// Generate static params for popular products
return [{ slug: "nike-air-max" }, { slug: "adidas-ultraboost" }];
}
export default async function ProductPage(props: Props) {
const params = await props.params;
if (!params.slug) {
notFound();
}
return <ProductPageContent slug={params.slug} />;
}