"use client" import { useCallback } from "react" import { useIntl } from "react-intl" import { useRateSelectionStore } from "@/stores/select-rate/rate-selection" import { EditIcon } from "@/components/Icons" import Image from "@/components/Image" import Button from "@/components/TempDesignSystem/Button" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import styles from "./selectedRoomPanel.module.css" import type { Room as SelectedRateRoom } from "@/types/components/hotelReservation/selectRate/selectRate" import type { Room } from "@/types/hotel" interface SelectedRoomPanelProps { roomIndex: number room: SelectedRateRoom roomCategories: Room[] } export default function SelectedRoomPanel({ roomIndex, room, roomCategories, }: SelectedRoomPanelProps) { const intl = useIntl() const { rateSummary, modifyRate } = useRateSelectionStore() const selectedRate = rateSummary[roomIndex] const images = roomCategories.find((roomCategory) => roomCategory.roomTypes.some( (roomType) => roomType.code === selectedRate?.roomTypeCode ) )?.images const handleModify = useCallback(() => { modifyRate(roomIndex) }, [modifyRate, roomIndex]) return (
{intl.formatMessage( { id: "Room {roomIndex}", }, { roomIndex: roomIndex + 1, } )} {selectedRate?.roomType},{" "} {intl.formatMessage( { id: room.childrenInRoom?.length ? "{adults} adults, {children} children" : "{adults} adults", }, { adults: room.adults, children: room.childrenInRoom?.length, } )} {selectedRate?.priceName}, {selectedRate?.priceTerm} {selectedRate?.public.localPrice.pricePerNight}{" "} {selectedRate?.public.localPrice.currency}/ {intl.formatMessage({ id: "night", })}
{images?.[0]?.imageSizes?.tiny && (
{selectedRate?.roomType
)}
) }