Files
web/packages/booking-flow/lib/contexts/SelectRate/isRateSelected.ts
Hrishikesh Vaipurkar 0a4bf40a15 Merged in chore/SW-3321-move-selectratecontext-to- (pull request #2729)
chore(SW-3321): Moved Select rate context to booking-flow package

* chore(SW-3321): Moved Select rate context to booking-flow package

* chore(SW-3321): Optimised code


Approved-by: Joakim Jäderberg
2025-09-02 07:40:01 +00:00

42 lines
1.2 KiB
TypeScript

import type { RateEnum } from "@scandic-hotels/common/constants/rate"
import type { Rate } from "./types"
export function isRateSelected({
selectedRateCode,
selectedRoomTypeCode,
rate,
roomTypeCode,
}: {
selectedRateCode: RateEnum | string | undefined | null
selectedRoomTypeCode: RateEnum | string | undefined | null
rate: Rate
roomTypeCode: string | null | undefined
}) {
if (!selectedRateCode || !selectedRoomTypeCode || !rate || !roomTypeCode) {
return false
}
let rateCodes: string[] = []
if ("public" in rate && rate.public) {
rateCodes = [...rateCodes, rate.public.rateCode?.toLowerCase()]
}
if ("member" in rate && rate.member) {
rateCodes = [...rateCodes, rate.member.rateCode?.toLowerCase()]
}
if ("redemption" in rate && rate.redemption) {
rateCodes = [...rateCodes, rate.redemption.rateCode?.toLowerCase()]
}
if ("voucher" in rate && rate.voucher) {
rateCodes = [...rateCodes, rate.voucher.rateCode?.toLowerCase()]
}
if ("corporateCheque" in rate && rate.corporateCheque) {
rateCodes = [...rateCodes, rate.corporateCheque.rateCode?.toLowerCase()]
}
return (
rateCodes.includes(selectedRateCode.toLowerCase()) &&
selectedRoomTypeCode.toLowerCase() === roomTypeCode.toLowerCase()
)
}