@roomstay/frontend 2.3.13-2 → 2.3.13

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.
@@ -50,7 +50,6 @@ const FindReservation_1 = __importStar(require("../../pages/findReservation/Find
50
50
  const FindReservationResults_1 = __importDefault(require("../../pages/findReservation/FindReservationResults"));
51
51
  const HotelInfo_1 = __importDefault(require("../../pages/hotel/HotelInfo"));
52
52
  const HotelInfoPlaceholder_1 = __importDefault(require("../../pages/hotel/HotelInfoPlaceholder"));
53
- const StepHotel_1 = __importDefault(require("../../pages/steps/StepHotel/StepHotel"));
54
53
  const FeaturedPromoFeature_1 = __importDefault(require("../../providers/feature/FeaturedPromoFeature"));
55
54
  const MemberPortalFeature_1 = __importDefault(require("../../providers/feature/MemberPortalFeature"));
56
55
  const FeatureProvider_1 = __importDefault(require("../../providers/FeatureProvider"));
@@ -190,7 +189,7 @@ function FullPageEngineContextWrapper() {
190
189
  firstBasketRow = basketRow;
191
190
  }
192
191
  }
193
- if ((firstBasketRow === null || firstBasketRow === void 0 ? void 0 : firstBasketRow.getStartDate()) && firstBasketRow.getEndDate() && StepManager_1.default.getFirstStep() !== StepHotel_1.default) {
192
+ if ((firstBasketRow === null || firstBasketRow === void 0 ? void 0 : firstBasketRow.getStartDate()) && firstBasketRow.getEndDate()) {
194
193
  setInitialStep((0, GetStepRoom_1.default)());
195
194
  }
196
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Redirect, Route, useLocation, useRouteMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath, QUERY_PARAM_NAME } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useRouteMatch({\n path: StepManager.STEP_BASE,\n });\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RoomType']: new RoomTypeFilter([roomCode]),\n });\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RateType']: new RateTypeFilter([rateCode]),\n });\n }\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n basketContext.addBasketRow(basketRow, false, i !== 0);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate() && StepManager.getFirstStep() !== StepHotel) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) as Step);\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n const renderRouteHandler = () => {\n return <Redirect to={StepManager.getFirstStep().getStepUrl()} />;\n };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <AuthenticationContextProvider>\n <ModalContextWrapper>\n <ScrollToTop />\n <Route exact path=\"/\" render={renderRouteHandler} />\n <header className=\"engine-header\">\n <Header />\n </header>\n {engineReady && (\n <>\n <div className=\"engine-page\">\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <Route exact path={ROUTES.HOTEL_INFO} component={HotelInfo} />\n </React.Suspense>\n <React.Suspense fallback={<div>Loading...</div>}>\n <Route\n exact\n path={`/:${QUERY_PARAM_NAME}(${Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .join('|')})`}\n component={FindReservation}\n />\n <Route path=\"/find-reservation/:ref/:email\" component={FindReservationResults} />\n </React.Suspense>\n\n <PrivateRoute path=\"/account\">\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n </div>\n <div className=\"engine-body\">\n <AvailableUpgradesModal />\n {StepManager.getSteps().map((step: Step) => (\n <StepRoute key={step.getName()} step={step} />\n ))}\n <Route path=\"*\" component={PageColorComponent} />\n </div>\n </>\n )}\n <RoomstayMark />\n </ModalContextWrapper>\n </AuthenticationContextProvider>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Redirect, Route, useLocation, useRouteMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath, QUERY_PARAM_NAME } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useRouteMatch({\n path: StepManager.STEP_BASE,\n });\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RoomType']: new RoomTypeFilter([roomCode]),\n });\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RateType']: new RateTypeFilter([rateCode]),\n });\n }\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n basketContext.addBasketRow(basketRow, false, i !== 0);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate()) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) as Step);\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n const renderRouteHandler = () => {\n return <Redirect to={StepManager.getFirstStep().getStepUrl()} />;\n };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <AuthenticationContextProvider>\n <ModalContextWrapper>\n <ScrollToTop />\n <Route exact path=\"/\" render={renderRouteHandler} />\n <header className=\"engine-header\">\n <Header />\n </header>\n {engineReady && (\n <>\n <div className=\"engine-page\">\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <Route exact path={ROUTES.HOTEL_INFO} component={HotelInfo} />\n </React.Suspense>\n <React.Suspense fallback={<div>Loading...</div>}>\n <Route\n exact\n path={`/:${QUERY_PARAM_NAME}(${Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .join('|')})`}\n component={FindReservation}\n />\n <Route path=\"/find-reservation/:ref/:email\" component={FindReservationResults} />\n </React.Suspense>\n\n <PrivateRoute path=\"/account\">\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n </div>\n <div className=\"engine-body\">\n <AvailableUpgradesModal />\n {StepManager.getSteps().map((step: Step) => (\n <StepRoute key={step.getName()} step={step} />\n ))}\n <Route path=\"*\" component={PageColorComponent} />\n </div>\n </>\n )}\n <RoomstayMark />\n </ModalContextWrapper>\n </AuthenticationContextProvider>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
@@ -1,7 +1,9 @@
1
1
  import { IEventReservation } from '../../models/Api/IEventReservation';
