"use client"; type RetailerOffer = { id?: string | number; retailer: string; price: number; originalPrice?: number; url: string; affiliateUrl?: string; inStock: boolean; }; interface RetailersListProps { retailers: RetailerOffer[]; } export function RetailersList({ retailers }: RetailersListProps) { if (retailers.length === 0) { return (
No retailer offers available.
); } const lowestPrice = Math.min(...retailers.map((r) => r.price)); return (
Available Retailers
{retailers.length} retailer{retailers.length !== 1 ? "s" : ""} found
{retailers.map((retailer) => { const isLowestPrice = retailer.price === lowestPrice; const isOnSale = retailer.originalPrice !== undefined; return (
{retailer.retailer} {isLowestPrice && retailer.inStock && ( Best Price )} {!retailer.inStock && ( Out of Stock )}
${retailer.price.toFixed(2)} {isOnSale && retailer.originalPrice && ( ${retailer.originalPrice.toFixed(2)} )}
{retailer.inStock ? "Buy Now" : "Unavailable"}
); })}
); }