Feature/select rate vertical data flow * add fix from SW-2666 * use translations for room packages * move types to it's own file * Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow * merge * feature/select-rate: double rate for campaing rates * revert NODE_ENV check in Cookiebot script * revert testing values * fix(SW-3171): fix all filter selected in price details * fix(SW-3166): multiroom anchoring when changing filter * fix(SW-3172): check hotelType, show correct breakfast message * Merge branch 'feature/select-rate-vertical-data-flow' of bitbucket.org:scandic-swap/web into feature/select-rate-vertical-data-flow * fix: show special needs icons for subsequent roomTypes SW-3167 * fix: Display strike through text when logged in SW-3168 * fix: Reinstate the scrollToView behaviour when selecting a rate SW-3169 * merge * . * PR fixes * fix: don't return notFound() * . * always include defaults for room packages * merge * merge * merge * Remove floating h1 for new select-rate Approved-by: Anton Gunnarsson
27 lines
866 B
TypeScript
27 lines
866 B
TypeScript
import { AvailabilityEnum } from "@scandic-hotels/trpc/enums/selectHotel"
|
|
|
|
import type { AvailabilityWithRoomInfo, SelectedRate } from "./types"
|
|
|
|
export function findUnavailableSelectedRooms({
|
|
selectedRates,
|
|
roomAvailabilityWithAdjustedRoomCount,
|
|
}: {
|
|
selectedRates: SelectedRate[]
|
|
roomAvailabilityWithAdjustedRoomCount: (AvailabilityWithRoomInfo | null)[][]
|
|
}): number[] {
|
|
const roomIndexesToDeselect: number[] = []
|
|
for (let roomIndex = selectedRates.length - 1; roomIndex >= 0; roomIndex--) {
|
|
const rate = selectedRates[roomIndex]
|
|
if (!rate) continue
|
|
|
|
const room = roomAvailabilityWithAdjustedRoomCount[roomIndex].find(
|
|
(x) => x?.roomTypeCode === rate.roomInfo.roomTypeCode
|
|
)
|
|
|
|
if (!room || room.status === AvailabilityEnum.NotAvailable) {
|
|
roomIndexesToDeselect.push(roomIndex)
|
|
}
|
|
}
|
|
return roomIndexesToDeselect
|
|
}
|