"use client" import { useIntl } from "react-intl" import { MaterialIcon } from "@scandic-hotels/design-system/Icons" 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({ id: "Membership benefits applied" })} ) : ( <> {intl.formatMessage({ id: "No membership benefits applied" })} )}
{booking.guaranteeInfo && (

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

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