Merged in feat/SW-2033-implement-new-room-feature-request (pull request #1665)
feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data * feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data * fix: issue with total price not including room features * fix: add return null * fix * fix * fixes from PR feedback Approved-by: Arvid Norlin
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
|
||||
import type { AvailabilityError } from "@/types/stores/rates"
|
||||
import type {
|
||||
Product,
|
||||
@@ -78,3 +79,11 @@ export function findSelectedRate(
|
||||
return findProductInRoom(rateCode, room)
|
||||
})
|
||||
}
|
||||
|
||||
export function isRoomPackageCode(
|
||||
code: string | null
|
||||
): code is RoomPackageCodeEnum {
|
||||
return Object.values(RoomPackageCodeEnum).includes(
|
||||
code as RoomPackageCodeEnum
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,11 @@ import { create, useStore } from "zustand"
|
||||
|
||||
import { RatesContext } from "@/contexts/Rates"
|
||||
|
||||
import { findProductInRoom, findSelectedRate } from "./helpers"
|
||||
import {
|
||||
findProductInRoom,
|
||||
findSelectedRate,
|
||||
isRoomPackageCode,
|
||||
} from "./helpers"
|
||||
|
||||
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
|
||||
import { BookingCodeFilterEnum } from "@/types/enums/bookingCodeFilter"
|
||||
@@ -83,6 +87,7 @@ export function createRatesStore({
|
||||
rate: product.rate,
|
||||
roomType: selectedRoom.roomType,
|
||||
roomTypeCode: selectedRoom.roomTypeCode,
|
||||
package: room.packages?.[0],
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -125,7 +130,11 @@ export function createRatesStore({
|
||||
product = findProductInRoom(room.rateCode, selectedRate)
|
||||
}
|
||||
|
||||
const selectedPackage = room.packages?.[0]
|
||||
// Since features are fetched async based on query string, we need to read from query string to apply correct filtering
|
||||
const packagesParam = searchParams.get(`room[${idx}].packages`)
|
||||
const selectedPackage = isRoomPackageCode(packagesParam)
|
||||
? packagesParam
|
||||
: undefined
|
||||
|
||||
let rooms: RoomConfiguration[] = roomConfiguration
|
||||
if (selectedPackage) {
|
||||
|
||||
Reference in New Issue
Block a user