import React from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { CheckCircle, Download, Mail, Calendar, MapPin, Users } from 'lucide-react'; import Header from '@/components/Header'; import Footer from '@/components/Footer'; const OrderConfirmation = () => { const location = useLocation(); const navigate = useNavigate(); const orderData = location.state?.orderData; if (!orderData) { return (

Orden no encontrada

); } const downloadReceipt = () => { const receiptData = { ...orderData, downloadDate: new Date().toISOString() }; const dataStr = JSON.stringify(receiptData, null, 2); const dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr); const exportFileDefaultName = `karibeo-receipt-${orderData.id}.json`; const linkElement = document.createElement('a'); linkElement.setAttribute('href', dataUri); linkElement.setAttribute('download', exportFileDefaultName); linkElement.click(); }; return (
{/* Success Header */}

¡Reserva Confirmada!

Tu reserva ha sido procesada exitosamente. Recibirás un email de confirmación en breve.

{/* Order Details */}
Detalles de la Reserva
Número de Orden:

#{orderData.id}

Fecha de Reserva:

{new Date(orderData.date).toLocaleDateString('es-ES', { year: 'numeric', month: 'long', day: 'numeric' })}

Estado: {orderData.status === 'confirmed' ? 'Confirmada' : orderData.status}
Información de Contacto
Nombre:

{orderData.customerInfo.firstName} {orderData.customerInfo.lastName}

Email:

{orderData.customerInfo.email}

Teléfono:

{orderData.customerInfo.phone}

{/* Reserved Items */} Reservas Confirmadas
{orderData.items.map((item: any, index: number) => (
{item.title}

{item.title}

{item.location}
{item.selectedDate && (
Fecha: {item.selectedDate}
)} {item.guests && (
{item.guests} personas
)}
Cantidad: {item.quantity} ${(item.price * item.quantity).toFixed(2)}
))}
{/* Payment Summary */} Resumen de Pago
Subtotal: ${orderData.pricing.subtotal.toFixed(2)}
ITBIS (18%): ${orderData.pricing.taxes.toFixed(2)}
Fee de servicio (5%): ${orderData.pricing.serviceFee.toFixed(2)}

Total Pagado: ${orderData.pricing.total.toFixed(2)}
Pago procesado via { orderData.paymentInfo.method === 'credit_card' ? 'Tarjeta de Crédito' : orderData.paymentInfo.method === 'paypal' ? 'PayPal' : orderData.paymentInfo.method === 'bank_transfer' ? 'Transferencia Bancaria' : 'Efectivo' }
{orderData.paymentInfo.paymentIntentId && (

ID de Transacción: {orderData.paymentInfo.paymentIntentId}

)}
{/* Special Requests */} {orderData.specialRequests && ( Solicitudes Especiales

{orderData.specialRequests}

)} {/* Action Buttons */}
{/* Important Information */}

Información Importante:

  • • Recibirás un email de confirmación en los próximos 5 minutos
  • • Política de cancelación: Gratuita hasta 24 horas antes
  • • Para cambios o consultas, contacta al +1 (809) 123-4567
  • • Guarda este número de orden para futuras referencias: #{orderData.id}
); }; export default OrderConfirmation;