Files
web/components/HotelReservation/SelectRate/RoomSelectionPanel/index.tsx
Simon.Emanuelsson c204532acc Merged in feat/SW-1261 (pull request #1263)
feat: only show member price when logged in

* feat: only show member price when logged in


Approved-by: Michael Zetterberg
2025-02-07 08:51:50 +00:00

56 lines
1.7 KiB
TypeScript

import { useSearchParams } from "next/navigation"
import { useMemo } from "react"
import { useRoomFilteringStore } from "@/stores/select-rate/room-filtering"
import RoomTypeFilter from "../RoomTypeFilter"
import RoomTypeList from "../RoomTypeList"
import type { FilterValues } from "@/types/components/hotelReservation/selectRate/roomFilter"
import type { RoomSelectionPanelProps } from "@/types/components/hotelReservation/selectRate/roomSelection"
export function RoomSelectionPanel({
availablePackages,
defaultPackages,
hotelType,
roomCategories,
roomListIndex,
selectedPackages,
}: RoomSelectionPanelProps) {
const searchParams = useSearchParams()
const { getRooms } = useRoomFilteringStore()
const rooms = getRooms(roomListIndex)
const initialFilterValues = useMemo(() => {
const packagesFromSearchParams =
searchParams.get(`room[${roomListIndex}].packages`)?.split(",") ?? []
return defaultPackages.reduce<FilterValues>((acc, option) => {
acc[option.code] = packagesFromSearchParams.includes(option.code)
return acc
}, {})
}, [defaultPackages, searchParams, roomListIndex])
return (
<>
<RoomTypeFilter
numberOfRooms={rooms?.roomConfigurations.length ?? 0}
filterOptions={defaultPackages}
initialFilterValues={initialFilterValues}
roomListIndex={roomListIndex}
/>
{rooms && (
<RoomTypeList
availablePackages={availablePackages}
hotelType={hotelType}
roomCategories={roomCategories}
roomListIndex={roomListIndex}
roomsAvailability={rooms}
selectedPackages={selectedPackages}
/>
)}
</>
)
}