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.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;