diff --git a/src/app/confirmation/page.tsx b/src/app/confirmation/page.tsx
index 6e33908..c40b781 100644
--- a/src/app/confirmation/page.tsx
+++ b/src/app/confirmation/page.tsx
@@ -6,8 +6,9 @@ import { useRouter } from "next/navigation";
import { useEffect } from "react";
import { useBooking } from "@/context/BookingContext";
import { useCurrency } from "@/context/CurrencyContext";
+import { formatEtb } from "@/lib/format-etb";
import { formatArrivalTimeDisplay } from "@/lib/formatArrivalTime";
-import { siteConfig } from "@/lib/mocks/site";
+import { siteConfig } from "@/lib/site-config";
export default function ConfirmationPage() {
const router = useRouter();
@@ -21,6 +22,8 @@ export default function ConfirmationPage() {
nights,
total,
resetBooking,
+ holdReference,
+ lastCreatedBooking,
} = useBooking();
const { formatUsd } = useCurrency();
@@ -41,11 +44,16 @@ export default function ConfirmationPage() {
Your booking is confirmed
- Thank you, {guest.firstName}. A mock itinerary email would be sent to {guest.email}.
+ Thank you, {guest.firstName}. Confirmation details have been sent to {guest.email}.
diff --git a/src/app/meetings/[slug]/page.tsx b/src/app/meetings/[slug]/page.tsx
index 94c64e9..dfe523b 100644
--- a/src/app/meetings/[slug]/page.tsx
+++ b/src/app/meetings/[slug]/page.tsx
@@ -3,12 +3,12 @@ import Link from "next/link";
import { notFound } from "next/navigation";
import { AmenityItem } from "@/components/AmenityItem";
import { MeetingHalfDayRate } from "@/components/MeetingHalfDayRate";
-import { roomAmenities } from "@/lib/mocks/amenities";
+import { roomAmenities } from "@/lib/data/amenities";
import {
getAllMeetingSlugs,
getMeetingSpaceBySlug,
-} from "@/lib/mocks/meetingSpaces";
-import { siteConfig } from "@/lib/mocks/site";
+} from "@/lib/data/meetingSpaces";
+import { siteConfig } from "@/lib/site-config";
import type { Metadata } from "next";
type Props = { params: Promise<{ slug: string }> };
diff --git a/src/app/payment/PaymentPageClient.tsx b/src/app/payment/PaymentPageClient.tsx
index 0a0e411..45be41f 100644
--- a/src/app/payment/PaymentPageClient.tsx
+++ b/src/app/payment/PaymentPageClient.tsx
@@ -6,9 +6,9 @@ import { useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import { useBooking } from "@/context/BookingContext";
import { useCurrency } from "@/context/CurrencyContext";
-import { siteConfig } from "@/lib/mocks/site";
+import { siteConfig } from "@/lib/site-config";
import { formatArrivalTimeDisplay } from "@/lib/formatArrivalTime";
-import { processPayment } from "@/lib/mocks/api";
+import { formatEtb } from "@/lib/format-etb";
export function PaymentPageClient() {
const router = useRouter();
@@ -27,6 +27,7 @@ export function PaymentPageClient() {
holdReference,
payLaterHold,
setConfirmation,
+ lastCreatedBooking,
} = useBooking();
const { formatUsd } = useCurrency();
@@ -38,26 +39,31 @@ export function PaymentPageClient() {
const [loading, setLoading] = useState(false);
useEffect(() => {
- if (!selectedRoom || !guest.email) {
+ if (!selectedRoom || !guest.email || !holdReference) {
router.replace("/booking");
}
- }, [selectedRoom, guest.email, router]);
+ }, [selectedRoom, guest.email, holdReference, router]);
- if (!selectedRoom) {
+ if (!selectedRoom || !holdReference) {
return null;
}
- const payLabel = `Confirm & pay ${formatUsd(total)}`;
+ const payTotal =
+ lastCreatedBooking?.totalPrice != null && Number.isFinite(lastCreatedBooking.totalPrice)
+ ? lastCreatedBooking.totalPrice
+ : total;
+ const payIsEtb =
+ lastCreatedBooking?.currency === "ETB" || selectedRoom?.priceCurrency === "ETB";
+ const payLabel = payIsEtb
+ ? `Confirm & pay ${formatEtb(payTotal, 2)}`
+ : `Confirm & pay ${formatUsd(payTotal)}`;
async function handlePay() {
setLoading(true);
try {
- const last4 = cardNumber.replace(/\D/g, "").slice(-4) || "0000";
- const result = await processPayment({
- totalCents: Math.round(total * 100),
- last4,
- });
- setConfirmation(result.confirmationId, result.paidAt);
+ // Card UI is a placeholder; settlement is at the hotel until Stripe is wired.
+ const id = lastCreatedBooking?.id ?? holdReference ?? "confirmed";
+ setConfirmation(id, new Date().toISOString());
router.push("/confirmation");
} finally {
setLoading(false);
@@ -68,7 +74,8 @@ export function PaymentPageClient() {
Payment
- Mock form only — read our privacy policy before a real launch.
+ Payment gateway is not connected yet — confirming here records intent; settle at the front desk
+ or add a card processor later.