@roomstay/frontend 2.6.74 → 2.6.76

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 (42) hide show
  1. package/dist/177.bundle.js +1 -0
  2. package/dist/288.bundle.js +1 -1
  3. package/dist/449.bundle.js +1 -1
  4. package/dist/659.bundle.js +1 -1
  5. package/dist/978.bundle.js +1 -1
  6. package/dist/main.bundle.js +1 -1
  7. package/dist/src/components/steps/room/RoomList.js +1 -1
  8. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  9. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js +3 -2
  10. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js.map +1 -1
  11. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryForm.d.ts +25 -0
  12. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryForm.js +38 -0
  13. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryForm.js.map +1 -0
  14. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +17 -23
  15. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  16. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +59 -28
  17. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  18. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +1 -0
  19. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  20. package/dist/src/models/Api/HotelDTO.d.ts +1 -1
  21. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  22. package/dist/src/models/Client/Hotel/Hotel.d.ts +1 -0
  23. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  24. package/dist/src/pages/findReservation/FindReservationResults.js +2 -1
  25. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  26. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +1 -1
  27. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  28. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +1 -1
  29. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  30. package/dist/src/pages/steps/StepDate/StepDateComponent.js +1 -1
  31. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  32. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js +1 -1
  33. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js.map +1 -1
  34. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +1 -1
  35. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  36. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +1 -1
  37. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  38. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +3 -2
  39. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  40. package/dist/test.bundle.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/903.bundle.js +0 -1
@@ -60,7 +60,7 @@ function StepConfirmationComponent() {
60
60
  const event = new events_1.StepCheckoutViewEvent(currentBasketRows);
61
61
  raise(event);
62
62
  }, []);
