"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({ 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 (
{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: "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", })} {booking.rateDefinition.cancellationText}
  • {isFlexBooking || isChangeBooking ? (
  • {intl.formatMessage({ defaultMessage: "Rebooking", })} {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}
) }