Merged in fix/sw-1248-sort-unavailable-rooms (pull request #1126)

fix(SW-1248): show unavailable rooms last

* fix(SW-1248): show unavailable rooms last


Approved-by: Hrishikesh Vaipurkar
This commit is contained in:
Niclas Edenvin
2025-01-07 08:35:42 +00:00
parent dca02b90f0
commit b5b59329f4
2 changed files with 22 additions and 3 deletions

View File

@@ -27,8 +27,27 @@ export default function Rooms({
availablePackages, availablePackages,
hotelType, hotelType,
}: SelectRateProps) { }: SelectRateProps) {
const visibleRooms: RoomConfiguration[] = const visibleRooms: RoomConfiguration[] = useMemo(() => {
filterDuplicateRoomTypesByLowestPrice(roomsAvailability.roomConfigurations) const deduped = filterDuplicateRoomTypesByLowestPrice(
roomsAvailability.roomConfigurations
)
const separated = deduped.reduce<{
available: RoomConfiguration[]
notAvailable: RoomConfiguration[]
}>(
(acc, curr) => {
if (curr.status === "NotAvailable") {
return { ...acc, notAvailable: [...acc.notAvailable, curr] }
}
return { ...acc, available: [...acc.available, curr] }
},
{ available: [], notAvailable: [] }
)
return [...separated.available, ...separated.notAvailable]
}, [roomsAvailability.roomConfigurations])
const [selectedRate, setSelectedRate] = useState<RateCode | undefined>( const [selectedRate, setSelectedRate] = useState<RateCode | undefined>(
undefined undefined
) )

View File

@@ -6,7 +6,7 @@ import type { RoomConfiguration } from "@/server/routers/hotels/output"
export function filterDuplicateRoomTypesByLowestPrice( export function filterDuplicateRoomTypesByLowestPrice(
roomConfigurations: RoomConfiguration[] roomConfigurations: RoomConfiguration[]
) { ): RoomConfiguration[] {
const roomTypeCount = roomConfigurations.reduce( const roomTypeCount = roomConfigurations.reduce(
(acc, room) => { (acc, room) => {
acc[room.roomType] = (acc[room.roomType] || 0) + 1 acc[room.roomType] = (acc[room.roomType] || 0) + 1