feat(SW-1717): rewrite select-rate to show all variants of rate-cards

This commit is contained in:
Simon Emanuelsson
2025-03-25 11:25:44 +01:00
committed by Michael Zetterberg
parent adde77eaa9
commit ebaea78fb3
118 changed files with 4601 additions and 4374 deletions

View File

@@ -6,11 +6,16 @@ import { useRatesStore } from "@/stores/select-rate"
import RoomProvider from "@/providers/SelectRate/RoomProvider"
import { trackLowestRoomPrice } from "@/utils/tracking"
import BookingCodeFilter from "./BookingCodeFilter"
import MultiRoomWrapper from "./MultiRoomWrapper"
import RoomSelectionPanel from "./RoomSelectionPanel"
import NoAvailabilityAlert from "./NoAvailabilityAlert"
import RoomsList from "./RoomsList"
import RoomTypeFilter from "./RoomTypeFilter"
import styles from "./rooms.module.css"
import type { PriceProduct } from "@/types/trpc/routers/hotel/roomAvailability"
export default function Rooms() {
const {
arrivalDate,
@@ -32,7 +37,13 @@ export default function Rooms() {
const pricesWithCurrencies = visibleRooms.flatMap((roomConfiguration) =>
roomConfiguration.flatMap((room) =>
room.products
.filter((product) => product.member || product.public)
.filter(
(product): product is PriceProduct =>
!!(
("public" in product && product.public) ||
("member" in product && product.member)
)
)
.map((product) => ({
currency: (product.public?.localPrice.currency ||
product.member?.localPrice.currency)!,
@@ -66,7 +77,10 @@ export default function Rooms() {
room={rooms[idx]}
>
<MultiRoomWrapper isMultiRoom={bookingRooms.length > 1}>
<RoomSelectionPanel />
<NoAvailabilityAlert />
<RoomTypeFilter />
<BookingCodeFilter />
<RoomsList />
</MultiRoomWrapper>
</RoomProvider>
))}