"use client" import { useIntl } from "react-intl" import SkeletonShimmer from "@scandic-hotels/design-system/SkeletonShimmer" import { Typography } from "@scandic-hotels/design-system/Typography" import { AvailabilityEnum } from "@scandic-hotels/trpc/enums/selectHotel" import { useSelectRateContext } from "../../../../../contexts/SelectRate/SelectRateContext" import { ErrorBoundary } from "../../../../ErrorBoundary/ErrorBoundary" import { RemoveBookingCodeButton } from "./RemoveBookingCodeButton/RemoveBookingCodeButton" import { RoomPackageFilter } from "./RoomPackageFilter" import styles from "./roomsHeader.module.css" export function RoomsHeader({ roomIndex }: { roomIndex: number }) { return ( // eslint-disable-next-line formatjs/no-literal-string-in-jsx Unable to render rooms header}> ) } function InnerRoomsHeader({ roomIndex }: { roomIndex: number }) { return (
{/* */}
) } function AvailableRoomCount({ roomIndex }: { roomIndex: number }) { const intl = useIntl() const { isFetching, getAvailabilityForRoom } = useSelectRateContext() const roomAvailability = getAvailabilityForRoom(roomIndex) ?? [] const availableRooms = roomAvailability.filter( (x) => x.status === AvailabilityEnum.Available ).length const totalRooms = roomAvailability.length const notAllRoomsAvailableText = intl.formatMessage( { defaultMessage: "{availableRooms}/{numberOfRooms, plural, one {# room type} other {# room types}} available", }, { availableRooms, numberOfRooms: totalRooms, } ) const allRoomsAvailableText = intl.formatMessage( { defaultMessage: "{numberOfRooms, plural, one {# room type} other {# room types}} available", }, { numberOfRooms: totalRooms, } ) if (isFetching) { return } return (

{availableRooms !== totalRooms ? notAllRoomsAvailableText : allRoomsAvailableText}

) }