import type { Metadata } from "vinext";
import { products } from "../../../src/main.jsx";
import ProductPageClient from "./ProductPageClient";

type ProductPageProps = {
  params: Promise<{ slug: string }> | { slug: string };
};

async function getSlug(params: ProductPageProps["params"]) {
  return "then" in params ? (await params).slug : params.slug;
}

export function generateStaticParams() {
  return products.map((product) => ({ slug: product.slug }));
}

export async function generateMetadata({ params }: ProductPageProps): Promise<Metadata> {
  const slug = await getSlug(params);
  const product = products.find((item) => item.slug === slug);

  return {
    title: product ? `${product.name} | livadacurod.ro` : "Produs | livadacurod.ro",
    description: product?.description ?? "Pagină de produs pentru material săditor certificat.",
  };
}

export default async function Page({ params }: ProductPageProps) {
  const slug = await getSlug(params);

  return <ProductPageClient slug={slug} />;
}

