@roomstay/frontend 2.6.33 → 2.6.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/166.bundle.js +1 -1
  2. package/dist/279.bundle.js +1 -1
  3. package/dist/370.bundle.js +1 -1
  4. package/dist/446.bundle.js +1 -1
  5. package/dist/449.bundle.js +1 -1
  6. package/dist/586.bundle.js +1 -1
  7. package/dist/736.bundle.js +1 -1
  8. package/dist/873.bundle.js +1 -1
  9. package/dist/903.bundle.js +1 -1
  10. package/dist/927.bundle.js +1 -1
  11. package/dist/972.bundle.js +1 -1
  12. package/dist/978.bundle.js +1 -1
  13. package/dist/main.bundle.js +1 -1
  14. package/dist/src/animations/AutoAutoHeight.js +4 -2
  15. package/dist/src/animations/AutoAutoHeight.js.map +1 -1
  16. package/dist/src/api/AvailabilityAPI.d.ts +9 -0
  17. package/dist/src/api/AvailabilityAPI.js +13 -1
  18. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  19. package/dist/src/components/User/Forms/SignUpForm.js +1 -1
  20. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  21. package/dist/src/components/generic/HtmlContentViewer.js +8 -5
  22. package/dist/src/components/generic/HtmlContentViewer.js.map +1 -1
  23. package/dist/src/components/generic/ScrollToTop.js +12 -15
  24. package/dist/src/components/generic/ScrollToTop.js.map +1 -1
  25. package/dist/src/components/generic/Tabs/TabLink.js +6 -42
  26. package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
  27. package/dist/src/components/generic/Tabs/TabRouteContainer.js +9 -7
  28. package/dist/src/components/generic/Tabs/TabRouteContainer.js.map +1 -1
  29. package/dist/src/components/generic/date/DatePicker.js +14 -1
  30. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  31. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +7 -3
  32. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
  33. package/dist/src/components/generic/modal/SimpleModal.js +0 -22
  34. package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
  35. package/dist/src/components/navigation/Header.js +2 -2
  36. package/dist/src/components/navigation/Header.js.map +1 -1
  37. package/dist/src/components/navigation/StepSelector.js +2 -2
  38. package/dist/src/components/navigation/StepSelector.js.map +1 -1
  39. package/dist/src/components/navigation/StepSelectorModal.js +5 -1
  40. package/dist/src/components/navigation/StepSelectorModal.js.map +1 -1
  41. package/dist/src/components/steps/hotel/HotelCard.js +2 -2
  42. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  43. package/dist/src/components/steps/hotel/HotelCardModal.js +2 -2
  44. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  45. package/dist/src/components/steps/room/StepRoomBestRateAlert.js +13 -2
  46. package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
  47. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +2 -3
  48. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  49. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +12 -7
  50. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  51. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +1 -1
  52. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  53. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js +6 -5
  54. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js.map +1 -1
  55. package/dist/src/components/summary/BESummary.js +3 -3
  56. package/dist/src/components/summary/BESummary.js.map +1 -1
  57. package/dist/src/components/summary/BESummaryRoomRow.js +5 -6
  58. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  59. package/dist/src/containers/PrivateRoute.d.ts +6 -3
  60. package/dist/src/containers/PrivateRoute.js +9 -20
  61. package/dist/src/containers/PrivateRoute.js.map +1 -1
  62. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +2 -2
  63. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  64. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +85 -24
  65. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  66. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +11 -3
  67. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  68. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.d.ts +1 -0
  69. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.js +16 -0
  70. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.js.map +1 -0
  71. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.d.ts +1 -0
  72. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.js +14 -0
  73. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.js.map +1 -0
  74. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +20 -26
  75. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  76. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js +4 -1
  77. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js.map +1 -1
  78. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +4 -1
  79. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  80. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +4 -1
  81. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -1
  82. package/dist/src/hooks/HistoryConsistentPush.js +10 -3
  83. package/dist/src/hooks/HistoryConsistentPush.js.map +1 -1
  84. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +1 -2
  85. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  86. package/dist/src/hooks/UpdateQueryParameters.js +5 -3
  87. package/dist/src/hooks/UpdateQueryParameters.js.map +1 -1
  88. package/dist/src/models/BasketRow.d.ts +2 -0
  89. package/dist/src/models/BasketRow.js +6 -1
  90. package/dist/src/models/BasketRow.js.map +1 -1
  91. package/dist/src/pages/account/AccountRouter.js +13 -7
  92. package/dist/src/pages/account/AccountRouter.js.map +1 -1
  93. package/dist/src/pages/account/AccountRoutes.js +1 -1
  94. package/dist/src/pages/account/AccountRoutes.js.map +1 -1
  95. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +3 -0
  96. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  97. package/dist/src/pages/account/Reservations/AccountReservationsPage.js +3 -3
  98. package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
  99. package/dist/src/pages/findReservation/FindReservation.d.ts +0 -1
  100. package/dist/src/pages/findReservation/FindReservation.js +12 -12
  101. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  102. package/dist/src/pages/findReservation/FindReservationResults.js +4 -4
  103. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  104. package/dist/src/pages/steps/Step.js.map +1 -1
  105. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +5 -1
  106. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  107. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +5 -1
  108. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  109. package/dist/src/pages/steps/StepDate/StepDateComponent.d.ts +2 -2
  110. package/dist/src/pages/steps/StepDate/StepDateComponent.js +14 -7
  111. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  112. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js +5 -1
  113. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js.map +1 -1
  114. package/dist/src/pages/steps/StepGuide.js +2 -2
  115. package/dist/src/pages/steps/StepGuide.js.map +1 -1
  116. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +5 -1
  117. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  118. package/dist/src/routes/NaturallyProgressedStepRoute.js +6 -11
  119. package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
  120. package/dist/src/translations/Translation.d.ts +1 -0
  121. package/dist/src/translations/Translation.js +1 -0
  122. package/dist/src/translations/Translation.js.map +1 -1
  123. package/dist/src/translations/languages/en-gb.js +2 -1
  124. package/dist/src/translations/languages/en-gb.js.map +1 -1
  125. package/dist/src/util/RouteManager.js +1 -1
  126. package/dist/src/util/RouteManager.js.map +1 -1
  127. package/dist/src/util/StepManager.js.map +1 -1
  128. package/dist/test.bundle.js +1 -1
  129. package/dist/vendors.bundle.js +1 -1
  130. package/dist/vendors.bundle.js.LICENSE.txt +30 -6
  131. package/package.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"file":"BESummaryRoomRow.js","sourceRoot":"/","sources":["src/components/summary/BESummaryRoomRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { useSearchScopeHook } from '@/hooks/useSearchScopeHook';\nimport BasketRow from '@/models/BasketRow';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { Color } from '@/util/Color';\nimport getStepRoom from '@/util/GetStepRoom';\nimport StringHelper from '@/util/StringHelper';\n\ninterface BESummaryRoomRowProps {\n index: number;\n row: BasketRow;\n showImages: boolean;\n\n onEditPropertyClicked?: () => void;\n}\n\nexport default function BESummaryRoomRow(props: BESummaryRoomRowProps) {\n const basketContext = useContext(BasketContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { isAccent2ColorDark, hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n const history = useHistory();\n const { showChildren } = useSearchScopeHook();\n\n const { index, row, showImages } = props;\n\n const totalPrice = row.getTotalPrice(true);\n const rate = row.getRate();\n\n const isSelected = basketContext.selectedBasketRow?.getID() === row.getID();\n const isOnlyRate = basketContext.currentBasketRows.length === 1;\n\n const removeRate = t(isOnlyRate ? Translation.Step.Room.Summary.NoRemoveLastRate : Translation.Step.Room.Summary.RemoveThisRate);\n\n const rowFees = row.getRate()?.getTotalFees();\n const rowTaxes = row.getRate()?.getTotalTaxes();\n\n const rowQuote = row.quoteDetails;\n\n const selectBasketRowOnClick = () => basketContext.selectBasketRow(null);\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.selectBasketRow(row);\n\n if (props.onEditPropertyClicked) {\n props.onEditPropertyClicked();\n }\n };\n const removeOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.removeBasketRow(row);\n };\n\n const promoApplied = row.isPromoCodeValid();\n\n const shouldTextBeWhite = isAccent2ColorDark && isSelected;\n const textWhiteOr = (color = Color.Graphite) => {\n return shouldTextBeWhite ? Color.White : color;\n };\n\n return (\n <>\n {index >= 1 && <LineBreak noMargins darker />}\n <div key={row.getID()} className={'booking-engine-summary--row' + (isSelected ? ' --selected' : '')}>\n {showImages && (\n <div className=\"u-border-rounded\" style={{ height: '190px' }}>\n <ImageGallerySlider images={row.getRoom().getImages()} imageSize={ImageSize.Tiny} />\n </div>\n )}\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={textWhiteOr(Color.DarkGrey)}>\n <strong>\n {t(Translation.Step.Date.Room)} {index + 1}\n </strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text color={textWhiteOr(Color.Navy)}>\n <strong>{rate?.getRoom().name}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {rate?.name}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Arrival)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getArrivalDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Departure)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getDepartureDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--medium u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {[\n StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t),\n showChildren ? StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t) : null,\n hotel?.childConfiguration?.supportInfants ? StringHelper.pluralWithDictAndCount(row.getInfants(), Translation.Step.Date.Infant, t) : null,\n ]\n .filter((item) => !!item)\n .join(`, `)}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Rates)} ({t(Translation.Misc.PerNight)})\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rate?.getAveragePrice(true)}</Currency>\n </Text>\n </div>\n {promoApplied && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.PromoCode)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n {row.getPromoCode()}\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.General.RoomTotal)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{totalPrice}</Currency>\n </Text>\n </div>\n {!!rowFees && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Fees)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowFees}</Currency>\n </Text>\n </div>\n )}\n {!!rowTaxes && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Taxes)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowTaxes}</Currency>\n </Text>\n </div>\n )}\n <div className=\"u-marg-top u-marg-bottom u-flex justify-content-start\">\n {isSelected ? (\n <Tooltip title={t(Translation.Misc.Cancel)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={selectBasketRowOnClick} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </Tooltip>\n ) : (\n <Tooltip title={t(Translation.Step.Confirmation.EditThisProperty)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={editOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Edit)}\n </BEButton>\n </div>\n </Tooltip>\n )}\n\n <span className=\"u-pad-left--light u-pad-right--light\" style={{ color: Color.LightGrey }}>\n |\n </span>\n <Tooltip title={removeRate}>\n <div>\n <BEButton isText size=\"tiny\" primary disabled={isOnlyRate} onClick={removeOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Remove)}\n </BEButton>\n </div>\n </Tooltip>\n </div>\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"BESummaryRoomRow.js","sourceRoot":"/","sources":["src/components/summary/BESummaryRoomRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { useSearchScopeHook } from '@/hooks/useSearchScopeHook';\nimport BasketRow from '@/models/BasketRow';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { Color } from '@/util/Color';\nimport getStepRoom from '@/util/GetStepRoom';\nimport StringHelper from '@/util/StringHelper';\n\ninterface BESummaryRoomRowProps {\n index: number;\n row: BasketRow;\n showImages: boolean;\n\n onEditPropertyClicked?: () => void;\n}\n\nexport default function BESummaryRoomRow(props: BESummaryRoomRowProps) {\n const basketContext = useContext(BasketContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { isAccent2ColorDark, hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { showChildren } = useSearchScopeHook();\n\n const { index, row, showImages } = props;\n\n const totalPrice = row.getTotalPrice(true);\n const rate = row.getRate();\n\n const isSelected = basketContext.selectedBasketRow?.getID() === row.getID();\n const isOnlyRate = basketContext.currentBasketRows.length === 1;\n\n const removeRate = t(isOnlyRate ? Translation.Step.Room.Summary.NoRemoveLastRate : Translation.Step.Room.Summary.RemoveThisRate);\n\n const rowFees = row.getRate()?.getTotalFees();\n const rowTaxes = row.getRate()?.getTotalTaxes();\n\n const cancelEditBasketRowOnClick = () => basketContext.clearSelectedRates(); //Set the selected basket row to null, ensuring that no row is selected for editing.\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n navigate(getStepRoom().getStepUrl());\n }\n basketContext.selectBasketRow(row);\n\n if (props.onEditPropertyClicked) {\n props.onEditPropertyClicked();\n }\n };\n const removeOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n navigate(getStepRoom().getStepUrl());\n }\n basketContext.removeBasketRow(row);\n };\n\n const promoApplied = row.isPromoCodeValid();\n\n const shouldTextBeWhite = isAccent2ColorDark && isSelected;\n const textWhiteOr = (color = Color.Graphite) => {\n return shouldTextBeWhite ? Color.White : color;\n };\n\n return (\n <>\n {index >= 1 && <LineBreak noMargins darker />}\n <div key={row.getID()} className={'booking-engine-summary--row' + (isSelected ? ' --selected' : '')}>\n {showImages && (\n <div className=\"u-border-rounded\" style={{ height: '190px' }}>\n <ImageGallerySlider images={row.getRoom().getImages()} imageSize={ImageSize.Tiny} />\n </div>\n )}\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={textWhiteOr(Color.DarkGrey)}>\n <strong>\n {t(Translation.Step.Date.Room)} {index + 1}\n </strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text color={textWhiteOr(Color.Navy)}>\n <strong>{rate?.getRoom().name}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {rate?.name}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Arrival)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getArrivalDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Departure)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getDepartureDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--medium u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {[\n StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t),\n showChildren ? StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t) : null,\n hotel?.childConfiguration?.supportInfants ? StringHelper.pluralWithDictAndCount(row.getInfants(), Translation.Step.Date.Infant, t) : null,\n ]\n .filter((item) => !!item)\n .join(`, `)}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Rates)} ({t(Translation.Misc.PerNight)})\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rate?.getAveragePrice(true)}</Currency>\n </Text>\n </div>\n {promoApplied && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.PromoCode)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n {row.getPromoCode()}\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.General.RoomTotal)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{totalPrice}</Currency>\n </Text>\n </div>\n {!!rowFees && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Fees)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowFees}</Currency>\n </Text>\n </div>\n )}\n {!!rowTaxes && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Taxes)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowTaxes}</Currency>\n </Text>\n </div>\n )}\n <div className=\"u-marg-top u-marg-bottom u-flex justify-content-start\">\n {isSelected ? (\n <Tooltip title={t(Translation.Misc.Cancel)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={cancelEditBasketRowOnClick} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </Tooltip>\n ) : (\n <Tooltip title={t(Translation.Step.Confirmation.EditThisProperty)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={editOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Edit)}\n </BEButton>\n </div>\n </Tooltip>\n )}\n\n <span className=\"u-pad-left--light u-pad-right--light\" style={{ color: Color.LightGrey }}>\n |\n </span>\n <Tooltip title={removeRate}>\n <div>\n <BEButton isText size=\"tiny\" primary disabled={isOnlyRate} onClick={removeOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Remove)}\n </BEButton>\n </div>\n </Tooltip>\n </div>\n </div>\n </>\n );\n}\n"]}
@@ -1,3 +1,6 @@
1
- import { FC } from 'react';
2
- import { RouteProps } from 'react-router-dom';
3
- export declare const PrivateRoute: FC<RouteProps>;
1
+ import React, { FC } from 'react';
2
+ interface PrivateRouteProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const PrivateRoute: FC<PrivateRouteProps>;
6
+ export {};
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
@@ -18,17 +7,17 @@ exports.PrivateRoute = void 0;
18
7
  const contexts_1 = require("../contexts/index.js");
19
8
  const react_1 = __importDefault(require("react"));
20
9
  const react_router_dom_1 = require("react-router-dom");
21
- const PrivateRoute = (_a) => {
22
- var { children, render } = _a, rest = __rest(_a, ["children", "render"]);
10
+ const PrivateRoute = ({ children }) => {
23
11
  const { cognitoLoginState, loading } = (0, contexts_1.useAuthentication)();
24
12
  const isAuthenticated = cognitoLoginState === contexts_1.CognitoLoginState.Success;
25
- return (react_1.default.createElement(react_router_dom_1.Route, Object.assign({}, rest, { render: (...params) => {
26
- if (loading || isAuthenticated)
27
- return render === null || render === void 0 ? void 0 : render(...params);
28
- return (react_1.default.createElement(react_router_dom_1.Redirect, { to: {
29
- pathname: '/find-reservation',
30
- } }));
31
- } }), isAuthenticated ? children : null));
13
+ const location = (0, react_router_dom_1.useLocation)();
14
+ if (loading) {
15
+ return null;
16
+ }
17
+ if (!isAuthenticated) {
18
+ return react_1.default.createElement(react_router_dom_1.Navigate, { to: "/find-reservation", state: { from: location }, replace: true });
19
+ }
20
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
32
21
  };
33
22
  exports.PrivateRoute = PrivateRoute;
34
23
  //# sourceMappingURL=PrivateRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateRoute.js","sourceRoot":"/","sources":["src/containers/PrivateRoute.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA0E;AAC1E,kDAAkC;AAClC,uDAA+D;AAExD,MAAM,YAAY,GAAmB,CAAC,EAA6B,EAAE,EAAE;QAAjC,EAAE,QAAQ,EAAE,MAAM,OAAW,EAAN,IAAI,cAA3B,sBAA6B,CAAF;IACpE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAiB,GAAE,CAAC;IAC3D,MAAM,eAAe,GAAG,iBAAiB,KAAK,4BAAiB,CAAC,OAAO,CAAC;IACxE,OAAO,CACH,8BAAC,wBAAK,oBACE,IAAI,IACR,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE;YAClB,IAAI,OAAO,IAAI,eAAe;gBAAE,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,MAAM,CAAC,CAAC;YAC3D,OAAO,CACH,8BAAC,2BAAQ,IACL,EAAE,EAAE;oBACA,QAAQ,EAAE,mBAAmB;iBAChC,GACH,CACL,CAAC;QACN,CAAC,KAEA,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC9B,CACX,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,YAAY,gBAoBvB","sourcesContent":["import { CognitoLoginState, useAuthentication } from '@frontend/contexts';\nimport React, { FC } from 'react';\nimport { Redirect, Route, RouteProps } from 'react-router-dom';\n\nexport const PrivateRoute: FC<RouteProps> = ({ children, render, ...rest }) => {\n const { cognitoLoginState, loading } = useAuthentication();\n const isAuthenticated = cognitoLoginState === CognitoLoginState.Success;\n return (\n <Route\n {...rest}\n render={(...params) => {\n if (loading || isAuthenticated) return render?.(...params);\n return (\n <Redirect\n to={{\n pathname: '/find-reservation',\n }}\n />\n );\n }}\n >\n {isAuthenticated ? children : null}\n </Route>\n );\n};\n"]}
1
+ {"version":3,"file":"PrivateRoute.js","sourceRoot":"/","sources":["src/containers/PrivateRoute.tsx"],"names":[],"mappings":";;;;;;AAAA,iDAA0E;AAC1E,kDAAkC;AAClC,uDAAyD;AAMlD,MAAM,YAAY,GAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAiB,GAAE,CAAC;IAC3D,MAAM,eAAe,GAAG,iBAAiB,KAAK,4BAAiB,CAAC,OAAO,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,IAAI,OAAO,EAAE;QACT,OAAO,IAAI,CAAC;KACf;IAED,IAAI,CAAC,eAAe,EAAE;QAClB,OAAO,8BAAC,2BAAQ,IAAC,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,SAAG,CAAC;KACjF;IAED,OAAO,8DAAG,QAAQ,CAAI,CAAC;AAC3B,CAAC,CAAC;AAdW,QAAA,YAAY,gBAcvB","sourcesContent":["import { CognitoLoginState, useAuthentication } from '@frontend/contexts';\nimport React, { FC } from 'react';\nimport { Navigate, useLocation } from 'react-router-dom';\n\ninterface PrivateRouteProps {\n children: React.ReactNode;\n}\n\nexport const PrivateRoute: FC<PrivateRouteProps> = ({ children }) => {\n const { cognitoLoginState, loading } = useAuthentication();\n const isAuthenticated = cognitoLoginState === CognitoLoginState.Success;\n const location = useLocation();\n\n if (loading) {\n return null;\n }\n\n if (!isAuthenticated) {\n return <Navigate to=\"/find-reservation\" state={{ from: location }} replace />;\n }\n\n return <>{children}</>;\n};\n"]}
@@ -14,7 +14,7 @@ export interface BasketContextType {
14
14
  startDate: dayjs.Dayjs;
15
15
  endDate: dayjs.Dayjs;
16
16
  isLoadingPriceQuote: boolean;
17
- addBasketRow: (row: BasketRow, selectThisRate?: boolean, neverSelectThisRate?: boolean) => void;
17
+ addBasketRow: (row: BasketRow) => void;
18
18
  addRate: (rate: RoomRate, notify?: boolean) => Promise<void>;
19
19
  getAllValidRows: () => BasketRow[];
20
20
  getAllDatelessRows: () => BasketRow[];
@@ -33,7 +33,7 @@ export interface BasketContextType {
33
33
  selectBasketRow: (row: BasketRow | null) => void;
34
34
  setStartDate: (date: dayjs.Dayjs) => void;
35
35
  setEndDate: (date: dayjs.Dayjs) => void;
36
- getBasketQuoteDetails: () => void;
36
+ getBasketQuoteDetails: (confirmationStepIsActive: () => boolean) => void;
37
37
  hasCheckedOut: boolean;
38
38
  reservationData: ReservationsDTO;
39
39
  booked: (data: ReservationsDTO, reservationRequest?: RoomstaySession['reservationRequest']) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BasketContextType.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextType.ts"],"names":[],"mappings":"","sourcesContent":["import type dayjs from 'dayjs';\n\nimport type { Addon } from '@/models/Addon/Addon';\nimport type ReservationsDTO from '@/models/Api/ReservationsDTO';\nimport type BasketAddonRow from '@/models/BasketAddonRow';\nimport type BasketRow from '@/models/BasketRow';\nimport type { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport type { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomstaySession } from '@/models/RoomstaySession';\n\nexport interface BasketContextType {\n selectedBasketRow: BasketRow;\n currentBasketRows: BasketRow[];\n basketAddonRows: BasketAddonRow[];\n loadedPromotion: IPromotion | null;\n\n startDate: dayjs.Dayjs;\n endDate: dayjs.Dayjs;\n\n isLoadingPriceQuote: boolean;\n\n addBasketRow: (row: BasketRow, selectThisRate?: boolean, neverSelectThisRate?: boolean) => void;\n addRate: (rate: RoomRate, notify?: boolean) => Promise<void>;\n\n getAllValidRows: () => BasketRow[];\n getAllDatelessRows: () => BasketRow[];\n\n getNumberOfAdults: (withTranslation: boolean) => number | string;\n getNumberOfChildren: (withTranslation: boolean) => number | string;\n getNumberOfInfants: (withTranslation: boolean) => number | string;\n getNumberOfRooms: (withTranslation: boolean) => number | string;\n\n getTotalPrice: (getOrigianl?: boolean) => any;\n getTotalDeposit: () => number;\n getTotalFees: () => number;\n getTotalPayNow: () => number;\n getTotalPayLater: () => number;\n\n updateBasketRow: (row: BasketRow, updateGlobalDates?: boolean) => void;\n removeBasketRow: (row: BasketRow) => void;\n clearBasketRows: (confirm: boolean) => void;\n selectBasketRow: (row: BasketRow | null) => void;\n\n setStartDate: (date: dayjs.Dayjs) => void;\n setEndDate: (date: dayjs.Dayjs) => void;\n getBasketQuoteDetails: () => void;\n\n hasCheckedOut: boolean;\n reservationData: ReservationsDTO;\n booked: (data: ReservationsDTO, reservationRequest?: RoomstaySession['reservationRequest']) => Promise<void>;\n rollback: () => void;\n checkedOut: (data: ReservationsDTO) => void;\n clearSelectedRates: () => void;\n finish: () => void;\n\n getRowForAddon: (selectedAddon: Addon) => BasketAddonRow | undefined;\n\n setAddonQuantities: (addon: Addon, quantities: { quantity: number; adult: number; child: number }, selectedDate: string, selectedTime: string) => void;\n\n removeBasketAddonRow: (row: BasketAddonRow) => void;\n attemptSelectUnfilledRow: () => BasketRow | undefined;\n\n initBasketRows: (basketRows: BasketRow[]) => void;\n}\n"]}
1
+ {"version":3,"file":"BasketContextType.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextType.ts"],"names":[],"mappings":"","sourcesContent":["import type dayjs from 'dayjs';\nimport React from 'react';\n\nimport type { Addon } from '@/models/Addon/Addon';\nimport type ReservationsDTO from '@/models/Api/ReservationsDTO';\nimport type BasketAddonRow from '@/models/BasketAddonRow';\nimport type BasketRow from '@/models/BasketRow';\nimport type { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport type { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomstaySession } from '@/models/RoomstaySession';\n\nexport interface BasketContextType {\n selectedBasketRow: BasketRow;\n currentBasketRows: BasketRow[];\n basketAddonRows: BasketAddonRow[];\n loadedPromotion: IPromotion | null;\n\n startDate: dayjs.Dayjs;\n endDate: dayjs.Dayjs;\n\n isLoadingPriceQuote: boolean;\n\n addBasketRow: (row: BasketRow) => void;\n addRate: (rate: RoomRate, notify?: boolean) => Promise<void>;\n\n getAllValidRows: () => BasketRow[];\n getAllDatelessRows: () => BasketRow[];\n\n getNumberOfAdults: (withTranslation: boolean) => number | string;\n getNumberOfChildren: (withTranslation: boolean) => number | string;\n getNumberOfInfants: (withTranslation: boolean) => number | string;\n getNumberOfRooms: (withTranslation: boolean) => number | string;\n\n getTotalPrice: (getOrigianl?: boolean) => any;\n getTotalDeposit: () => number;\n getTotalFees: () => number;\n getTotalPayNow: () => number;\n getTotalPayLater: () => number;\n\n updateBasketRow: (row: BasketRow, updateGlobalDates?: boolean) => void;\n removeBasketRow: (row: BasketRow) => void;\n\n clearBasketRows: (confirm: boolean) => void;\n selectBasketRow: (row: BasketRow | null) => void;\n\n setStartDate: (date: dayjs.Dayjs) => void;\n setEndDate: (date: dayjs.Dayjs) => void;\n getBasketQuoteDetails: (confirmationStepIsActive: () => boolean) => void;\n\n hasCheckedOut: boolean;\n reservationData: ReservationsDTO;\n booked: (data: ReservationsDTO, reservationRequest?: RoomstaySession['reservationRequest']) => Promise<void>;\n rollback: () => void;\n checkedOut: (data: ReservationsDTO) => void;\n clearSelectedRates: () => void;\n finish: () => void;\n\n getRowForAddon: (selectedAddon: Addon) => BasketAddonRow | undefined;\n\n setAddonQuantities: (addon: Addon, quantities: { quantity: number; adult: number; child: number }, selectedDate: string, selectedTime: string) => void;\n\n removeBasketAddonRow: (row: BasketAddonRow) => void;\n attemptSelectUnfilledRow: () => BasketRow | undefined;\n\n initBasketRows: (basketRows: BasketRow[]) => void;\n}\n"]}
@@ -74,7 +74,7 @@ function BasketContextWrapper(props) {
74
74
  const { t } = (0, react_i18next_1.useTranslation)();
75
75
  const { hotel } = (0, hooks_1.useCurrentHotel)();
76
76
  const updateQueryParams = (0, UpdateQueryParameters_1.useUpdateQueryParameters)();
77
- const history = (0, react_router_dom_1.useHistory)();
77
+ const navigate = (0, react_router_dom_1.useNavigate)();
78
78
  const historyConsistentPush = (0, HistoryConsistentPush_1.useHistoryConsistentPush)();
79
79
  const { signedInUser, isExternalMemberHotel, memberNumber, memberOnlyModalPromotion } = (0, useSignedInMember_1.useSignedInMember)();
80
80
  const notifications = (0, react_1.useContext)(contexts_1.NotificationContext);
@@ -203,14 +203,16 @@ function BasketContextWrapper(props) {
203
203
  return count;
204
204
  }
205
205
  };
206
- const getNextAvailableBasketRow = (exclude) => {
207
- const arrayLength = currentBasketRows.length;
208
- for (let i = 0; i < arrayLength; i++) {
209
- if ((!exclude || (exclude && exclude.getID() !== currentBasketRows[i].getID())) && !currentBasketRows[i].getRate()) {
210
- return currentBasketRows[i];
211
- }
212
- }
213
- return null;
206
+ const getNextAvailableBasketRow = (deletedBasketRow) => {
207
+ if (!currentBasketRows.length)
208
+ return null;
209
+ // Filter out the excluded basket row if provided
210
+ const filteredRows = deletedBasketRow ? currentBasketRows.filter((row) => row.getID() !== deletedBasketRow.getID()) : currentBasketRows;
211
+ // Find the first row that does not have a rate assigned
212
+ const availableRow = filteredRows.find((row) => !row.getRate());
213
+ // Return a row without a rate if found
214
+ // If no such row exists , return the last row in the list
215
+ return availableRow !== null && availableRow !== void 0 ? availableRow : filteredRows[filteredRows.length - 1];
214
216
  };
215
217
  const updateQueryParameters = (row) => {
216
218
  if (!row)
@@ -277,16 +279,40 @@ function BasketContextWrapper(props) {
277
279
  isLoadingPriceQuote,
278
280
  loadedPromotion,
279
281
  /**
280
- * When adding a basket row, will check if there is a `selectedBasketRow`
281
- * if one is already set, row will simply get added, otherwise selectedBasketRow
282
- * gets set
282
+ * Adds a new basket row and applies relevant updates:
283
+ * - Synchronizes the selected date range.
284
+ * - Applies any applicable member-only promotions.
285
+ * - Ensures proper selection logic for the basket row.
286
+ *
287
+ * Selection logic:
288
+ * - If the basket is empty, the newly added row is automatically selected.
289
+ * - If a row is already selected:
290
+ * - If the selected row has an assigned rate, update the selection to the new row.
291
+ * - Otherwise, keep the current selection (allowing continued editing of the existing row).
292
+ * - If no row is selected, set the new row as the selected row.
293
+ *
294
+ * @param {BasketRow} row - The basket row to add.
283
295
  */
284
- addBasketRow: (row, selectThisRate = false, neverSelectThisRate = false) => {
296
+ addBasketRow: (row) => {
285
297
  syncSelectedDateRange(row);
286
298
  checkAndApplyMemberOnlyPromo(row);
287
- if ((!selectedBasketRow && (!row.isValid() || !currentBasketRows.length || currentBasketRows.length - workingContext.getAllValidRows().length === 0)) ||
288
- selectThisRate) {
289
- if (!neverSelectThisRate) {
299
+ // Determine if the basket is currently empty
300
+ const isEmptyRows = !currentBasketRows.length;
301
+ if (isEmptyRows) {
302
+ // If empty, set the newly added row as the selected basket row
303
+ setSelectedBasketRow(row);
304
+ }
305
+ else {
306
+ if (selectedBasketRow) {
307
+ // Determine if the currently selected row has an assigned rate
308
+ const isSelectedRowAssignedRate = selectedBasketRow && selectedBasketRow.getRate();
309
+ if (isSelectedRowAssignedRate) {
310
+ // If the selected row has a rate, update the selection to the new row
311
+ setSelectedBasketRow(row);
312
+ }
313
+ }
314
+ else {
315
+ // If no row is currently selected, set the new row as the selected basket row
290
316
  setSelectedBasketRow(row);
291
317
  }
292
318
  }
@@ -352,12 +378,17 @@ function BasketContextWrapper(props) {
352
378
  react_1.default.createElement("strong", { className: "u-marg-left--light" }, rate.getRoom().name))),
353
379
  });
354
380
  }
355
- const nextAvailable = getNextAvailableBasketRow(basketRow);
356
- if (nextAvailable) {
381
+ const nextAvailable = getNextAvailableBasketRow();
382
+ if (!(nextAvailable === null || nextAvailable === void 0 ? void 0 : nextAvailable.getRate())) {
383
+ // If the next available row does not have a rate assigned,
384
+ // set it as the selected basket row to allow rate assignment.
357
385
  setSelectedBasketRow(nextAvailable);
358
386
  }
359
387
  else {
388
+ // If all rows already have a rate assigned
389
+ // Set the selected basket row to null, ensuring that no row is selected for editing.
360
390
  setSelectedBasketRow(null);
391
+ // Determine whether the next step is an add-on selection step.
361
392
  const isNextStepAddon = StepManager_1.default.getNextStepUrl((0, GetStepRoom_1.default)()) === StepAddon_1.default.getStepUrl();
362
393
  if (isNextStepAddon) {
363
394
  if (addons.length) {
@@ -372,7 +403,7 @@ function BasketContextWrapper(props) {
372
403
  }
373
404
  }
374
405
  }),
375
- getBasketQuoteDetails: () => {
406
+ getBasketQuoteDetails: (confirmationStepIsActive) => {
376
407
  const maxRetryAttempts = 5;
377
408
  if (!hotel || !(hotel === null || hotel === void 0 ? void 0 : hotel.requireDeposit)) {
378
409
  return false;
@@ -385,6 +416,12 @@ function BasketContextWrapper(props) {
385
416
  retryableObservable.subscribe((quote) => {
386
417
  if (quote === null)
387
418
  return;
419
+ if (!confirmationStepIsActive()) {
420
+ // User has left the Confirmation step before the quote was ready, we'll stop here instead of updating the basket.
421
+ // If we don't stop here, the user will be redirected back to the Confirmation step.
422
+ setIsLoadingPriceQuote(false);
423
+ return;
424
+ }
388
425
  for (const quoteRow of quote.rows) {
389
426
  const basketRow = currentBasketRows.find((row) => row.getID() === quoteRow.rowId);
390
427
  if (!basketRow) {
@@ -466,10 +503,15 @@ function BasketContextWrapper(props) {
466
503
  const rowsBeforeRemoval = currentBasketRows.length;
467
504
  basketRowReducer({ method: 'Remove', row });
468
505
  if (selectedBasketRow && row.getID() === selectedBasketRow.getID()) {
469
- setSelectedBasketRow(getNextAvailableBasketRow(row));
506
+ const availableBasketRow = getNextAvailableBasketRow(row);
507
+ if (availableBasketRow) {
508
+ setStartDate(availableBasketRow.getStartDate());
509
+ setEndDate(availableBasketRow.getEndDate());
510
+ }
511
+ setSelectedBasketRow(availableBasketRow);
470
512
  }
471
513
  if (rowsBeforeRemoval === 1) {
472
- workingContext.addBasketRow(new BasketRow_1.default(), true);
514
+ workingContext.addBasketRow(new BasketRow_1.default());
473
515
  }
474
516
  },
475
517
  clearBasketRows: (confirm) => {
@@ -479,15 +521,22 @@ function BasketContextWrapper(props) {
479
521
  },
480
522
  updateBasketRow,
481
523
  /**
482
- * Select passed basket row, and update all inputs (like start date)
524
+ * Selects the given basket row and updates all relevant inputs (e.g., start date and end date).
525
+ * - If the provided row is valid, it updates the selected row and sets the corresponding dates.
526
+ * - If the row is null or invalid, it attempts to select the next available basket row.
527
+ *
528
+ * @param {BasketRow | null} row - The basket row to be selected.
529
+ * @returns {Promise<void>} A promise that resolves when the selection is complete.
483
530
  */
484
531
  selectBasketRow: (row) => __awaiter(this, void 0, void 0, function* () {
485
532
  if (row && row.isValid()) {
486
533
  setStartDate(row.getStartDate());
487
534
  setEndDate(row.getEndDate());
535
+ // Update the selected basket row
488
536
  setSelectedBasketRow(row);
489
537
  }
490
538
  else {
539
+ // If the row is invalid or null, select the next available basket row
491
540
  setSelectedBasketRow(getNextAvailableBasketRow());
492
541
  }
493
542
  }),
@@ -526,12 +575,15 @@ function BasketContextWrapper(props) {
526
575
  const params = new URLSearchParams(window.location.search);
527
576
  params.delete('planpay_checkout_id');
528
577
  window.history.replaceState({}, '', `${window.location.pathname}?${params}`);
529
- history.push(StepThanks_1.default.getStepUrl());
578
+ navigate(StepThanks_1.default.getStepUrl());
530
579
  },
531
580
  finish: () => {
532
581
  setReservationData(null);
533
582
  setHasCheckedOut(false);
534
583
  },
584
+ /**
585
+ * Set the selected basket row to null, ensuring that no row is selected for editing.
586
+ */
535
587
  clearSelectedRates: () => {
536
588
  setSelectedBasketRow(null);
537
589
  },
@@ -573,12 +625,21 @@ function BasketContextWrapper(props) {
573
625
  removeBasketAddonRow: (row) => {
574
626
  setBasketAddonRows((oldRows) => oldRows.filter((item) => item.getID() !== row.getID()));
575
627
  },
628
+ /**
629
+ * Attempts to select the next available basket row that does not have a rate assigned.
630
+ * If such a row is found, it updates the selected basket row and returns it.
631
+ * Otherwise, it does nothing.
632
+ *
633
+ * @returns {BasketRow | undefined} The selected basket row without a rate, or undefined if none is found.
634
+ */
576
635
  attemptSelectUnfilledRow: () => {
577
636
  const row = getNextAvailableBasketRow();
578
- if (row) {
637
+ if (row && !(row === null || row === void 0 ? void 0 : row.getRate())) {
638
+ // Select the first available row without a rate and update the selected basket row
579
639
  setSelectedBasketRow(row);
580
640
  return row;
581
641
  }
642
+ // No available unfilled row found, return undefined
582
643
  },
583
644
  };
584
645
  return (react_1.default.createElement(contexts_1.BasketContext.Provider, { value: workingContext },