import React from 'react'; import { Badge } from '@/components/ui/badge'; import type { EventAddonSummary } from '../../api'; type Props = { addons: EventAddonSummary[]; t: (key: string, fallback: string, options?: Record) => string; }; export function AddonSummaryList({ addons, t }: Props) { if (!addons.length) { return null; } return (
{addons.map((addon) => (

{addon.label ?? addon.key}

{buildSummary(addon, t)}

{addon.purchased_at ? (

{t('events.sections.addons.purchasedAt', `Purchased ${new Date(addon.purchased_at).toLocaleString()}`, { date: new Date(addon.purchased_at).toLocaleString(), })}

) : null}
{t(`events.sections.addons.status.${addon.status}`, addon.status)}
))}
); } function buildSummary(addon: EventAddonSummary, t: (key: string, fallback: string, options?: Record) => string): string { const parts: string[] = []; if (addon.extra_photos > 0) { parts.push( t('events.sections.addons.summary.photos', `+${addon.extra_photos} photos`, { count: addon.extra_photos.toLocaleString(), }), ); } if (addon.extra_guests > 0) { parts.push( t('events.sections.addons.summary.guests', `+${addon.extra_guests} guests`, { count: addon.extra_guests.toLocaleString(), }), ); } if (addon.extra_gallery_days > 0) { parts.push( t('events.sections.addons.summary.gallery', `+${addon.extra_gallery_days} days gallery`, { count: addon.extra_gallery_days, }), ); } return parts.join(' ยท '); }