"use client" import { useIntl } from "react-intl" import { CheckIcon, InfoCircleIcon } from "@/components/Icons" import Modal from "@/components/Modal" import Button from "@/components/TempDesignSystem/Button" import Link from "@/components/TempDesignSystem/Link" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import { formatPrice } from "@/utils/numberFormatting" import styles from "./room.module.css" import type { BookingConfirmationReceiptRoomProps } from "@/types/components/hotelReservation/bookingConfirmation/receipt" import { BreakfastPackageEnum } from "@/types/enums/breakfast" export default function ReceiptRoom({ booking, room, roomNumber, }: BookingConfirmationReceiptRoomProps) { const intl = useIntl() const breakfastPkgSelected = booking.packages.find( (pkg) => pkg.code === BreakfastPackageEnum.REGULAR_BREAKFAST ) const breakfastPkgIncluded = booking.packages.find( (pkg) => pkg.code === BreakfastPackageEnum.FREE_MEMBER_BREAKFAST ) return (
{roomNumber !== null ? ( {intl.formatMessage( { id: "Room {roomIndex}" }, { roomIndex: roomNumber } )} ) : null}
{room.name} {booking.rateDefinition.isMemberRate ? (
{formatPrice(intl, booking.roomPrice, booking.currencyCode)}
) : ( {formatPrice(intl, booking.roomPrice, booking.currencyCode)} )} {intl.formatMessage( { id: "{totalAdults, plural, one {# adult} other {# adults}}" }, { totalAdults: booking.adults, } )} {booking.rateDefinition.cancellationText} {intl.formatMessage({ id: "Reservation policy" })} } title={booking.rateDefinition.cancellationText || ""} subtitle={ booking.rateDefinition.cancellationRule == "CancellableBefore6PM" ? intl.formatMessage({ id: "Pay later" }) : intl.formatMessage({ id: "Pay now" }) } >
{booking.rateDefinition.generalTerms?.map((info) => ( {info} ))}
{room.bedType.description} {formatPrice(intl, 0, booking.currencyCode)}
{intl.formatMessage({ id: "Breakfast buffet" })} {(booking.rateDefinition.breakfastIncluded ?? breakfastPkgIncluded) ? ( {intl.formatMessage({ id: "Included" })} ) : null} {breakfastPkgSelected ? ( {formatPrice( intl, breakfastPkgSelected.totalPrice, breakfastPkgSelected.currency )} ) : null}
) }