feat: keep inventory of bedselections
This commit is contained in:
committed by
Michael Zetterberg
parent
39b89c5d51
commit
5ca30d02a0
@@ -139,7 +139,19 @@ export function createDetailsStore(
|
||||
}
|
||||
})
|
||||
|
||||
const availableBeds = initialState.rooms.reduce<
|
||||
DetailsState["availableBeds"]
|
||||
>((total, room) => {
|
||||
for (const bed of room.bedTypes) {
|
||||
if (!total[bed.value]) {
|
||||
total[bed.value] = bed.roomsLeft
|
||||
}
|
||||
}
|
||||
return total
|
||||
}, {})
|
||||
|
||||
return create<DetailsState>()((set) => ({
|
||||
availableBeds,
|
||||
booking: initialState.booking,
|
||||
breakfastPackages,
|
||||
canProceedToPayment: false,
|
||||
@@ -179,6 +191,15 @@ export function createDetailsStore(
|
||||
updateBedType(bedType) {
|
||||
return set(
|
||||
produce((state: DetailsState) => {
|
||||
const currentlySelectedBed =
|
||||
state.rooms[idx].room.bedType?.roomTypeCode
|
||||
if (currentlySelectedBed) {
|
||||
state.availableBeds[currentlySelectedBed] =
|
||||
state.availableBeds[currentlySelectedBed] + 1
|
||||
}
|
||||
state.availableBeds[bedType.roomTypeCode] =
|
||||
state.availableBeds[bedType.roomTypeCode] - 1
|
||||
|
||||
state.rooms[idx].steps[StepEnum.selectBed].isValid = true
|
||||
state.rooms[idx].room.bedType = bedType
|
||||
|
||||
|
||||
Reference in New Issue
Block a user