"use client" import { useIntl } from "react-intl" import { CancellationRuleEnum } from "@/constants/booking" import { useBookingConfirmationStore } from "@/stores/booking-confirmation" 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 RoomSkeletonLoader from "./RoomSkeletonLoader" import styles from "./room.module.css" import type { BookingConfirmationReceiptRoomProps } from "@/types/components/hotelReservation/bookingConfirmation/receipt" export default function ReceiptRoom({ roomIndex, }: BookingConfirmationReceiptRoomProps) { const intl = useIntl() const room = useBookingConfirmationStore((state) => state.rooms[roomIndex]) const currencyCode = useBookingConfirmationStore( (state) => state.currencyCode ) if (!room) { return } return (
{room.name} {room.rateDefinition.isMemberRate ? (
{formatPrice(intl, room.roomPrice, currencyCode)}
) : ( {formatPrice(intl, room.roomPrice, currencyCode)} )} {intl.formatMessage( { id: "{totalAdults, plural, one {# adult} other {# adults}}" }, { totalAdults: room.adults, } )} {room.rateDefinition.cancellationText} {intl.formatMessage({ id: "Reservation policy" })} } title={room.rateDefinition.cancellationText || ""} subtitle={ room.rateDefinition.cancellationRule === CancellationRuleEnum.CancellableBefore6PM ? intl.formatMessage({ id: "Pay later" }) : intl.formatMessage({ id: "Pay now" }) } >
{room.rateDefinition.generalTerms?.map((info) => ( {info} ))}
{room.bedDescription} {formatPrice(intl, 0, currencyCode)}
{intl.formatMessage({ id: "Breakfast buffet" })} {(room.rateDefinition.breakfastIncluded ?? room.breakfastIncluded) ? ( {intl.formatMessage({ id: "Included" })} ) : null} {room.selectedBreakfast ? ( {formatPrice( intl, room.selectedBreakfast.totalPrice, room.selectedBreakfast.currency )} ) : null}
) }