import React, { useEffect, useMemo } from 'react'; import { Container, Typography, Box, Button, Paper, Divider } from '@mui/material'; import { useLocation, Link } from 'react-router-dom'; const BookingConfirmation = () => { const location = useLocation(); const request = location.state?.request || null; const WA_NUMBER = useMemo(() => { return '963986105010'; }, []); const waText = useMemo(() => { if (!request) { return encodeURIComponent('Hello, I would like to book a room at Old Vine Hotel.'); } const lines = [ 'New booking request from website:', `Name: ${request.fullName || ''}`, `Phone: ${request.phone || ''}`, request.email ? `Email: ${request.email}` : null, request.checkInDate ? `Check-in: ${new Date(request.checkInDate).toLocaleDateString()}` : null, request.checkOutDate ? `Check-out: ${new Date(request.checkOutDate).toLocaleDateString()}` : null, request.adults != null ? `Adults: ${request.adults}` : null, request.children != null ? `Children: ${request.children}` : null, request.roomCategory ? `Category: ${request.roomCategory}` : null, request.message ? `Message: ${request.message}` : null, ].filter(Boolean); return encodeURIComponent(lines.join('\n')); }, [request]); const WA_LINK = useMemo(() => `https://wa.me/${WA_NUMBER}?text=${waText}`, [WA_NUMBER, waText]); useEffect(() => { // ✅ Auto open WhatsApp (more reliable than window.open): redirect same tab if (!request?.autoOpenWhatsApp) return; if (!WA_LINK) return; // prevent loop on refresh/back const key = `wa_opened_${request.bookingNumber || request.phone || 'latest'}`; if (sessionStorage.getItem(key)) return; sessionStorage.setItem(key, '1'); const t = setTimeout(() => { window.location.href = WA_LINK; }, 600); return () => clearTimeout(t); }, [request, WA_LINK]); return ( Confirm Your Booking on WhatsApp Almost done — please send the WhatsApp message ✅ Your request has been recorded. To complete the booking, tap Open WhatsApp below and press Send. Our team will reply to confirm availability. {request && ( <> Request Summary Name: {request.fullName || '—'} Phone: {request.phone || '—'} {request.email && Email: {request.email}} {request.roomCategory && Category: {request.roomCategory}} {request.checkInDate && Check-in: {new Date(request.checkInDate).toLocaleDateString()}} {request.checkOutDate && Check-out: {new Date(request.checkOutDate).toLocaleDateString()}} {(request.adults != null || request.children != null) && ( Guests: {request.adults ?? 0} adults, {request.children ?? 0} children )} {request.message && Message: {request.message}} )} {!request && ( (No request details were passed to this page.) )} ); }; export default BookingConfirmation;