"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 Caption from "@/components/TempDesignSystem/Text/Caption" import useLang from "@/hooks/useLang" import RoomDetailsSidePeek from "./RoomDetailsSidePeek" import styles from "./room.module.css" import type { RoomProps } from "@/types/components/hotelReservation/bookingConfirmation/rooms/room" export default function Room({ booking, checkInTime, checkOutTime, img, roomName, }: RoomProps) { const intl = useIntl() const lang = useLang() const guestName = `${booking.guest.firstName} ${booking.guest.lastName}` const fromDate = dt(booking.checkInDate).locale(lang) const toDate = dt(booking.checkOutDate).locale(lang) const isFlexBooking = booking.rateDefinition.cancellationRule === CancellationRuleEnum.CancellableBefore6PM const isChangeBooking = booking.rateDefinition.cancellationRule === CancellationRuleEnum.Changeable return (

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

{booking.rateDefinition.isMemberRate ? (
<> {intl.formatMessage({ defaultMessage: "Membership benefits applied", })}
) : null} {booking.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: "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", })}

    {booking.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}

{booking.guest.membershipNumber ? (

{intl.formatMessage( { defaultMessage: "Friend no. {value}", }, { value: booking.guest.membershipNumber, } )}

) : null} {booking.guest.phoneNumber ? (

{booking.guest.phoneNumber}

) : null} {booking.guest.email ? (

{booking.guest.email}

) : null}
) }