import Link from 'next/link' import { DEFAULT_COMPANY_SLUG, siteFetchOrDefault } from '@/lib/api' import { getPublicSiteDictionary } from '@/lib/i18n' import { getPublicSiteLanguage } from '@/lib/i18n.server' import type { PublicSitePageSections } from '@rentaldrivego/types' import { resolvePageSectionsConfig } from '@/lib/pageSections' interface ReservationDetail { id: string status: string startDate: string endDate: string totalDays: number totalAmount: number vehicleCategory: string | null vehicle: { make: string; model: string; year: number } | null customer: { firstName: string; lastName: string; email: string } | null } interface PageProps { searchParams?: { id?: string } } interface BrandResponse { brand: { menuConfig?: { pageSections?: Partial | null } | null } | null } export const dynamic = 'force-dynamic' export default async function BookingConfirmationPage({ searchParams = {} }: PageProps) { const reservationId = searchParams.id const slug = DEFAULT_COMPANY_SLUG const dict = getPublicSiteDictionary(getPublicSiteLanguage()) const brand = await siteFetchOrDefault(`/site/${slug}/brand`, null) const pageSections = resolvePageSectionsConfig(brand?.brand?.menuConfig) const reservation = reservationId ? await siteFetchOrDefault( `/site/${slug}/booking/${reservationId}`, null, ) : null return (
{pageSections.bookingConfirmation.hero ? ( <>

{dict.confirmation.eyebrow}

{dict.confirmation.title}

{dict.confirmation.description}

) : null} {pageSections.bookingConfirmation.summary && reservation && (
{dict.confirmation.bookingSummary}
{reservation.vehicleCategory && ( )} {reservation.customer && ( )} {reservation.customer?.email && ( )} ${new Date(reservation.endDate).toLocaleDateString()} (${reservation.totalDays})`} />
)} {pageSections.bookingConfirmation.summary && !reservation && reservationId && (

{dict.confirmation.reference}: {reservationId}

)} {pageSections.bookingConfirmation.actions ?
{dict.confirmation.browseMoreVehicles} {dict.confirmation.backHome}
: null}
) } function Row({ label, value, valueClass = 'text-slate-700 font-medium', }: { label: string value: string valueClass?: string }) { return (
{label} {value}
) }