2
+ import BasketRow from '../../models/BasketRow';
2
3
  import { RoomstayEvent } from '../RoomstayEvent';
3
4
  export declare class StepThanksViewEvent extends RoomstayEvent {
4
5
  reservations: IEventReservation[];
5
- constructor(res: IEventReservation[]);
6
+ basketRows: BasketRow[];
7
+ constructor(res: IEventReservation[], rows: BasketRow[]);
6
8
  static getLabel(): string;
7
9
  }
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StepThanksViewEvent = void 0;
4
4
  const RoomstayEvent_1 = require("../RoomstayEvent");
5
5
  class StepThanksViewEvent extends RoomstayEvent_1.RoomstayEvent {
6
- constructor(res) {
6
+ constructor(res, rows) {
7
7
  super();
8
8
  this.reservations = res;
9
+ this.basketRows = rows;
9
10
  }
10
11
  static getLabel() {
11
12
  return 'View/Thanks';
@@ -1 +1 @@
1
- {"version":3,"file":"StepThanksViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepThanksViewEvent.ts"],"names":[],"mappings":";;;AAEA,oDAAiD;AAEjD,MAAa,mBAAoB,SAAQ,6BAAa;IAGlD,YAAmB,GAAwB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAZD,kDAYC","sourcesContent":["import { IEventReservation } from '@/models/Api/IEventReservation';\n\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepThanksViewEvent extends RoomstayEvent {\n public reservations: IEventReservation[];\n\n public constructor(res: IEventReservation[]) {\n super();\n\n this.reservations = res;\n }\n\n static getLabel(): string {\n return 'View/Thanks';\n }\n}\n"]}
1
+ {"version":3,"file":"StepThanksViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepThanksViewEvent.ts"],"names":[],"mappings":";;;AAGA,oDAAiD;AAEjD,MAAa,mBAAoB,SAAQ,6BAAa;IAIlD,YAAmB,GAAwB,EAAE,IAAiB;QAC1D,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAdD,kDAcC","sourcesContent":["import { IEventReservation } from '@/models/Api/IEventReservation';\nimport BasketRow from '@/models/BasketRow';\n\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepThanksViewEvent extends RoomstayEvent {\n public reservations: IEventReservation[];\n public basketRows: BasketRow[];\n\n public constructor(res: IEventReservation[], rows: BasketRow[]) {\n super();\n\n this.reservations = res;\n this.basketRows = rows;\n }\n\n static getLabel(): string {\n return 'View/Thanks';\n }\n}\n"]}
@@ -70,7 +70,7 @@ function StepThanksComponent() {
70
70
  priceCurrency: ccx.currentCurrency,
71
71
  };
72
72
  });
73
- const event = new events_1.StepThanksViewEvent(reservations);
73
+ const event = new events_1.StepThanksViewEvent(reservations, basketContext.currentBasketRows);
74
74
  raise(event);
