Files
web/apps/scandic-web/contexts/SelectRate/isRateSelected.ts
Anton Gunnarsson 87402a2092 Merged in feat/sw-2873-move-selecthotel-to-booking-flow (pull request #2727)
feat(SW-2873): Move select-hotel to booking flow

* crude setup of select-hotel in partner-sas

* wip

* Fix linting

* restructure tracking files

* Remove dependency on trpc in tracking hooks

* Move pageview tracking to common

* Fix some lint and import issues

* Add AlternativeHotelsPage

* Add SelectHotelMapPage

* Add AlternativeHotelsMapPage

* remove next dependency in tracking store

* Remove dependency on react in tracking hooks

* move isSameBooking to booking-flow

* Inject searchParamsComparator into tracking store

* Move useTrackHardNavigation to common

* Move useTrackSoftNavigation to common

* Add TrackingSDK to partner-sas

* call serverclient in layout

* Remove unused css

* Update types

* Move HotelPin type

* Fix todos

* Merge branch 'master' into feat/sw-2873-move-selecthotel-to-booking-flow

* Merge branch 'master' into feat/sw-2873-move-selecthotel-to-booking-flow

* Fix component


Approved-by: Joakim Jäderberg
2025-09-01 08:37:00 +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()
)
}