"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 (
{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)}
{siteConfig.name}
{selectedRoom.name}
{checkIn} → {checkOut} · {nights} night{nights !== 1 ? "s" : ""}
Flight {guest.flightBookingNumber.trim()} · arrival{" "} {formatArrivalTimeDisplay(guest.arrivalTime)}