75
75
  return (0, TotalCalculator_1.calculateTotalForReservation)(checkoutData, !isFromRoomstay);
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepThanksComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepThanks/StepThanksComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport { ReservationAddonDTO, ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport ReservationRow from '@/pages/findReservation/ReservationRow';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\nimport { calculateTotalForReservation } from '@/util/TotalCalculator';\n\nexport default function StepThanksComponent() {\n const basketContext = useContext(BasketContext);\n\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n const { raise } = useEvent();\n\n const checkoutData = basketContext.reservationData;\n\n const isFromRoomstay = checkoutData?.itineraryNumber?.startsWith('RS');\n\n const { t } = useTranslation();\n\n const total = useCallback(() => {\n if (checkoutData?.reservations) {\n const reservations: IEventReservation[] = checkoutData?.reservations?.map((obj: ReservationDTO) => {\n const nightKeys = Object.keys(obj.nights);\n const dateFormat = 'YYYY-MM-DDTHH:mm:ss';\n\n return {\n reservationId: obj.reservationNumber,\n checkInTime: dayjs(nightKeys[0]).format(dateFormat),\n checkOutTime: dayjs(nightKeys[nightKeys.length - 1])\n .add(1, 'day')\n .format(dateFormat),\n totalPrice: obj.total.afterTax,\n priceCurrency: ccx.currentCurrency,\n };\n });\n\n const event = new StepThanksViewEvent(reservations);\n raise(event);\n\n return calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n useEffect(() => {\n return () => {\n basketContext.finish();\n };\n }, []);\n\n return (\n <div className=\"container u-marg-top--heavy\">\n <div className=\"row justify-content-center\">\n <div className=\"col-lg-8 col-md-12 u-flex align-items-center u-flex-direction-column\">\n <div className=\"u-marg-bottom\">\n <Icon icon={IconType.Check} size=\"48px\" color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding />\n </div>\n <div className=\"u-marg-bottom\" style={{ maxWidth: '530px' }}>\n <Headline size=\"large\" align={TextAlign.Center}>\n {t(Translation.Step.Thanks.ThankYouHeadline, { hotel: hotel?.name })}\n </Headline>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <Text color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.InvoiceNumber)} {checkoutData.itineraryNumber}\n </Text>\n </div>\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n <>\n <div className=\"u-marg-top w-100\">\n {checkoutData?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => {\n if (isFromRoomstay) {\n addons.push({ ...addon, nights: nights.length });\n } else {\n addons.push(addon);\n }\n });\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return <ReservationRow reservation={obj} key={obj.reservationNumber} />;\n })}\n </div>\n <LineBreak />\n\n <div className=\"w-100\">\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index) => (\n <Text\n style={{\n whiteSpace: 'pre',\n }}\n key={index}\n type={TextType.Small}\n >\n {comment}\n </Text>\n ))}\n </div>\n )}\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold size=\"large\" align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.IncludingTaxes)}\n </Text>\n </div>\n </>\n </div>\n </div>\n {checkoutData?.reservations?.map((obj: ReservationDTO, index) => {\n const nightKeys = Object.keys(obj.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n return (\n <script key={index} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org',\n '@type': 'LodgingReservation',\n reservationId: obj.reservationNumber,\n reservationStatus: 'http://schema.org/ReservationConfirmed',\n checkinTime: firstNight.format('YYYY-MM-DDTHH:mm:ss'),\n checkoutTime: lastNight.format('YYYY-MM-DDTHH:mm:ss'),\n totalPrice: obj.total.afterTax,\n basePrice: obj.total.beforeTax,\n priceCurrency: ccx.currentCurrency,\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"StepThanksComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepThanks/StepThanksComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport { ReservationAddonDTO, ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport ReservationRow from '@/pages/findReservation/ReservationRow';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\nimport { calculateTotalForReservation } from '@/util/TotalCalculator';\n\nexport default function StepThanksComponent() {\n const basketContext = useContext(BasketContext);\n\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n const { raise } = useEvent();\n\n const checkoutData = basketContext.reservationData;\n\n const isFromRoomstay = checkoutData?.itineraryNumber?.startsWith('RS');\n\n const { t } = useTranslation();\n\n const total = useCallback(() => {\n if (checkoutData?.reservations) {\n const reservations: IEventReservation[] = checkoutData?.reservations?.map((obj: ReservationDTO) => {\n const nightKeys = Object.keys(obj.nights);\n const dateFormat = 'YYYY-MM-DDTHH:mm:ss';\n\n return {\n reservationId: obj.reservationNumber,\n checkInTime: dayjs(nightKeys[0]).format(dateFormat),\n checkOutTime: dayjs(nightKeys[nightKeys.length - 1])\n .add(1, 'day')\n .format(dateFormat),\n totalPrice: obj.total.afterTax,\n priceCurrency: ccx.currentCurrency,\n };\n });\n const event = new StepThanksViewEvent(reservations, basketContext.currentBasketRows);\n raise(event);\n\n return calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n useEffect(() => {\n return () => {\n basketContext.finish();\n };\n }, []);\n\n return (\n <div className=\"container u-marg-top--heavy\">\n <div className=\"row justify-content-center\">\n <div className=\"col-lg-8 col-md-12 u-flex align-items-center u-flex-direction-column\">\n <div className=\"u-marg-bottom\">\n <Icon icon={IconType.Check} size=\"48px\" color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding />\n </div>\n <div className=\"u-marg-bottom\" style={{ maxWidth: '530px' }}>\n <Headline size=\"large\" align={TextAlign.Center}>\n {t(Translation.Step.Thanks.ThankYouHeadline, { hotel: hotel?.name })}\n </Headline>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <Text color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.InvoiceNumber)} {checkoutData.itineraryNumber}\n </Text>\n </div>\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n <>\n <div className=\"u-marg-top w-100\">\n {checkoutData?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => {\n if (isFromRoomstay) {\n addons.push({ ...addon, nights: nights.length });\n } else {\n addons.push(addon);\n }\n });\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return <ReservationRow reservation={obj} key={obj.reservationNumber} />;\n })}\n </div>\n <LineBreak />\n\n <div className=\"w-100\">\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index) => (\n <Text\n style={{\n whiteSpace: 'pre',\n }}\n key={index}\n type={TextType.Small}\n >\n {comment}\n </Text>\n ))}\n </div>\n )}\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold size=\"large\" align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.IncludingTaxes)}\n </Text>\n </div>\n </>\n </div>\n </div>\n {checkoutData?.reservations?.map((obj: ReservationDTO, index) => {\n const nightKeys = Object.keys(obj.nights);\n\n const firstNight = dayjs(nightKeys[0]);\n const lastNight = dayjs(nightKeys[nightKeys.length - 1]).add(1, 'day');\n\n return (\n <script key={index} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org',\n '@type': 'LodgingReservation',\n reservationId: obj.reservationNumber,\n reservationStatus: 'http://schema.org/ReservationConfirmed',\n checkinTime: firstNight.format('YYYY-MM-DDTHH:mm:ss'),\n checkoutTime: lastNight.format('YYYY-MM-DDTHH:mm:ss'),\n totalPrice: obj.total.afterTax,\n basePrice: obj.total.beforeTax,\n priceCurrency: ccx.currentCurrency,\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}