"use client" import { useIntl } from "react-intl" import { alternativeHotels } from "@/constants/routes/hotelReservation" import { useRatesStore } from "@/stores/select-rate" import Alert from "@/components/TempDesignSystem/Alert" import { useRoomContext } from "@/contexts/SelectRate/Room" import useLang from "@/hooks/useLang" import styles from "./alert.module.css" import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel" import { AlertTypeEnum } from "@/types/enums/alert" export default function NoAvailabilityAlert() { const lang = useLang() const intl = useIntl() const [bookingCode, selectedRooms, activeRoom] = useRatesStore((state) => [ state.booking.bookingCode, state.rooms, state.activeRoom, ]) const { isFetchingPackages, rooms } = useRoomContext() const noAvailableRooms = rooms.every( (roomConfig) => roomConfig.status === AvailabilityEnum.NotAvailable ) const alertLink = activeRoom !== -1 && selectedRooms[activeRoom].selectedPackages.length === 0 ? { title: intl.formatMessage({ defaultMessage: "See alternative hotels", }), url: `${alternativeHotels(lang)}`, keepSearchParams: true, } : null if (isFetchingPackages) { return null } if (noAvailableRooms) { const text = intl.formatMessage({ defaultMessage: "There are no rooms available that match your request.", }) return (