diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RemoveBookingCodeButton/RemoveBookingCodeButton.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RemoveBookingCodeButton/RemoveBookingCodeButton.tsx index d8663c4b0..03f4b269e 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RemoveBookingCodeButton/RemoveBookingCodeButton.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsHeader/RemoveBookingCodeButton/RemoveBookingCodeButton.tsx @@ -1,5 +1,3 @@ -import { usePathname, useRouter, useSearchParams } from "next/navigation" - import { BookingCodeChip } from "@scandic-hotels/design-system/BookingCodeChip" import { useSelectRateContext } from "@/contexts/SelectRate/SelectRateContext" @@ -7,10 +5,8 @@ import { useSelectRateContext } from "@/contexts/SelectRate/SelectRateContext" export function RemoveBookingCodeButton() { const { input: { bookingCode }, + actions: { removeBookingCode }, } = useSelectRateContext() - const router = useRouter() - const searchParams = useSearchParams() - const pathname = usePathname() if (!bookingCode) { return null @@ -23,12 +19,7 @@ export function RemoveBookingCodeButton() { withCloseButton={true} withText={false} onClose={() => { - const newSearchParams = new URLSearchParams(searchParams) - newSearchParams.delete("bookingCode") - - const url = `${pathname}?${newSearchParams.toString()}` - - router.replace(url) + removeBookingCode() }} /> ) diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Code.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Code.tsx index bb3a19b00..72f8ee575 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Code.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Code.tsx @@ -66,7 +66,7 @@ function InnerCode({ } = useSelectRateContext() function handleSelectRate(rateCode: string) { - selectRate({ roomIndex, rateCode, roomTypeCode }) + selectRate({ roomIndex, rateCode, roomTypeCode, bookingCode }) } const bannerText = useBannerText({ diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx index 8937efb99..4b8ae4b5b 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Redemptions.tsx @@ -29,6 +29,7 @@ export default function Redemptions({ const intl = useIntl() const rateTitles = useRateTitles() const { + input: { bookingCode }, actions: { selectRate }, selectedRates, } = useSelectRateContext() @@ -114,6 +115,7 @@ export default function Redemptions({ roomIndex: roomIndex, rateCode: rateCode, roomTypeCode: roomTypeCode, + bookingCode: bookingCode, }) }} paymentTerm={rateTitles[firstRedemption.rate].paymentTerm} diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Regular.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Regular.tsx index 2bfdeb31e..0766435e9 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Regular.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomsList/RoomListItem/Rates/Regular.tsx @@ -243,6 +243,7 @@ function Inner({ rateCode: rateCode, roomTypeCode: roomTypeCode, counterRateCode: counterRateCode, + bookingCode: product.bookingCode, }) }} isMemberRateActive={isMemberRateActive} diff --git a/apps/scandic-web/contexts/SelectRate/SelectRateContext.tsx b/apps/scandic-web/contexts/SelectRate/SelectRateContext.tsx index f97ea78e1..bd18cdec1 100644 --- a/apps/scandic-web/contexts/SelectRate/SelectRateContext.tsx +++ b/apps/scandic-web/contexts/SelectRate/SelectRateContext.tsx @@ -454,6 +454,24 @@ export function SelectRateProvider({ updateBooking(selectRateBooking) setActiveRoomIndex("next") }, + removeBookingCode: () => { + if (!selectRateInput.data) { + return + } + + const clearedBooking: SelectRateBooking = { + hotelId: selectRateInput.data.booking.hotelId, + fromDate: selectRateInput.data.booking.fromDate, + toDate: selectRateInput.data.booking.toDate, + rooms: selectRateInput.data.booking.rooms.map((room) => ({ + ...room, + bookingCode: null, + })), + } + + updateBooking(clearedBooking) + setActiveRoomIndex(0) + }, }, }} > diff --git a/apps/scandic-web/contexts/SelectRate/types.ts b/apps/scandic-web/contexts/SelectRate/types.ts index 10a01fb0d..89fc01f60 100644 --- a/apps/scandic-web/contexts/SelectRate/types.ts +++ b/apps/scandic-web/contexts/SelectRate/types.ts @@ -73,6 +73,7 @@ export type SelectRateContext = { roomTypeCode: string bookingCode?: string }) => void + removeBookingCode: () => void } }