import { dt } from "@/lib/dt" import Button from "@/components/TempDesignSystem/Button" import Divider from "@/components/TempDesignSystem/Divider" import Link from "@/components/TempDesignSystem/Link" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { getIntl } from "@/i18n" import { getLang } from "@/i18n/serverContext" import { formatPrice } from "@/utils/numberFormatting" import styles from "./referenceCard.module.css" import type { Hotel } from "@/types/hotel" import type { BookingConfirmation } from "@/types/trpc/routers/booking/confirmation" export async function ReferenceCard({ booking, hotel, }: { booking: BookingConfirmation["booking"] hotel: Hotel }) { const intl = await getIntl() const lang = getLang() const fromDate = dt(booking.checkInDate).locale(lang) const toDate = dt(booking.checkOutDate).locale(lang) const directionsUrl = `https://www.google.com/maps/dir/?api=1&destination=${hotel.location.latitude},${hotel.location.longitude}` return (
{intl.formatMessage({ id: "Reference" })} {intl.formatMessage({ id: "Reference number" })} {booking.confirmationNumber}
{intl.formatMessage({ id: "Guests" })} {booking.childrenAges.length > 0 ? intl.formatMessage( { id: "{adults} adults, {children} children" }, { adults: booking.adults, children: booking.childrenAges.length, } ) : intl.formatMessage( { id: "{adults} adults" }, { adults: booking.adults, } )}
{intl.formatMessage({ id: "Check-in" })} {`${fromDate.format("dddd, D MMMM")} ${intl.formatMessage({ id: "from" })} ${fromDate.format("HH:mm")}`}
{intl.formatMessage({ id: "Check-out" })} {`${toDate.format("dddd, D MMMM")} ${intl.formatMessage({ id: "from" })} ${toDate.format("HH:mm")}`}
{intl.formatMessage({ id: "Total paid" })} {formatPrice(intl, booking.totalPrice, booking.currencyCode)}
{booking.rateDefinition.cancellationRule !== "NotCancellable" && ( {intl.formatMessage( { id: "Changes can be made until {time} on {date}, subject to availability. Room rates may vary.", }, { date: fromDate.format("D MMMM"), time: "18:00", } )} )}
) }