diff --git a/packages/booking-flow/lib/components/EnterDetails/Details/MemberPriceModal/index.tsx b/packages/booking-flow/lib/components/EnterDetails/Details/MemberPriceModal/index.tsx index da1d8881e..757a37841 100644 --- a/packages/booking-flow/lib/components/EnterDetails/Details/MemberPriceModal/index.tsx +++ b/packages/booking-flow/lib/components/EnterDetails/Details/MemberPriceModal/index.tsx @@ -39,7 +39,7 @@ export default function MemberPriceModal() { trigger("membershipNo").then((isValid) => { const { isDirty } = getFieldState("membershipNo") updatePriceForMembershipNo(membershipNo, isValid) - if (isValid && isDirty) { + if (isValid && isDirty && !!membershipNo) { setIsOpen(true) } }) diff --git a/packages/booking-flow/lib/stores/enter-details/index.ts b/packages/booking-flow/lib/stores/enter-details/index.ts index 122aebd76..9da99b664 100644 --- a/packages/booking-flow/lib/stores/enter-details/index.ts +++ b/packages/booking-flow/lib/stores/enter-details/index.ts @@ -197,13 +197,16 @@ export function createDetailsStore( produce((state: DetailsState) => { const currentRoom = state.rooms[idx].room - currentRoom.guest.join = false currentRoom.guest.membershipNo = isValid ? membershipNo : "" const isValidMembershipNo = isValid && !!membershipNo + + if (isValidMembershipNo) { + currentRoom.guest.join = false + } currentRoom.roomPrice = getRoomPrice( currentRoom.roomRate, - isValidMembershipNo + isValidMembershipNo || currentRoom.guest.join ) const nights = dt(state.booking.toDate).diff( @@ -235,7 +238,10 @@ export function createDetailsStore( currentRoom.guest.membershipNo = "" } - currentRoom.roomPrice = getRoomPrice(currentRoom.roomRate, join) + currentRoom.roomPrice = getRoomPrice( + currentRoom.roomRate, + join || !!currentRoom.guest.membershipNo + ) const nights = dt(state.booking.toDate).diff( state.booking.fromDate,