"use client" import { useIntl } from "react-intl" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import { Typography } from "@scandic-hotels/design-system/Typography" import { CancellationRuleEnum } from "@/constants/booking" import { dt } from "@/lib/dt" import Image from "@/components/Image" import Link from "@/components/TempDesignSystem/Link" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import useLang from "@/hooks/useLang" import styles from "./room.module.css" import type { RoomProps } from "@/types/components/hotelReservation/bookingConfirmation/rooms/room" export default function Room({ checkInDate, checkOutDate, checkInTime, checkOutTime, confirmationNumber, guaranteeInfo, guest, img, rateDefinition, roomName, }: RoomProps) { const intl = useIntl() const lang = useLang() const guestName = `${guest.firstName} ${guest.lastName}` const fromDate = dt(checkInDate).locale(lang) const toDate = dt(checkOutDate).locale(lang) const isFlexBooking = rateDefinition.cancellationRule === CancellationRuleEnum.CancellableBefore6PM const isChangeBooking = rateDefinition.cancellationRule === CancellationRuleEnum.Changeable return (

{intl.formatMessage( { defaultMessage: "Booking number {value}", }, { value: confirmationNumber } )}

{rateDefinition.isMemberRate ? (
<> {intl.formatMessage({ defaultMessage: "Membership benefits applied", })}
) : null} {guaranteeInfo && (

{intl.formatMessage({ defaultMessage: "Booking guaranteed.", })}

{/* eslint-disable formatjs/no-literal-string-in-jsx */}{" "} {/* eslint-enable formatjs/no-literal-string-in-jsx */}

{intl.formatMessage({ defaultMessage: "Your room will remain available for check-in even after 18:00.", })}

)}
{img.metaData.altText}
{roomName} {intl.formatMessage({ defaultMessage: "View room details", })}
  • {intl.formatMessage({ defaultMessage: "Check-in", })} {intl.formatMessage( { defaultMessage: "{checkInDate} from {checkInTime}", }, { checkInDate: fromDate.format("ddd, D MMM"), checkInTime: checkInTime, } )}
  • {intl.formatMessage({ defaultMessage: "Check-out", })} {intl.formatMessage( { defaultMessage: "{checkOutDate} from {checkOutTime}", }, { checkOutDate: toDate.format("ddd, D MMM"), checkOutTime: checkOutTime, } )}
  • {intl.formatMessage({ defaultMessage: "Cancellation policy", })} {rateDefinition.cancellationText}
  • {isFlexBooking || isChangeBooking ? (
  • {intl.formatMessage({ defaultMessage: "Change or cancel", })} {intl.formatMessage( { defaultMessage: "Until {time}, {date}", }, { time: "18:00", date: fromDate.format("dddd D MMM") } )}
  • ) : null}
{intl.formatMessage({ defaultMessage: "Main guest", })} {guestName} {guest.membershipNumber ? ( {intl.formatMessage( { defaultMessage: "Friend no. {value}", }, { value: guest.membershipNumber, } )} ) : null} {guest.phoneNumber ? ( {guest.phoneNumber} ) : null} {guest.email ? ( {guest.email} ) : null}
) }