"use client"; import Image from "next/image"; import Link from "next/link"; import { useState } from "react"; import { useCart } from "@/contexts/CartContext"; import { ProductSocialBlock } from "@/components/shop/ProductSocialBlock"; import { resolveProductImage, type ShopCurrency, type ShopProduct } from "@/lib/shopCatalog"; import { getProductSocialMetrics } from "@/lib/shopProductSocial"; const SYM: Record = { BTC: "₿", ETH: "Ξ", USD: "$", XMR: "⏣" }; function formatPrice(price: number, currency: ShopCurrency): string { if (currency === "BTC") return price.toFixed(6); if (currency === "ETH") return price.toFixed(4); if (currency === "XMR") return price.toFixed(3); return price.toFixed(2); } export function VendorShelfRow({ product }: { product: ShopProduct }) { const { addToCart, hydrated } = useCart(); const [flash, setFlash] = useState(false); const src = resolveProductImage(product); const metrics = getProductSocialMetrics(product.id); return (
  • {product.category}

    {product.name}

    {product.description}

    {SYM[product.currency]} {formatPrice(product.price, product.currency)} {product.currency}

    Verified note

    “{metrics.testimonials[0]?.text}”

    Cart
  • ); }