"use client"; import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { useBooking } from "@/context/BookingContext"; import { useCurrency } from "@/context/CurrencyContext"; import { formatArrivalTimeDisplay } from "@/lib/formatArrivalTime"; import { siteConfig } from "@/lib/mocks/site"; export default function ReserveHeldPage() { const router = useRouter(); const { holdReference, selectedRoom, guest, checkIn, checkOut, nights, total, payLaterHold, resetBooking, } = useBooking(); const { formatUsd } = useCurrency(); useEffect(() => { if (!holdReference || !selectedRoom) { router.replace("/booking"); return; } if (!payLaterHold) { router.replace("/payment"); } }, [holdReference, selectedRoom, payLaterHold, router]); if (!holdReference || !selectedRoom || !payLaterHold) { return null; } return (

Reservation on hold

{guest.firstName}, your room is saved — finish payment whenever you're ready in this browser session. (Demo: no real hold or email.)

Hold ref: {holdReference}

Indicative total when you pay:{" "} {formatUsd(total)}

{selectedRoom.name}

{siteConfig.name}

{selectedRoom.name}

{checkIn} → {checkOut} · {nights} night{nights !== 1 ? "s" : ""}

Flight {guest.flightBookingNumber.trim()} · arrival{" "} {formatArrivalTimeDisplay(guest.arrivalTime)}

Complete payment resetBooking()} className="mt-4 block text-center text-sm font-medium text-[var(--color-primary)] hover:underline" > Back to home — discard this hold
); }