import { useIntl } from "react-intl" import ImageGallery from "@/components/ImageGallery" import SidePeek from "@/components/TempDesignSystem/SidePeek" import Body from "@/components/TempDesignSystem/Text/Body" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { mapApiImagesToGalleryImages } from "@/utils/imageGallery" import { getBedIcon } from "./bedIcon" import { getFacilityIcon } from "./facilityIcon" import styles from "./roomSidePeek.module.css" import { SidePeekEnum } from "@/types/components/hotelReservation/sidePeek" import type { RoomSidePeekProps } from "@/types/components/sidePeeks/roomSidePeek" export default function RoomSidePeek({ room, activeSidePeek, close, }: RoomSidePeekProps) { const intl = useIntl() const roomSize = room.roomSize const totalOccupancy = room.occupancy const roomDescription = room.descriptions.medium const galleryImages = mapApiImagesToGalleryImages(room.images) return (
{roomSize.min === roomSize.max ? intl.formatMessage( { id: "{roomSize} m². Accommodates up to {max, plural, one {{range} person} other {{range} people}}", }, { roomSize: roomSize.min, max: room.totalOccupancy.max, range: room.totalOccupancy.range, } ) : intl.formatMessage( { id: "{roomSizeMin} - {roomSizeMax} m². Accommodates up to {max, plural, one {{range} person} other {{range} people}}", }, { roomSizeMin: roomSize.min, roomSizeMax: roomSize.max, max: room.totalOccupancy.max, range: room.totalOccupancy.range, } )}
{roomDescription}
{intl.formatMessage({ id: "This room is equipped with" })}
    {room.roomFacilities .sort((a, b) => a.sortOrder - b.sortOrder) .map((facility) => { const Icon = getFacilityIcon(facility.icon) return (
  • {Icon && ( )} {facility.name}
  • ) })}
{intl.formatMessage({ id: "Bed options" })} {intl.formatMessage({ id: "Based on availability" })}
    {room.roomTypes.map((roomType) => { const BedIcon = getBedIcon(roomType.mainBed.type) return (
  • {BedIcon && ( )} {roomType.mainBed.description}
  • ) })}
) }