fix: trigger memberPrice modal for membership number too

This commit is contained in:
Simon Emanuelsson
2025-05-26 16:09:02 +02:00
parent 32cc0cbe88
commit 39855d3c8a
10 changed files with 105 additions and 73 deletions

View File

@@ -253,24 +253,18 @@ export function createDetailsStore(
})
)
},
updateJoin(join) {
updatePriceForMembershipNo(membershipNo, isValid) {
return set(
produce((state: DetailsState) => {
const currentRoom = state.rooms[idx].room
currentRoom.guest.join = join
if (join) {
currentRoom.guest.membershipNo = undefined
}
currentRoom.guest.join = false
currentRoom.guest.membershipNo = isValid ? membershipNo : ""
const isValidMembershipNo = isValid && !!membershipNo
currentRoom.roomPrice = getRoomPrice(
currentRoom.roomRate,
Boolean(
join ||
currentRoom.guest.membershipNo ||
(idx === 0 && isMember)
)
isValidMembershipNo
)
const nights = dt(state.booking.toDate).diff(
@@ -284,6 +278,43 @@ export function createDetailsStore(
isMember,
nights
)
writeToSessionStorage({
booking: state.booking,
rooms: state.rooms,
})
})
)
},
updateJoin(join) {
return set(
produce((state: DetailsState) => {
const currentRoom = state.rooms[idx].room
currentRoom.guest.join = join
if (join) {
currentRoom.guest.membershipNo = ""
}
currentRoom.roomPrice = getRoomPrice(currentRoom.roomRate, join)
const nights = dt(state.booking.toDate).diff(
state.booking.fromDate,
"days"
)
state.totalPrice = calcTotalPrice(
state.rooms,
state.totalPrice.local.currency,
isMember,
nights
)
writeToSessionStorage({
booking: state.booking,
rooms: state.rooms,
})
})
)
},