/* eslint-disable @next/next/no-img-element */ import React from "react"; type ServiceOption = { id: string; name: string; deliveryDate: string; price: number; currency: string; badge?: "Cheapest" | "Best Value" | "Fastest"; }; type ServiceCardProps = { logo: string; // URL or path to logo image carrierName: string; services: ServiceOption[]; selectedServiceId: string | null; onSelect: (serviceId: string) => void; color: string; // Brand color for header }; const ServiceCard: React.FC = ({ logo, carrierName, services, selectedServiceId, onSelect, color, }) => { const [isOpen, setIsOpen] = React.useState(true); return (
{/* Header */}
setIsOpen(!isOpen)} >
{/* Placeholder for logo if image fails or is not provided */} {logo ? ( {carrierName} ) : ( carrierName.substring(0, 2).toUpperCase() )}
{carrierName}
{/* Services List */} {isOpen && (
{services.map((service) => { const isSelected = selectedServiceId === service.id; return (
onSelect(service.id)} style={{ backgroundColor: isSelected ? "#b8e6d9" : "white", position: "relative", }} >
{service.name} {service.badge && ( {service.badge} )}
{isSelected && ( )} {!isSelected && (
)}
{service.deliveryDate}
Delivery Date
{service.price.toFixed(3)}
{service.currency}
); })}
)}
); }; export default ServiceCard;