63
- return (react_1.default.createElement("div", { className: "container" },
63
+ return (react_1.default.createElement("div", { className: "container rs-step-confirmation" },
64
64
  react_1.default.createElement(PageTitle_1.PageTitle, { step: "Confirmation" }),
65
65
  react_1.default.createElement(contexts_1.ConfirmationFormContextWrapper, null,
66
66
  react_1.default.createElement(BEMobileSummary_1.default, null),
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfirmationComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepConfirmation/StepConfirmationComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgI;AAChI,6CAAyD;AACzD,kDAA0B;AAC1B,+CAAqD;AACrD,iDAA+C;AAC/C,uDAAqD;AACrD,0DAAuD;AAEvD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,8DAA2D;AAC3D,yHAAiG;AACjG,gIAAwG;AACxG,0GAAkF;AAClF,wGAAgF;AAChF,2FAAmE;AACnE,8DAA2D;AAC3D,iDAA6C;AAC7C,wGAAgF;AAChF,mEAA2C;AAC3C,qEAA6C;AAE7C,uIAA+G;AAE/G,SAAS,yBAAyB;IAC9B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAQ,GAAE,CAAC;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,8BAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,uCAAK,SAAS,EAAC,WAAW;QACtB,8BAAC,qBAAS,IAAC,IAAI,EAAC,cAAc,GAAG;QACjC,8BAAC,yCAA8B;YAC3B,8BAAC,yBAAe,OAAG;YACnB,8BAAC,gCAAmB;gBAChB,8BAAC,kCAAqB;oBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;wBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;gCACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;gCACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;6BAC1B;4BAED,8BAAC,oBAAU,OAAG,CACX;wBACP,uCAAK,SAAS,EAAC,wCAAwC;4BACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAY,CACtE,CACP,CACN;oBAED,uCAAK,SAAS,EAAC,eAAe;wBAC1B,8BAAC,+BAAqB,OAAG,CACvB,CACc;gBACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;oBACnB,8BAAC,8BAAoB,OAAG,CACH,CAC5B,CACiB;YACtB,8BAAC,mBAAS,OAAG;YACb,8BAAC,gCAAmB;gBAChB,8BAAC,kCAAqB;oBAClB,uCAAK,SAAS,EAAC,iBAAiB;wBAC3B,CAAC,gCAAsB,CAAC,QAAQ,EAAE,IAAI,8BAAC,0BAAgB,OAAG;wBAC3D,8BAAC,sCAA4B,OAAG,CAC9B,CACc;gBAEvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;oBACnB,8BAAC,sCAA4B,IAAC,OAAO,EAAE,IAAA,eAAK,GAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAI;oBACpE,8BAAC,qBAAS,IAAC,UAAU,SAAG,CACH,CAC5B,CACiB,CACO,CAC/B,CACT,CAAC;AACN,CAAC;AAED,kBAAe,yBAAyB,CAAC","sourcesContent":["import { BasketContext, BookingEngineContext, ConfirmationFormContextWrapper, FullPageEngineContext } from '@frontend/contexts';\nimport { StepCheckoutViewEvent } from '@frontend/events';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { PageTitle } from '@/components/generic/PageTitle';\nimport AdditionalOffers from '@/components/steps/confirmation/additionalOffers/AdditionalOffers';\nimport StepConfirmationLimitedOffer from '@/components/steps/confirmation/StepConfirmationLimitedOffer';\nimport StepRoomBestRateAlert from '@/components/steps/room/StepRoomBestRateAlert';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { BESummary } from '@/components/summary/BESummary';\nimport { useEvent } from '@/hooks/EventHook';\nimport InlineAddonStepFeature from '@/providers/feature/InlineAddonStepFeature';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nimport StepConfirmationFormProvider from '../../../components/steps/confirmation/StepConfirmationFormProvider';\n\nfunction StepConfirmationComponent() {\n const context = useContext(BookingEngineContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { currentBasketRows } = useContext(BasketContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepCheckoutViewEvent(currentBasketRows);\n raise(event);\n }, []);\n\n return (\n <div className=\"container\">\n <PageTitle step=\"Confirmation\" />\n <ConfirmationFormContextWrapper>\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Navigation.Steps.Confirmation)}</Headline>\n </div>\n </>\n )}\n\n <div className=\"u-marg-top@m-\">\n <StepRoomBestRateAlert />\n </div>\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepRoomHotelDetails />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n <LineBreak />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n <div className=\"block-container\">\n {!InlineAddonStepFeature.isActive() && <AdditionalOffers />}\n <StepConfirmationFormProvider />\n </div>\n </StepLayoutLeftContent>\n\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepConfirmationLimitedOffer endDate={dayjs().add(10, 'minute')} />\n <BESummary showImages />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n </ConfirmationFormContextWrapper>\n </div>\n );\n}\n\nexport default StepConfirmationComponent;\n"]}
1
+ {"version":3,"file":"StepConfirmationComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepConfirmation/StepConfirmationComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgI;AAChI,6CAAyD;AACzD,kDAA0B;AAC1B,+CAAqD;AACrD,iDAA+C;AAC/C,uDAAqD;AACrD,0DAAuD;AAEvD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,8DAA2D;AAC3D,yHAAiG;AACjG,gIAAwG;AACxG,0GAAkF;AAClF,wGAAgF;AAChF,2FAAmE;AACnE,8DAA2D;AAC3D,iDAA6C;AAC7C,wGAAgF;AAChF,mEAA2C;AAC3C,qEAA6C;AAE7C,uIAA+G;AAE/G,SAAS,yBAAyB;IAC9B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAQ,GAAE,CAAC;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,8BAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,uCAAK,SAAS,EAAC,gCAAgC;QAC3C,8BAAC,qBAAS,IAAC,IAAI,EAAC,cAAc,GAAG;QACjC,8BAAC,yCAA8B;YAC3B,8BAAC,yBAAe,OAAG;YACnB,8BAAC,gCAAmB;gBAChB,8BAAC,kCAAqB;oBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;wBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;gCACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;gCACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;6BAC1B;4BAED,8BAAC,oBAAU,OAAG,CACX;wBACP,uCAAK,SAAS,EAAC,wCAAwC;4BACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAY,CACtE,CACP,CACN;oBAED,uCAAK,SAAS,EAAC,eAAe;wBAC1B,8BAAC,+BAAqB,OAAG,CACvB,CACc;gBACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;oBACnB,8BAAC,8BAAoB,OAAG,CACH,CAC5B,CACiB;YACtB,8BAAC,mBAAS,OAAG;YACb,8BAAC,gCAAmB;gBAChB,8BAAC,kCAAqB;oBAClB,uCAAK,SAAS,EAAC,iBAAiB;wBAC3B,CAAC,gCAAsB,CAAC,QAAQ,EAAE,IAAI,8BAAC,0BAAgB,OAAG;wBAC3D,8BAAC,sCAA4B,OAAG,CAC9B,CACc;gBAEvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;oBACnB,8BAAC,sCAA4B,IAAC,OAAO,EAAE,IAAA,eAAK,GAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAI;oBACpE,8BAAC,qBAAS,IAAC,UAAU,SAAG,CACH,CAC5B,CACiB,CACO,CAC/B,CACT,CAAC;AACN,CAAC;AAED,kBAAe,yBAAyB,CAAC","sourcesContent":["import { BasketContext, BookingEngineContext, ConfirmationFormContextWrapper, FullPageEngineContext } from '@frontend/contexts';\nimport { StepCheckoutViewEvent } from '@frontend/events';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { PageTitle } from '@/components/generic/PageTitle';\nimport AdditionalOffers from '@/components/steps/confirmation/additionalOffers/AdditionalOffers';\nimport StepConfirmationLimitedOffer from '@/components/steps/confirmation/StepConfirmationLimitedOffer';\nimport StepRoomBestRateAlert from '@/components/steps/room/StepRoomBestRateAlert';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { BESummary } from '@/components/summary/BESummary';\nimport { useEvent } from '@/hooks/EventHook';\nimport InlineAddonStepFeature from '@/providers/feature/InlineAddonStepFeature';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nimport StepConfirmationFormProvider from '../../../components/steps/confirmation/StepConfirmationFormProvider';\n\nfunction StepConfirmationComponent() {\n const context = useContext(BookingEngineContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { currentBasketRows } = useContext(BasketContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepCheckoutViewEvent(currentBasketRows);\n raise(event);\n }, []);\n\n return (\n <div className=\"container rs-step-confirmation\">\n <PageTitle step=\"Confirmation\" />\n <ConfirmationFormContextWrapper>\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Navigation.Steps.Confirmation)}</Headline>\n </div>\n </>\n )}\n\n <div className=\"u-marg-top@m-\">\n <StepRoomBestRateAlert />\n </div>\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepRoomHotelDetails />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n <LineBreak />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n <div className=\"block-container\">\n {!InlineAddonStepFeature.isActive() && <AdditionalOffers />}\n <StepConfirmationFormProvider />\n </div>\n </StepLayoutLeftContent>\n\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepConfirmationLimitedOffer endDate={dayjs().add(10, 'minute')} />\n <BESummary showImages />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n </ConfirmationFormContextWrapper>\n </div>\n );\n}\n\nexport default StepConfirmationComponent;\n"]}
@@ -83,7 +83,7 @@ const StepDateComponent = () => {
83
83
  selectBasketRow(null);
84
84
  }
85
85
  }, [currentStep, selectedBasketRow]);
86
- return (react_1.default.createElement("div", { className: "container" },
86
+ return (react_1.default.createElement("div", { className: "container rs-step-date" },
87
87
  context.screenSize <= ScreenSize_1.default.Medium && react_1.default.createElement(BEMobileSummary, null),
88
88
  context.screenSize >= ScreenSize_1.default.Large && (react_1.default.createElement(react_1.default.Fragment, null,
89
89
  react_1.default.createElement("div", { className: "row step-date-hotel-info" },
@@ -1 +1 @@
1
- {"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepDateViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { HotelOverridesContext } from 'contexts/HotelOverridesContext';\nimport React, { lazy, Suspense, useContext, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text from '@/components/generic/Text';\nimport PeoplePicker from '@/components/steps/date/PeoplePicker';\nimport StepDatePricePerRoom from '@/components/steps/date/StepDatePricePerRoom';\nimport StepOneDateRange from '@/components/steps/date/StepOneDateRange';\nimport StepOneDateRangePicker from '@/components/steps/date/StepOneDateRangePicker';\nimport StepOneDateRangePickerLegend from '@/components/steps/date/StepOneDateRangePickerLegend';\nimport StepOneNextStepButton from '@/components/steps/date/StepOneNextStepButton';\nimport StepOneStatusPeople from '@/components/steps/date/StepOneStatusPeople';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport StepDate from './StepDate';\nconst BEMobileSummary = lazy(() => import('@/components/summary/BEMobileSummary'));\n\nconst StepDateComponent = () => {\n const { currentStep } = useContext(FullPageEngineContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const { selectedBasketRow, selectBasketRow } = basketContext;\n const ccx = useContext(CompanyContext);\n const { hideByLine } = useContext(HotelOverridesContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const peopleRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (context.screenSize <= ScreenSize.Medium && basketContext.endDate) {\n if (peopleRef) {\n setTimeout(() => {\n peopleRef.current?.scrollIntoView?.({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n }, 50);\n }\n }\n }, [basketContext.endDate]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepDateViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n /**\n * Ensures that a basket row is always selected when navigating back to the \"Step Date\" step.\n *\n * - In [Step Room], after assigning a rate, the selected basket row may be set to null.\n * - When navigating back to [Step Date], ensure that at least one basket row is selected.\n */\n if (currentStep.getName() === StepDate.getName() && !selectedBasketRow) {\n selectBasketRow(null);\n }\n }, [currentStep, selectedBasketRow]);\n\n return (\n <div className=\"container\">\n {context.screenSize <= ScreenSize.Medium && <BEMobileSummary />}\n {context.screenSize >= ScreenSize.Large && (\n <>\n <div className=\"row step-date-hotel-info\">\n <div className=\"col-md-4 col-lg-3\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.Reservation)}</Headline>\n </div>\n <Headline className=\"hotel-name\" color={Color.Navy}>\n {hotel?.name}\n </Headline>\n {!hideByLine && (\n <Text className=\"company-name\" color={Color.DarkGrey}>\n {t(Translation.Misc.By)} {ccx.name}\n </Text>\n )}\n </div>\n <div className=\"col-md-8 col-lg-9\">\n <div className=\"row justify-content-between\">\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.SelectYourDate)}</Headline>\n </div>\n <div className=\"step-one-status\">\n <StepOneDateRange />\n <StepOneStatusPeople />\n </div>\n </div>\n <div className=\"col-md-4\">\n <StepDatePricePerRoom isMobile={false} />\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n </>\n )}\n\n <div className=\"row flex-column-reverse flex-md-row align-items-center align-items-md-start\">\n <div ref={peopleRef} className=\"col-md-4 col-xl-3\">\n <PeoplePicker />\n </div>\n <div className=\"col-md-8 col-xl-9\">\n <div className=\"w-100 u-flex justify-content-center flex-column align-items-center\">\n <Suspense fallback=\"loading....\">\n <StepOneDateRangePicker />\n </Suspense>\n </div>\n {context.screenSize >= ScreenSize.Large ? <StepOneDateRangePickerLegend /> : <LineBreak />}\n </div>\n </div>\n <div className=\"u-flex justify-content-end\">\n <StepOneNextStepButton />\n </div>\n </div>\n );\n};\nexport default StepDateComponent;\n"]}
1
+ {"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepDateViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { HotelOverridesContext } from 'contexts/HotelOverridesContext';\nimport React, { lazy, Suspense, useContext, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text from '@/components/generic/Text';\nimport PeoplePicker from '@/components/steps/date/PeoplePicker';\nimport StepDatePricePerRoom from '@/components/steps/date/StepDatePricePerRoom';\nimport StepOneDateRange from '@/components/steps/date/StepOneDateRange';\nimport StepOneDateRangePicker from '@/components/steps/date/StepOneDateRangePicker';\nimport StepOneDateRangePickerLegend from '@/components/steps/date/StepOneDateRangePickerLegend';\nimport StepOneNextStepButton from '@/components/steps/date/StepOneNextStepButton';\nimport StepOneStatusPeople from '@/components/steps/date/StepOneStatusPeople';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport StepDate from './StepDate';\nconst BEMobileSummary = lazy(() => import('@/components/summary/BEMobileSummary'));\n\nconst StepDateComponent = () => {\n const { currentStep } = useContext(FullPageEngineContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const { selectedBasketRow, selectBasketRow } = basketContext;\n const ccx = useContext(CompanyContext);\n const { hideByLine } = useContext(HotelOverridesContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const peopleRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (context.screenSize <= ScreenSize.Medium && basketContext.endDate) {\n if (peopleRef) {\n setTimeout(() => {\n peopleRef.current?.scrollIntoView?.({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n }, 50);\n }\n }\n }, [basketContext.endDate]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepDateViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n /**\n * Ensures that a basket row is always selected when navigating back to the \"Step Date\" step.\n *\n * - In [Step Room], after assigning a rate, the selected basket row may be set to null.\n * - When navigating back to [Step Date], ensure that at least one basket row is selected.\n */\n if (currentStep.getName() === StepDate.getName() && !selectedBasketRow) {\n selectBasketRow(null);\n }\n }, [currentStep, selectedBasketRow]);\n\n return (\n <div className=\"container rs-step-date\">\n {context.screenSize <= ScreenSize.Medium && <BEMobileSummary />}\n {context.screenSize >= ScreenSize.Large && (\n <>\n <div className=\"row step-date-hotel-info\">\n <div className=\"col-md-4 col-lg-3\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.Reservation)}</Headline>\n </div>\n <Headline className=\"hotel-name\" color={Color.Navy}>\n {hotel?.name}\n </Headline>\n {!hideByLine && (\n <Text className=\"company-name\" color={Color.DarkGrey}>\n {t(Translation.Misc.By)} {ccx.name}\n </Text>\n )}\n </div>\n <div className=\"col-md-8 col-lg-9\">\n <div className=\"row justify-content-between\">\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.SelectYourDate)}</Headline>\n </div>\n <div className=\"step-one-status\">\n <StepOneDateRange />\n <StepOneStatusPeople />\n </div>\n </div>\n <div className=\"col-md-4\">\n <StepDatePricePerRoom isMobile={false} />\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n </>\n )}\n\n <div className=\"row flex-column-reverse flex-md-row align-items-center align-items-md-start\">\n <div ref={peopleRef} className=\"col-md-4 col-xl-3\">\n <PeoplePicker />\n </div>\n <div className=\"col-md-8 col-xl-9\">\n <div className=\"w-100 u-flex justify-content-center flex-column align-items-center\">\n <Suspense fallback=\"loading....\">\n <StepOneDateRangePicker />\n </Suspense>\n </div>\n {context.screenSize >= ScreenSize.Large ? <StepOneDateRangePickerLegend /> : <LineBreak />}\n </div>\n </div>\n <div className=\"u-flex justify-content-end\">\n <StepOneNextStepButton />\n </div>\n </div>\n );\n};\nexport default StepDateComponent;\n"]}
@@ -48,7 +48,7 @@ const StepGroupedRoomComponent = () => {
48
48
  const location = (0, react_router_dom_1.useLocation)();
49
49
  const { t } = (0, react_i18next_1.useTranslation)();
50
50
  const { currentStep } = (0, react_1.useContext)(contexts_1.FullPageEngineContext);
51
- return (react_1.default.createElement("div", { className: "container" },
51
+ return (react_1.default.createElement("div", { className: "container rs-step-grouped-room" },
52
52
  react_1.default.createElement(BEMobileSummary_1.default, null),
53
53
  react_1.default.createElement(StepLayout_1.StepLayoutContainer, null,
54
54
  react_1.default.createElement(StepLayout_1.StepLayoutLeftContent, null,
@@ -1 +1 @@
1
- {"version":3,"file":"StepGroupedRoomComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiF;AACjF,+CAA0C;AAC1C,iDAA+C;AAC/C,uDAAqD;AAErD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,wGAAgF;AAChF,gHAAwF;AACxF,6FAA0F;AAC1F,mGAAgG;AAChG,2FAAmE;AACnE,4EAAyE;AACzE,4DAAyD;AACzD,mEAA2C;AAC3C,qEAA6C;AAE7C,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAE1D,OAAO,CACH,uCAAK,SAAS,EAAC,WAAW;QACtB,8BAAC,yBAAe,OAAG;QACnB,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;oBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;4BACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;4BACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;yBAC1B;wBAED,8BAAC,oBAAU,OAAG,CACX;oBACP,uCAAK,SAAS,EAAC,wCAAwC;wBACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAY,CAC7D,CACP,CACN;gBAED,8BAAC,iCAAe,OAAG;gBACnB,8BAAC,mBAAS,IAAC,YAAY,SAAG;gBAE1B,8BAAC,qCAAiB,OAAG;gBAErB,uCAAK,SAAS,EAAC,YAAY;oBACvB,8BAAC,iCAAe,OAAG,CACjB,CACc;YACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;gBACnB,uCAAK,SAAS,EAAC,YAAY;oBACvB,8BAAC,8BAAoB,OAAG,CACtB;gBACN,uCAAK,SAAS,EAAC,mBAAmB;oBAC9B,8BAAC,kCAAwB,OAAG,CAC1B,CACe,CAC5B,CACiB,CACpB,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC","sourcesContent":["import { BookingEngineContext, FullPageEngineContext } from '@frontend/contexts';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport StepRoomSummaryAndButton from '@/components/steps/room/StepRoomSummaryAndButton';\nimport { TabGroupedRooms } from '@/components/steps/room/TabGroupedRooms/TabGroupedRooms';\nimport { UserSearchSummary } from '@/components/steps/room/UserSearchSummary/UserSearchSummary';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { StepRoomFilters } from '@/pages/steps/StepRoom/StepRoomFilters';\nimport { Translation } from '@/translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nconst StepGroupedRoomComponent = () => {\n const context = useContext(BookingEngineContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { currentStep } = useContext(FullPageEngineContext);\n\n return (\n <div className=\"container\">\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Room.ChooseRoom)}</Headline>\n </div>\n </>\n )}\n\n <StepRoomFilters />\n <LineBreak smallMargins />\n\n <UserSearchSummary />\n\n <div className=\"u-marg-top\">\n <TabGroupedRooms />\n </div>\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <div className=\"u-marg-top\">\n <StepRoomHotelDetails />\n </div>\n <div className=\"u-marg-top--heavy\">\n <StepRoomSummaryAndButton />\n </div>\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n </div>\n );\n};\n\nexport default StepGroupedRoomComponent;\n"]}
1
+ {"version":3,"file":"StepGroupedRoomComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiF;AACjF,+CAA0C;AAC1C,iDAA+C;AAC/C,uDAAqD;AAErD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,wGAAgF;AAChF,gHAAwF;AACxF,6FAA0F;AAC1F,mGAAgG;AAChG,2FAAmE;AACnE,4EAAyE;AACzE,4DAAyD;AACzD,mEAA2C;AAC3C,qEAA6C;AAE7C,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAE1D,OAAO,CACH,uCAAK,SAAS,EAAC,gCAAgC;QAC3C,8BAAC,yBAAe,OAAG;QACnB,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;oBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;4BACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;4BACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;yBAC1B;wBAED,8BAAC,oBAAU,OAAG,CACX;oBACP,uCAAK,SAAS,EAAC,wCAAwC;wBACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAY,CAC7D,CACP,CACN;gBAED,8BAAC,iCAAe,OAAG;gBACnB,8BAAC,mBAAS,IAAC,YAAY,SAAG;gBAE1B,8BAAC,qCAAiB,OAAG;gBAErB,uCAAK,SAAS,EAAC,YAAY;oBACvB,8BAAC,iCAAe,OAAG,CACjB,CACc;YACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;gBACnB,uCAAK,SAAS,EAAC,YAAY;oBACvB,8BAAC,8BAAoB,OAAG,CACtB;gBACN,uCAAK,SAAS,EAAC,mBAAmB;oBAC9B,8BAAC,kCAAwB,OAAG,CAC1B,CACe,CAC5B,CACiB,CACpB,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC","sourcesContent":["import { BookingEngineContext, FullPageEngineContext } from '@frontend/contexts';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport StepRoomSummaryAndButton from '@/components/steps/room/StepRoomSummaryAndButton';\nimport { TabGroupedRooms } from '@/components/steps/room/TabGroupedRooms/TabGroupedRooms';\nimport { UserSearchSummary } from '@/components/steps/room/UserSearchSummary/UserSearchSummary';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { StepRoomFilters } from '@/pages/steps/StepRoom/StepRoomFilters';\nimport { Translation } from '@/translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nconst StepGroupedRoomComponent = () => {\n const context = useContext(BookingEngineContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { currentStep } = useContext(FullPageEngineContext);\n\n return (\n <div className=\"container rs-step-grouped-room\">\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Room.ChooseRoom)}</Headline>\n </div>\n </>\n )}\n\n <StepRoomFilters />\n <LineBreak smallMargins />\n\n <UserSearchSummary />\n\n <div className=\"u-marg-top\">\n <TabGroupedRooms />\n </div>\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <div className=\"u-marg-top\">\n <StepRoomHotelDetails />\n </div>\n <div className=\"u-marg-top--heavy\">\n <StepRoomSummaryAndButton />\n </div>\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n </div>\n );\n};\n\nexport default StepGroupedRoomComponent;\n"]}
@@ -135,7 +135,7 @@ const StepHotelComponent = () => {
135
135
  basketContext.updateBasketRow(basketRow);
136
136
  }
137
137
  }, []);
138
- return (react_1.default.createElement("div", { className: "container" },
138
+ return (react_1.default.createElement("div", { className: "container rs-step-hotel" },
139
139
  react_1.default.createElement("div", { className: 'row' + (context.screenSize > ScreenSize_1.default.ExtraLarge ? ' no-gutters' : '') },
140
140
  react_1.default.createElement("div", { className: "col-md-8" },
141
141
  react_1.default.createElement("div", { className: "row align-items-end" },
@@ -1 +1 @@
1
- {"version":3,"file":"StepHotelComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepHotel/StepHotelComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgH;AAChH,6CAAsD;AACtD,4DAAoC;AACpC,kDAA0B;AAC1B,+CAA+D;AAC/D,iDAA+C;AAC/C,0DAAuD;AAEvD,6EAAqD;AACrD,+EAAuD;AACvD,+DAAkF;AAClF,kEAA2D;AAC3D,2FAAmE;AACnE,2GAAmF;AACnF,iDAA6C;AAE7C,wCAAqC;AACrC,mEAA2C;AAE3C,IAAK,aAIJ;AAJD,WAAK,aAAa;IACd,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,mCAAkB,CAAA;AACtB,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAOD,MAAM,kBAAkB,GAAG,GAAG,EAAE;;IAC5B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,YAAY,GAAG;QACjB,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACrF,EAAE,KAAK,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;QACrF,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;KAC1F,CAAC;IAEF,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAE1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAgB,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAA,eAAe,CAAC,aAAa,CAAC,WAAW,mCAAI,KAAK,CAAC,CAAC;IAErF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAyB,EAAE,CAAC,CAAC;IAE3E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAW,CAAC;IAE5D,MAAM,SAAS,GAAG,MAAA,aAAa,CAAC,iBAAiB,mCAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAExF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAQ,GAAE,CAAC;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,2BAAkB,EAAE,CAAC;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAY,EAAE,EAAE;;YACpD,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,MAAK,IAAI,EAAE;gBAC9B,OAAO,KAAK,CAAC;aAChB;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE;gBACvB,OAAO,KAAK,CAAC;aAChB;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,aAAa,CAAC,WAAW,EAAE;YACtC,eAAe,CAAC,YAAY,CAAC,CAAC;SACjC;aAAM;YACH,eAAe,CACX,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE;;gBAC1C,QAAQ,MAAM,EAAE;oBACZ,KAAK,aAAa,CAAC,WAAW;wBAC1B,OAAO,CAAC,MAAA,CAAC,CAAC,WAAW,0CAAE,KAAgB,KAAI,MAAA,CAAC,CAAC,WAAW,0CAAE,KAAgB,CAAA,CAAC;oBAC/E,KAAK,aAAa,CAAC,YAAY;wBAC3B,OAAO,CAAC,MAAA,CAAC,CAAC,WAAW,0CAAE,KAAgB,KAAI,MAAA,CAAC,CAAC,WAAW,0CAAE,KAAgB,CAAA,CAAC;iBAClF;YACL,CAAC,CAAC,CACL,CAAC;SACL;IACL,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,MAAM,GAAgC,EAAE,CAAC;QAE/C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,EAAE;YAChC,sCAAsC;YACtC,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAc,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAClG;QACL,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,GAAG,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,EAAE,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,EAAE,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,EAAE,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,EAAE,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAE/J,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE;QACvC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,QAAuB,EAAE,EAAE;QAC7C,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;;QACtB,OAAO,CAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC;QAC/B,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAEvC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;YACxB,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;aACjD;iBAAM;gBACH,SAAS,CAAC,YAAY,CAAC,IAAA,eAAK,GAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9C,SAAS,CAAC,UAAU,CAAC,IAAA,eAAK,GAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;aAC/C;YAED,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;SAC5C;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,uCAAK,SAAS,EAAC,WAAW;QACtB,uCAAK,SAAS,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,uCAAK,SAAS,EAAC,UAAU;gBACrB,uCAAK,SAAS,EAAC,qBAAqB;oBAChC,uCAAK,SAAS,EAAC,yBAAyB;wBACpC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ;4BAC7C,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAU,CAC/C;wBACP;4BACI,8BAAC,eAAM,IAAyB,cAAc,QAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,GAAG,CAC9I,CACJ;oBACN,uCAAK,SAAS,EAAC,yBAAyB;wBACpC;4BACI,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ;gCAC7C,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAU,CAChD;4BACP,uCAAK,SAAS,EAAC,0DAA0D;gCACrE,8BAAC,eAAM,IACH,cAAc,QACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,MAAM,GAClB,CACA,CACJ,CACJ;oBACN,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,oDAAoD,EAAE;4BACxE,mBAAmB,EAAE,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,MAAM;yBAC/D,CAAC;wBAEF,8BAAC,kBAAQ,IAAC,OAAO,QAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,MAAK,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAA,IAAI,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,IAC5H,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CACtB,CACT,CACJ,CACJ,CACJ;QACN,8BAAC,mBAAS,OAAG;QACb,8BAAC,+BAAqB,OAAG;QACzB,8BAAC,uBAAa,IAAC,SAAS,EAAE,YAAuB,GAAI,CACnD,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepHotelViewEvent } from '@frontend/events';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport HotelCardList from '@/components/steps/hotel/HotelCardList';\nimport HotelSearchParameters from '@/components/steps/hotel/HotelSearchParameters';\nimport { useEvent } from '@/hooks/EventHook';\nimport type { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nenum SortByOptions {\n Recommended = 'R',\n LowestPrice = 'L',\n HighestPrice = 'H',\n}\n\ninterface ISortByOption {\n value: SortByOptions;\n text: string;\n}\n\nconst StepHotelComponent = () => {\n const { t } = useTranslation();\n const sortByValues = [\n { value: SortByOptions.Recommended, text: t(Translation.Step.Room.Sort.Recommended) },\n { value: SortByOptions.LowestPrice, text: t(Translation.Step.Room.Sort.LowestPrice) },\n { value: SortByOptions.HighestPrice, text: t(Translation.Step.Room.Sort.HighestPrice) },\n ];\n\n const ccx = useContext(CompanyContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const fullPageContext = useContext(FullPageEngineContext);\n\n const [sortBy, setSortBy] = useState<SortByOptions>(sortByValues[0].value);\n const [city, setCity] = useState(fullPageContext.urlParameters.defaultCity ?? 'All');\n\n const [cityOptions, setCityOptions] = useState<IDefaultSelectOption[]>([]);\n\n const [sortedHotels, setSortedHotels] = useState<Hotel[]>();\n\n const basketRow = basketContext.selectedBasketRow ?? basketContext.currentBasketRows[0];\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepHotelViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n const hotelsToShow = ccx.hotels.filter((hotel: Hotel) => {\n if (hotel.address?.city === city) {\n return hotel;\n } else if (city === 'All') {\n return hotel;\n }\n });\n\n if (sortBy === SortByOptions.Recommended) {\n setSortedHotels(hotelsToShow);\n } else {\n setSortedHotels(\n [...hotelsToShow].sort((a: Hotel, b: Hotel) => {\n switch (sortBy) {\n case SortByOptions.LowestPrice:\n return (a.lowestPrice?.value as number) - (b.lowestPrice?.value as number);\n case SortByOptions.HighestPrice:\n return (b.lowestPrice?.value as number) - (a.lowestPrice?.value as number);\n }\n })\n );\n }\n }, [ccx.hotels, sortBy, city]);\n\n useEffect(() => {\n const cities: { [cityName: string]: any } = {};\n\n ccx.hotels.forEach((hotel: Hotel) => {\n // We must wait till address is loaded\n if (hotel.address) {\n cities[hotel.address.city as string] = { value: hotel.address.city, text: hotel.address.city };\n }\n });\n\n setCityOptions([{ value: 'All', text: 'All' }, ...Object.values(cities)]);\n }, [ccx.hotels]);\n\n useEffect(() => {\n ccx.hotels.forEach((hotel) => {\n ccx.updateLowestPricePerNight(hotel, basketRow);\n });\n }, [basketRow?.getStartDate(), basketRow?.getEndDate(), basketRow?.getAdults(), basketRow?.getChildren(), basketRow?.getInfants(), basketRow?.getPromoCode()]);\n\n const changeCountry = (selected: string) => {\n setCity(selected);\n };\n\n const changeFilter = (selected: SortByOptions) => {\n setSortBy(selected);\n };\n\n const clearFilters = () => {\n setCity(cityOptions[0]?.value);\n setSortBy(sortByValues[0].value);\n };\n\n useEffect(() => {\n const startDate = basketRow.getStartDate();\n const endDate = basketRow.getEndDate();\n\n if (!startDate || !endDate) {\n if (startDate) {\n basketRow.setEndDate(startDate.add(1, 'day'));\n } else {\n basketRow.setStartDate(dayjs().add(1, 'day'));\n basketRow.setEndDate(dayjs().add(2, 'day'));\n }\n\n basketContext.updateBasketRow(basketRow);\n }\n }, []);\n\n return (\n <div className=\"container\">\n <div className={'row' + (context.screenSize > ScreenSize.ExtraLarge ? ' no-gutters' : '')}>\n <div className=\"col-md-8\">\n <div className=\"row align-items-end\">\n <div className=\"col-6 col-md-4 col-lg-3\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.Step.Room.SortBy)}</strong>\n </Text>\n <div>\n <Select<ISortByOption, 'value'> nativeOnMobile options={sortByValues} value={sortBy} onChange={changeFilter} keyName=\"value\" labelName=\"text\" />\n </div>\n </div>\n <div className=\"col-6 col-md-2 col-lg-2\">\n <div>\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.Step.Hotel.Cities)}</strong>\n </Text>\n <div className=\"filter-button d-flex align-items-center u-cursor-pointer\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={cityOptions}\n value={city}\n onChange={changeCountry}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </div>\n </div>\n <div\n className={classNames('col-sm-12 col-md-2 col-lg-1 u-flex u-flex-flex-end', {\n 'u-marg-top--light': context.screenSize <= ScreenSize.Medium,\n })}\n >\n <BEButton rounded size=\"tiny\" onClick={clearFilters} disabled={city === cityOptions[0]?.value && sortBy === sortByValues[0].value}>\n {t(Translation.Misc.ClearAll)}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n <HotelSearchParameters />\n <HotelCardList hotelList={sortedHotels as Hotel[]} />\n </div>\n );\n};\n\nexport default StepHotelComponent;\n"]}
1
+ {"version":3,"file":"StepHotelComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepHotel/StepHotelComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepHotelViewEvent } from '@frontend/events';\nimport classNames from 'classnames';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport HotelCardList from '@/components/steps/hotel/HotelCardList';\nimport HotelSearchParameters from '@/components/steps/hotel/HotelSearchParameters';\nimport { useEvent } from '@/hooks/EventHook';\nimport type { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nenum SortByOptions {\n Recommended = 'R',\n LowestPrice = 'L',\n HighestPrice = 'H',\n}\n\ninterface ISortByOption {\n value: SortByOptions;\n text: string;\n}\n\nconst StepHotelComponent = () => {\n const { t } = useTranslation();\n const sortByValues = [\n { value: SortByOptions.Recommended, text: t(Translation.Step.Room.Sort.Recommended) },\n { value: SortByOptions.LowestPrice, text: t(Translation.Step.Room.Sort.LowestPrice) },\n { value: SortByOptions.HighestPrice, text: t(Translation.Step.Room.Sort.HighestPrice) },\n ];\n\n const ccx = useContext(CompanyContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const fullPageContext = useContext(FullPageEngineContext);\n\n const [sortBy, setSortBy] = useState<SortByOptions>(sortByValues[0].value);\n const [city, setCity] = useState(fullPageContext.urlParameters.defaultCity ?? 'All');\n\n const [cityOptions, setCityOptions] = useState<IDefaultSelectOption[]>([]);\n\n const [sortedHotels, setSortedHotels] = useState<Hotel[]>();\n\n const basketRow = basketContext.selectedBasketRow ?? basketContext.currentBasketRows[0];\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepHotelViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n const hotelsToShow = ccx.hotels.filter((hotel: Hotel) => {\n if (hotel.address?.city === city) {\n return hotel;\n } else if (city === 'All') {\n return hotel;\n }\n });\n\n if (sortBy === SortByOptions.Recommended) {\n setSortedHotels(hotelsToShow);\n } else {\n setSortedHotels(\n [...hotelsToShow].sort((a: Hotel, b: Hotel) => {\n switch (sortBy) {\n case SortByOptions.LowestPrice:\n return (a.lowestPrice?.value as number) - (b.lowestPrice?.value as number);\n case SortByOptions.HighestPrice:\n return (b.lowestPrice?.value as number) - (a.lowestPrice?.value as number);\n }\n })\n );\n }\n }, [ccx.hotels, sortBy, city]);\n\n useEffect(() => {\n const cities: { [cityName: string]: any } = {};\n\n ccx.hotels.forEach((hotel: Hotel) => {\n // We must wait till address is loaded\n if (hotel.address) {\n cities[hotel.address.city as string] = { value: hotel.address.city, text: hotel.address.city };\n }\n });\n\n setCityOptions([{ value: 'All', text: 'All' }, ...Object.values(cities)]);\n }, [ccx.hotels]);\n\n useEffect(() => {\n ccx.hotels.forEach((hotel) => {\n ccx.updateLowestPricePerNight(hotel, basketRow);\n });\n }, [basketRow?.getStartDate(), basketRow?.getEndDate(), basketRow?.getAdults(), basketRow?.getChildren(), basketRow?.getInfants(), basketRow?.getPromoCode()]);\n\n const changeCountry = (selected: string) => {\n setCity(selected);\n };\n\n const changeFilter = (selected: SortByOptions) => {\n setSortBy(selected);\n };\n\n const clearFilters = () => {\n setCity(cityOptions[0]?.value);\n setSortBy(sortByValues[0].value);\n };\n\n useEffect(() => {\n const startDate = basketRow.getStartDate();\n const endDate = basketRow.getEndDate();\n\n if (!startDate || !endDate) {\n if (startDate) {\n basketRow.setEndDate(startDate.add(1, 'day'));\n } else {\n basketRow.setStartDate(dayjs().add(1, 'day'));\n basketRow.setEndDate(dayjs().add(2, 'day'));\n }\n\n basketContext.updateBasketRow(basketRow);\n }\n }, []);\n\n return (\n <div className=\"container rs-step-hotel\">\n <div className={'row' + (context.screenSize > ScreenSize.ExtraLarge ? ' no-gutters' : '')}>\n <div className=\"col-md-8\">\n <div className=\"row align-items-end\">\n <div className=\"col-6 col-md-4 col-lg-3\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.Step.Room.SortBy)}</strong>\n </Text>\n <div>\n <Select<ISortByOption, 'value'> nativeOnMobile options={sortByValues} value={sortBy} onChange={changeFilter} keyName=\"value\" labelName=\"text\" />\n </div>\n </div>\n <div className=\"col-6 col-md-2 col-lg-2\">\n <div>\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.Step.Hotel.Cities)}</strong>\n </Text>\n <div className=\"filter-button d-flex align-items-center u-cursor-pointer\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={cityOptions}\n value={city}\n onChange={changeCountry}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </div>\n </div>\n <div\n className={classNames('col-sm-12 col-md-2 col-lg-1 u-flex u-flex-flex-end', {\n 'u-marg-top--light': context.screenSize <= ScreenSize.Medium,\n })}\n >\n <BEButton rounded size=\"tiny\" onClick={clearFilters} disabled={city === cityOptions[0]?.value && sortBy === sortByValues[0].value}>\n {t(Translation.Misc.ClearAll)}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n <HotelSearchParameters />\n <HotelCardList hotelList={sortedHotels as Hotel[]} />\n </div>\n );\n};\n\nexport default StepHotelComponent;\n"]}
@@ -47,7 +47,7 @@ const StepRoomComponent = () => {
47
47
  const location = (0, react_router_dom_1.useLocation)();
48
48
  const { t } = (0, react_i18next_1.useTranslation)();
49
49
  const { currentStep } = (0, react_1.useContext)(contexts_1.FullPageEngineContext);
50
- return (react_1.default.createElement("div", { className: "container" },
50
+ return (react_1.default.createElement("div", { className: "container rs-step-room" },
51
51
  react_1.default.createElement(BEMobileSummary_1.default, null),
52
52
  react_1.default.createElement(StepLayout_1.StepLayoutContainer, null,
53
53
  react_1.default.createElement(StepLayout_1.StepLayoutLeftContent, null,
@@ -1 +1 @@
1
- {"version":3,"file":"StepRoomComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepRoom/StepRoomComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiF;AACjF,+CAA0C;AAC1C,iDAA+C;AAC/C,uDAAqD;AACrD,0DAAuD;AAEvD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,gFAAwD;AACxD,wGAAgF;AAChF,gHAAwF;AACxF,2FAAmE;AACnE,4EAAyE;AACzE,mEAA2C;AAC3C,qEAA6C;AAE7C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC3B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAE1D,OAAO,CACH,uCAAK,SAAS,EAAC,WAAW;QACtB,8BAAC,yBAAe,OAAG;QACnB,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;oBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;4BACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;4BACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;yBAC1B;wBAED,8BAAC,oBAAU,OAAG,CACX;oBACP,uCAAK,SAAS,EAAC,wCAAwC;wBACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAY,CAC7D,CACP,CACN;gBACD,8BAAC,iCAAe,OAAG,CACC;YACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;gBACnB,8BAAC,8BAAoB,OAAG,CACH,CAC5B,CACiB;QACrB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,8BAAC,mBAAS,OAAG;QACxD,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBAClB,8BAAC,kBAAQ,OAAG,CACQ;YACxB,8BAAC,mCAAsB;gBACnB,8BAAC,kCAAwB,OAAG,CACP,CACP,CACpB,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC","sourcesContent":["import { BookingEngineContext, FullPageEngineContext } from '@frontend/contexts';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport RoomList from '@/components/steps/room/RoomList';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport StepRoomSummaryAndButton from '@/components/steps/room/StepRoomSummaryAndButton';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { StepRoomFilters } from '@/pages/steps/StepRoom/StepRoomFilters';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nconst StepRoomComponent = () => {\n const context = useContext(BookingEngineContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { currentStep } = useContext(FullPageEngineContext);\n\n return (\n <div className=\"container\">\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Room.ChooseRoom)}</Headline>\n </div>\n </>\n )}\n <StepRoomFilters />\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepRoomHotelDetails />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n {context.screenSize > ScreenSize.Medium && <LineBreak />}\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n <RoomList />\n </StepLayoutLeftContent>\n <StepLayoutRightContent>\n <StepRoomSummaryAndButton />\n </StepLayoutRightContent>\n </StepLayoutContainer>\n </div>\n );\n};\n\nexport default StepRoomComponent;\n"]}
1
+ {"version":3,"file":"StepRoomComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepRoom/StepRoomComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiF;AACjF,+CAA0C;AAC1C,iDAA+C;AAC/C,uDAAqD;AACrD,0DAAuD;AAEvD,iFAAyD;AACzD,6EAAqD;AACrD,uEAA4H;AAC5H,+EAAuD;AACvD,gFAAwD;AACxD,wGAAgF;AAChF,gHAAwF;AACxF,2FAAmE;AACnE,4EAAyE;AACzE,mEAA2C;AAC3C,qEAA6C;AAE7C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC3B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAE/B,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAE1D,OAAO,CACH,uCAAK,SAAS,EAAC,wBAAwB;QACnC,8BAAC,yBAAe,OAAG;QACnB,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBACjB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;oBACI,8BAAC,uBAAI,IACD,EAAE,EAAE;4BACA,QAAQ,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;4BACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;yBAC1B;wBAED,8BAAC,oBAAU,OAAG,CACX;oBACP,uCAAK,SAAS,EAAC,wCAAwC;wBACnD,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAY,CAC7D,CACP,CACN;gBACD,8BAAC,iCAAe,OAAG,CACC;YACvB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,8BAAC,mCAAsB;gBACnB,8BAAC,8BAAoB,OAAG,CACH,CAC5B,CACiB;QACrB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,8BAAC,mBAAS,OAAG;QACxD,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB;gBAClB,8BAAC,kBAAQ,OAAG,CACQ;YACxB,8BAAC,mCAAsB;gBACnB,8BAAC,kCAAwB,OAAG,CACP,CACP,CACpB,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC","sourcesContent":["import { BookingEngineContext, FullPageEngineContext } from '@frontend/contexts';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BackButton from '@/components/generic/BackButton';\nimport Headline from '@/components/generic/Headline';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\nimport LineBreak from '@/components/generic/LineBreak';\nimport RoomList from '@/components/steps/room/RoomList';\nimport StepRoomHotelDetails from '@/components/steps/room/StepRoomHotelDetails';\nimport StepRoomSummaryAndButton from '@/components/steps/room/StepRoomSummaryAndButton';\nimport BEMobileSummary from '@/components/summary/BEMobileSummary';\nimport { StepRoomFilters } from '@/pages/steps/StepRoom/StepRoomFilters';\nimport ScreenSize from '@/util/ScreenSize';\nimport StepManager from '@/util/StepManager';\n\nconst StepRoomComponent = () => {\n const context = useContext(BookingEngineContext);\n const location = useLocation();\n\n const { t } = useTranslation();\n\n const { currentStep } = useContext(FullPageEngineContext);\n\n return (\n <div className=\"container rs-step-room\">\n <BEMobileSummary />\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link\n to={{\n pathname: StepManager.getPreviousStepUrl(currentStep),\n search: location.search,\n }}\n >\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Room.ChooseRoom)}</Headline>\n </div>\n </>\n )}\n <StepRoomFilters />\n </StepLayoutLeftContent>\n {context.screenSize > ScreenSize.Medium && (\n <StepLayoutRightContent>\n <StepRoomHotelDetails />\n </StepLayoutRightContent>\n )}\n </StepLayoutContainer>\n {context.screenSize > ScreenSize.Medium && <LineBreak />}\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n <RoomList />\n </StepLayoutLeftContent>\n <StepLayoutRightContent>\n <StepRoomSummaryAndButton />\n </StepLayoutRightContent>\n </StepLayoutContainer>\n </div>\n );\n};\n\nexport default StepRoomComponent;\n"]}
@@ -89,7 +89,7 @@ function StepThanksComponent() {
89
89
  basketContext.finish();
90
90
  };
91
91
  }, []);
92
- return (react_1.default.createElement("div", { className: "container u-marg-top--heavy" },
92
+ return (react_1.default.createElement("div", { className: "container u-marg-top--heavy rs-step-thanks" },
93
93
  react_1.default.createElement("div", { className: "row justify-content-center" },
94
94
  react_1.default.createElement("div", { className: "col-lg-8 col-md-12 u-flex align-items-center u-flex-direction-column" },
95
95
  react_1.default.createElement("div", { className: "u-marg-bottom" },
@@ -138,7 +138,8 @@ function StepThanksComponent() {
138
138
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, align: TextAlignment_1.TextAlign.Right }, t(Translation_1.Translation.Misc.Total)),
139
139
  react_1.default.createElement(Headline_1.default, { bold: true, size: "large", align: TextAlignment_1.TextAlign.Right },
140
140
  react_1.default.createElement(Currency_1.default, null, total)),
141
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, align: TextAlignment_1.TextAlign.Right, color: Color_1.Color.DarkGrey }, t(Translation_1.Translation.Step.Thanks.IncludingTaxes)))))), (_e = checkoutData === null || checkoutData === void 0 ? void 0 : checkoutData.reservations) === null || _e === void 0 ? void 0 :
141
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, align: TextAlignment_1.TextAlign.Right, color: Color_1.Color.DarkGrey },
142
+ react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: t(Translation_1.Translation.Step.Thanks.IncludingTaxes) } })))))), (_e = checkoutData === null || checkoutData === void 0 ? void 0 : checkoutData.reservations) === null || _e === void 0 ? void 0 :
142
143
  _e.map((obj, index) => {
143
144
  const nightKeys = Object.keys(obj.nights);
144
145
  const firstNight = (0, dayjs_1.default)(nightKeys[0]);
@@ -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, useState } 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 { InlineSignUpSection } from '@/components/members/InlineSignUpSection';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { ItemisedFeesSummary } from '@/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport { ReservationAddonDTO, ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport { SimpleItemisedFee } from '@/models/Fee';\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 [itemisedFees, setItemisedFees] = useState<SimpleItemisedFee[]>([]);\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, hotel);\n raise(event);\n\n return calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n useEffect(() => {\n setItemisedFees(checkoutData.feesSummary || []);\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\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n\n {checkoutData?.reservations?.[0]?.guest && <InlineSignUpSection reservation={checkoutData.reservations[0]} hotelId={hotel?.hotelID || ''} />}\n\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\n <ItemisedFeesSummary fees={itemisedFees} />\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, useState } 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 { InlineSignUpSection } from '@/components/members/InlineSignUpSection';\nimport { CommonAddonSummary } from '@/components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { ItemisedFeesSummary } from '@/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary';\nimport { StepThanksViewEvent } from '@/events';\nimport { IEventReservation } from '@/models/Api/IEventReservation';\nimport { ReservationAddonDTO, ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport { SimpleItemisedFee } from '@/models/Fee';\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 [itemisedFees, setItemisedFees] = useState<SimpleItemisedFee[]>([]);\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, hotel);\n raise(event);\n\n return calculateTotalForReservation(checkoutData, !isFromRoomstay);\n }\n\n return 0;\n }, [checkoutData]);\n\n useEffect(() => {\n setItemisedFees(checkoutData.feesSummary || []);\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 rs-step-thanks\">\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\n <div className=\"u-marg-bottom--massive\">\n <Link to=\"/\">\n <BEButton>{t(Translation.Step.Thanks.GoBackHome)}</BEButton>\n </Link>\n </div>\n\n {checkoutData?.reservations?.[0]?.guest && <InlineSignUpSection reservation={checkoutData.reservations[0]} hotelId={hotel?.hotelID || ''} />}\n\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\n <ItemisedFeesSummary fees={itemisedFees} />\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 <span dangerouslySetInnerHTML={{ __html: t(Translation.Step.Thanks.IncludingTaxes) }}></span>\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"]}