import type { CoffeeItem } from '../hooks/getActiveCoffees'; type SelectedEntry = { coffee: CoffeeItem; quantity: number; }; type Props = { selectedEntries: SelectedEntry[]; shippingLoading: boolean; isFreeShippingSelected: boolean; selectedShippingFee: number; totalNetWithShipping: number; totalCapsules: number; packsSelected: number; selectedPlanCapsules: number; requiredPacks: number; canProceed: boolean; onProceed: () => void; title: string; emptyText: string; continueText: string; }; export default function SelectionSummaryCard({ selectedEntries, shippingLoading, isFreeShippingSelected, selectedShippingFee, totalNetWithShipping, totalCapsules, packsSelected, selectedPlanCapsules, requiredPacks, canProceed, onProceed, title, emptyText, continueText, }: Props) { return (

{title}

{selectedEntries.length === 0 &&

{emptyText}

} {selectedEntries.map((entry) => (
{entry.coffee.name} {entry.quantity} pcs • EUR {entry.coffee.pricePer10}/10
EUR {((entry.quantity / 10) * entry.coffee.pricePer10).toFixed(2)}
))}
Shipping {shippingLoading ? 'Loading...' : isFreeShippingSelected ? 'FREE SHIPPING' : `EUR ${selectedShippingFee.toFixed(2)}`}
Total (net) EUR {totalNetWithShipping.toFixed(2)}
Selected: {totalCapsules} capsules ({packsSelected} packs of 10). Target: {selectedPlanCapsules} capsules ({requiredPacks} packs). {packsSelected !== requiredPacks && ( {packsSelected < requiredPacks ? `${requiredPacks - packsSelected} packs missing.` : `${packsSelected - requiredPacks} packs too many.`} )}
{!canProceed && (

You can continue once exactly {selectedPlanCapsules} capsules ({requiredPacks} packs) are selected.

)}
); }