feat(SW-892) Fixed bug with summary not adding pet charge on filter

This commit is contained in:
Pontus Dreij
2024-11-14 10:53:16 +01:00
parent 354e455684
commit 8aa615dfc7
5 changed files with 47 additions and 8 deletions

View File

@@ -12,7 +12,8 @@ import {
RoomPackageCodeEnum,
type RoomPackageCodes,
} from "@/types/components/hotelReservation/selectRate/roomFilter"
import type { RoomSelectionProps } from "@/types/components/hotelReservation/selectRate/roomSelection"
import type { SelectRateProps } from "@/types/components/hotelReservation/selectRate/roomSelection"
import type { Rate } from "@/types/components/hotelReservation/selectRate/selectRate"
import type {
RoomConfiguration,
RoomsAvailability,
@@ -23,10 +24,10 @@ export default function Rooms({
roomCategories = [],
user,
packages,
}: Omit<RoomSelectionProps, "selectedPackages">) {
}: SelectRateProps) {
const visibleRooms: RoomConfiguration[] =
filterDuplicateRoomTypesByLowestPrice(roomsAvailability.roomConfigurations)
const [rateSummary, setRateSummary] = useState<Rate | null>(null)
const [rooms, setRooms] = useState<RoomsAvailability>({
...roomsAvailability,
roomConfigurations: visibleRooms,
@@ -48,6 +49,14 @@ export default function Rooms({
...roomsAvailability,
roomConfigurations: visibleRooms,
})
if (!!rateSummary) {
setRateSummary({
...rateSummary,
features: [],
})
}
return
}
@@ -57,8 +66,26 @@ export default function Rooms({
)
)
setRooms({ ...roomsAvailability, roomConfigurations: filteredRooms })
const petRoomPackage =
(filteredPackages.includes(RoomPackageCodeEnum.PET_ROOM) &&
packages.find((pkg) => pkg.code === RoomPackageCodeEnum.PET_ROOM)) ||
undefined
const features = filteredRooms.find((room) =>
room.features.some(
(feature) => feature.code === RoomPackageCodeEnum.PET_ROOM
)
)?.features
if (!!rateSummary) {
setRateSummary({
...rateSummary,
features: petRoomPackage && features ? features : [],
})
}
},
[roomsAvailability, visibleRooms]
[roomsAvailability, visibleRooms, rateSummary, packages]
)
return (
@@ -74,6 +101,8 @@ export default function Rooms({
user={user}
packages={packages}
selectedPackages={selectedPackages}
setRateSummary={setRateSummary}
rateSummary={rateSummary}
/>
</div>
)