import type { ShopOffer } from '../data/mock'; interface Props { offers: ShopOffer[]; lowestPrice: number; sneakerData?: { item_id: string; item_name: string; item_brand: string; price: number; }; } export default function PriceComparisonTable({ offers, lowestPrice, sneakerData }: Props) { const sorted = [...offers].sort((a, b) => a.price - b.price); const handleOutboundClick = (offer: ShopOffer) => { if (!sneakerData) return; window.dataLayer = window.dataLayer || []; window.dataLayer.push({ ecommerce: null }); window.dataLayer.push({ event: 'select_promotion', ecommerce: { promotion_id: offer.shop, promotion_name: offer.shop, items: [sneakerData], }, }); window.dataLayer.push({ event: 'outbound_click', destination_url: offer.url, shop_name: offer.shop, }); }; return (

Prijsvergelijking

{sorted.map((offer, i) => (
{offer.shop} {offer.price === lowestPrice && ( LAAGSTE )}
{offer.inStock ? ( ✓ Op voorraad ) : ( ✗ Uitverkocht )} {offer.sizes.length > 0 && ( · {offer.sizes.length} maten )}
{offer.originalPrice && offer.originalPrice > offer.price && ( €{offer.originalPrice.toFixed(2).replace('.', ',')} )} €{offer.price.toFixed(2).replace('.', ',')}
handleOutboundClick(offer)} className={`rounded-xl px-4 py-2 text-sm font-bold transition-all ${ offer.inStock ? 'bg-accent text-bg hover:bg-accent-dim hover:shadow-lg hover:shadow-accent/20' : 'cursor-not-allowed bg-surface text-text-muted' }`} > Bekijk
))}
); }