import Link from 'next/link'; import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import { CheckCircleIcon, TicketIcon, ArrowDownTrayIcon, } from '@heroicons/react/24/outline'; import { Event } from '@/lib/api'; import { getSuccessContent } from '../_logic/booking'; import type { BookingResult } from '../_types'; interface SuccessStepProps { bookingResult: BookingResult; event: Event; locale: string; t: (key: string) => string; formatDate: (dateStr: string) => string; fmtTime: (dateStr: string) => string; } export function SuccessStep({ bookingResult, event, locale, t, formatDate, fmtTime, }: SuccessStepProps) { const successContent = getSuccessContent(bookingResult, locale, t); return (

{successContent.title}

{successContent.description}

{/* Multi-ticket indicator */} {bookingResult.ticketCount && bookingResult.ticketCount > 1 && (

{locale === 'es' ? `${bookingResult.ticketCount} tickets reservados` : `${bookingResult.ticketCount} tickets booked`}

{locale === 'es' ? 'Cada asistente recibirá su propio código QR' : 'Each attendee will receive their own QR code'}

)}
{bookingResult.qrCode} {bookingResult.ticketCount && bookingResult.ticketCount > 1 && ( +{bookingResult.ticketCount - 1} {locale === 'es' ? 'más' : 'more'} )}

{t('booking.success.event')}: {event.title}

{t('booking.success.date')}: {formatDate(event.startDatetime)}

{t('booking.success.time')}: {fmtTime(event.startDatetime)}

{t('booking.success.location')}: {event.location}

{bookingResult.paymentMethod === 'cash' && (

{t('booking.success.cashNote')}: {t('booking.success.cashDescription')}

)} {bookingResult.paymentMethod === 'bancard' && (

{t('booking.success.cardNote')}

)} {bookingResult.paymentMethod === 'lightning' && (

{locale === 'es' ? '¡Pago con Bitcoin Lightning recibido exitosamente!' : 'Bitcoin Lightning payment received successfully!'}

)}

{t('booking.success.emailSent')}

{/* Download Ticket Button - only for instant confirmation (Lightning) */} {bookingResult.paymentMethod === 'lightning' && (
{locale === 'es' ? (bookingResult.ticketCount && bookingResult.ticketCount > 1 ? 'Descargar Tickets' : 'Descargar Ticket') : (bookingResult.ticketCount && bookingResult.ticketCount > 1 ? 'Download Tickets' : 'Download Ticket')}
)}
); }