import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { Container } from "@/components/Container"; import { AddToCart } from "@/components/product/AddToCart"; import { ProductGallery } from "@/components/product/ProductGallery"; import { ProductTabs } from "@/components/product/ProductTabs"; import { fetchComments } from "@/lib/comments"; import { formatPrice } from "@/lib/format"; import { brandName, fetchCatalogProductByTitle, fetchStoreItemByProduct, fetchStoreVariant, galleryUrls, variantTitle, } from "@/lib/store"; export const revalidate = 60; export async function generateMetadata({ params, }: { params: Promise<{ id: string }>; }): Promise { const { id } = await params; const variant = await fetchStoreVariant(id); return { title: variant ? `${variantTitle(variant)} | داروخانه دکتر ارجمند` : "محصول", }; } export default async function ProductDetailsPage({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; const variant = await fetchStoreVariant(id); if (!variant) notFound(); const [catalog, storeItem, comments] = await Promise.all([ fetchCatalogProductByTitle(variant.productNameFa || variant.productTitle, variant.productId), variant.productId ? fetchStoreItemByProduct(variant.productId) : Promise.resolve({ storeItem: undefined }), variant.productId ? fetchComments("product", variant.productId) : Promise.resolve([]), ]); const images = galleryUrls(catalog, variant.productImage); const price = variant.discountedPrice ?? variant.price; const oldPrice = variant.discountedPrice != null ? variant.price : null; const title = catalog?.nameFa || variantTitle(variant); const brand = brandName(catalog); const variants = storeItem.storeItem?.variants ?? []; const inStock = variant.stockQuantity == null || variant.stockQuantity > 0; return (

خانه / محصولات / {title}

{brand ?

{brand}

: null}

{title}

{variant.label && variant.label !== title ? (

{variant.label}

) : null}
{oldPrice ?

{formatPrice(oldPrice)} تومان

: null}

{price != null ? ( <> {formatPrice(price)} تومان ) : ( برای قیمت تماس بگیرید )}

{inStock ? "موجود در داروخانه" : "ناموجود"}

{variants.length > 1 ? (
{variants.map((item) => ( {item.label || variantTitle(item)} ))}
) : null} {inStock ? : null}
); }