@roomstay/frontend 1.4.1 → 1.5.0
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.
- package/dist/{661.bundle.js → 171.bundle.js} +1 -1
- package/dist/201.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/steps/room/RoomList.js +35 -0
- package/dist/src/components/steps/room/RoomList.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +13 -0
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/events/RoomstayEventManager.d.ts +1 -1
- package/dist/src/events/RoomstayEventManager.js.map +1 -1
- package/dist/src/events/actions/GuestSearchEvent.d.ts +7 -0
- package/dist/src/events/actions/GuestSearchEvent.js +15 -0
- package/dist/src/events/actions/GuestSearchEvent.js.map +1 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.d.ts +7 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.js +15 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.js.map +1 -0
- package/dist/src/events/actions/RoomListSearchEvent.d.ts +9 -0
- package/dist/src/events/actions/RoomListSearchEvent.js +16 -0
- package/dist/src/events/actions/RoomListSearchEvent.js.map +1 -0
- package/dist/src/events/index.d.ts +8 -0
- package/dist/src/events/index.js +8 -0
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/views/FindReservationResultsViewEvent.d.ts +7 -0
- package/dist/src/events/views/FindReservationResultsViewEvent.js +15 -0
- package/dist/src/events/views/FindReservationResultsViewEvent.js.map +1 -0
- package/dist/src/events/views/FindReservationViewEvent.d.ts +5 -0
- package/dist/src/events/views/FindReservationViewEvent.js +14 -0
- package/dist/src/events/views/FindReservationViewEvent.js.map +1 -0
- package/dist/src/events/views/StepAddonViewEvent.d.ts +7 -0
- package/dist/src/events/views/StepAddonViewEvent.js +15 -0
- package/dist/src/events/views/StepAddonViewEvent.js.map +1 -0
- package/dist/src/events/views/StepDateViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepDateViewEvent.js +14 -0
- package/dist/src/events/views/StepDateViewEvent.js.map +1 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.js +14 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.js.map +1 -0
- package/dist/src/events/views/StepHotelViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepHotelViewEvent.js +14 -0
- package/dist/src/events/views/StepHotelViewEvent.js.map +1 -0
- package/dist/src/events/views/StepThanksViewEvent.d.ts +7 -0
- package/dist/src/events/views/StepThanksViewEvent.js +15 -0
- package/dist/src/events/views/StepThanksViewEvent.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +9 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Api/IEventReservation.d.ts +7 -0
- package/dist/src/models/Api/IEventReservation.js +3 -0
- package/dist/src/models/Api/IEventReservation.js.map +1 -0
- package/dist/src/models/Client/Hotel/Hotel.d.ts +11 -0
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/RoomListSearch.d.ts +18 -0
- package/dist/src/models/RoomListSearch.js +3 -0
- package/dist/src/models/RoomListSearch.js.map +1 -0
- package/dist/src/models/SearchParameters.d.ts +8 -0
- package/dist/src/models/SearchParameters.js +3 -0
- package/dist/src/models/SearchParameters.js.map +1 -0
- package/dist/src/pages/findReservation/FindReservation.js +4 -0
- package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservationResults.js +27 -0
- package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfo.js +6 -0
- package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +8 -0
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +6 -0
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +9 -4
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +19 -0
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepAddonComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepAddon/StepAddonComponent.tsx"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"StepAddonComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepAddon/StepAddonComponent.tsx"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,iCAA8C;AAC9C,uDAAwC;AACxC,iDAA+C;AAC/C,uEAAgE;AAChE,mEAA4D;AAC5D,qEAA8D;AAC9D,0EAAmE;AACnE,iFAA0E;AAC1E,2DAAoD;AACpD,mEAAgE;AAChE,yDAAkD;AAClD,8FAAuF;AACvF,iDAAgG;AAChG,2CAA2C;AAC3C,4CAAqD;AAErD,SAAwB,kBAAkB;IACtC,MAAM,OAAO,GAAG,kBAAU,CAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAU,CAAC,gCAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,iBAAiB,EAAE,GAAG,kBAAU,CAAC,wBAAa,CAAC,CAAC;IAExD,MAAM,EAAE,CAAC,EAAE,GAAG,8BAAc,EAAE,CAAC;IAE/B,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAQ,EAAE,CAAC;IAE7B,iBAAS,CAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,2BAAkB,CAAC,iBAAiB,CAAC,CAAC;QACxD,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,6BAAK,SAAS,EAAC,WAAW;QACtB,oBAAC,yBAAe,OAAG;QACnB,6BAAK,SAAS,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,6BAAK,SAAS,EAAC,UAAU,IACpB,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC;gBACI,oBAAC,uBAAI,IAAC,EAAE,EAAE,qBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBACjD,oBAAC,oBAAU,OAAG,CACX;gBACP,6BAAK,SAAS,EAAC,wCAAwC;oBACnD,oBAAC,kBAAQ,IAAC,IAAI,EAAE,IAAI,IAAG,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAY,CACtE,CACP,CACN,CACC;YACL,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,CACvC,6BAAK,SAAS,EAAC,8CAA8C;gBACzD,oBAAC,8BAAoB,OAAG,CACtB,CACT,CACC;QACL,OAAO,CAAC,UAAU,GAAG,oBAAU,CAAC,MAAM,IAAI,oBAAC,mBAAS,OAAG;QACxD,oBAAC,mBAAS,OAAG,CACX,CACT,CAAC;AACN,CAAC;AAxCD,qCAwCC","sourcesContent":["import * as React from 'react';\nimport { useContext, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport BackButton from '../../../components/generic/BackButton';\nimport Headline from '../../../components/generic/Headline';\nimport LineBreak from '../../../components/generic/LineBreak';\nimport AddonList from '../../../components/steps/addons/AddonList';\nimport BEMobileSummary from '../../../components/summary/BEMobileSummary';\nimport StepManager from '../../../util/StepManager';\nimport { Translation } from '../../../translations/Translation';\nimport ScreenSize from '../../../util/ScreenSize';\nimport StepRoomHotelDetails from '../../../components/steps/room/StepRoomHotelDetails';\nimport { BasketContext, BookingEngineContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useEvent } from '@frontend/hooks';\nimport { StepAddonViewEvent } from '../../../events';\n\nexport default function StepAddonComponent() {\n const context = useContext(BookingEngineContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { currentBasketRows } = useContext(BasketContext);\n\n const { t } = useTranslation();\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepAddonViewEvent(currentBasketRows);\n raise(event);\n }, []);\n\n return (\n <div className=\"container\">\n <BEMobileSummary />\n <div className={'row' + (context.screenSize > ScreenSize.ExtraLarge ? ' no-gutters' : '')}>\n <div className=\"col-md-8\">\n {context.screenSize > ScreenSize.Medium && (\n <>\n <Link to={StepManager.getPreviousStepUrl(currentStep)}>\n <BackButton />\n </Link>\n <div className=\"u-marg-top--light u-marg-bottom--heavy\">\n <Headline bold={true}>{t(Translation.Navigation.Steps.Addon)}</Headline>\n </div>\n </>\n )}\n </div>\n {context.screenSize > ScreenSize.Medium && (\n <div className=\"col-xl-3 col-md-4 offset-xl-1 align-self-end\">\n <StepRoomHotelDetails />\n </div>\n )}\n </div>\n {context.screenSize > ScreenSize.Medium && <LineBreak />}\n <AddonList />\n </div>\n );\n}\n"]}
|
|
@@ -21,6 +21,7 @@ const StepOneDateRangePicker_1 = require("../../../components/steps/date/StepOne
|
|
|
21
21
|
const hooks_1 = require("@frontend/hooks");
|
|
22
22
|
const contexts_2 = require("@frontend/contexts");
|
|
23
23
|
const HotelOverridesContext_1 = require("../../../contexts/HotelOverridesContext");
|
|
24
|
+
const events_1 = require("../../../events");
|
|
24
25
|
const BEMobileSummary = react_1.lazy(() => Promise.resolve().then(() => require('../../../components/summary/BEMobileSummary')));
|
|
25
26
|
const StepDate = (props) => {
|
|
26
27
|
const context = react_1.useContext(contexts_1.BookingEngineContext);
|
|
@@ -40,6 +41,11 @@ const StepDate = (props) => {
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}, [basketContext.endDate]);
|
|
44
|
+
const { raise } = hooks_1.useEvent();
|
|
45
|
+
react_1.useEffect(() => {
|
|
46
|
+
const event = new events_1.StepDateViewEvent();
|
|
47
|
+
raise(event);
|
|
48
|
+
}, []);
|
|
43
49
|
return (React.createElement("div", { className: "container" },
|
|
44
50
|
context.screenSize <= ScreenSize_1.default.Medium && React.createElement(BEMobileSummary, null),
|
|
45
51
|
context.screenSize >= ScreenSize_1.default.Large && (React.createElement(React.Fragment, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,mEAA4D;AAC5D,2DAAoD;AAEpD,+CAA4C;AAC5C,+CAA0C;AAE1C,iDAA+C;AAE/C,mEAAgE;AAChE,yDAAkD;AAClD,4FAAqF;AACrF,sFAA+E;AAC/E,gGAAyF;AACzF,iCAAsE;AAEtE,8GAAuG;AACvG,8FAAuF;AACvF,iDAAyE;AAEzE,qEAA8D;AAC9D,8EAAuE;AACvE,kGAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Headline from '../../../components/generic/Headline';\nimport Text from '../../../components/generic/Text';\n\nimport { Color } from '../../../util/Color';\nimport { withRouter } from 'react-router';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { Translation } from '../../../translations/Translation';\nimport ScreenSize from '../../../util/ScreenSize';\nimport StepOneStatusPeople from '../../../components/steps/date/StepOneStatusPeople';\nimport StepOneDateRange from '../../../components/steps/date/StepOneDateRange';\nimport StepOneNextStepButton from '../../../components/steps/date/StepOneNextStepButton';\nimport { useContext, useRef, useEffect, Suspense, lazy } from 'react';\n\nimport StepOneDateRangePickerLegend from '../../../components/steps/date/StepOneDateRangePickerLegend';\nimport StepDatePricePerRoom from '../../../components/steps/date/StepDatePricePerRoom';\nimport { BasketContext, BookingEngineContext } from '@frontend/contexts';\n\nimport LineBreak from '../../../components/generic/LineBreak';\nimport PeoplePicker from '../../../components/steps/date/PeoplePicker';\nimport StepOneDateRangePicker from '../../../components/steps/date/StepOneDateRangePicker';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { CompanyContext } from '@frontend/contexts';\nimport { HotelOverridesContext } from '../../../contexts/HotelOverridesContext';\nimport { StepDateViewEvent } from '../../../events';\n\nconst BEMobileSummary = lazy(() => import('../../../components/summary/BEMobileSummary'));\n\nconst StepDate = (props: any) => {\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const { hideByLine } = useContext(HotelOverridesContext);\n\n const { hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n const peopleRef = useRef(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 return (\n <div className=\"container\">\n {context.screenSize <= ScreenSize.Medium && <BEMobileSummary />}\n {context.screenSize >= ScreenSize.Large && (\n <>\n <div className=\"row\">\n <div className=\"col-md-4 col-lg-3\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold={true}>{t(Translation.Step.Date.Reservation)}</Headline>\n </div>\n <Headline color={Color.Navy}>{hotel.name}</Headline>\n {!hideByLine && (\n <Text 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={true}>{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 history={props.history} />\n </div>\n </div>\n );\n};\n\nexport default withRouter(StepDate);\n"]}
|
|
@@ -11,11 +11,11 @@ const LineBreak_1 = require("../../../components/generic/LineBreak");
|
|
|
11
11
|
const HotelCardList_1 = require("../../../components/steps/hotel/HotelCardList");
|
|
12
12
|
const HotelSearchParameters_1 = require("../../../components/steps/hotel/HotelSearchParameters");
|
|
13
13
|
const contexts_1 = require("@frontend/contexts");
|
|
14
|
-
const contexts_2 = require("@frontend/contexts");
|
|
15
|
-
const contexts_3 = require("@frontend/contexts");
|
|
16
14
|
const Translation_1 = require("../../../translations/Translation");
|
|
17
15
|
const Color_1 = require("../../../util/Color");
|
|
18
16
|
const ScreenSize_1 = require("../../../util/ScreenSize");
|
|
17
|
+
const hooks_1 = require("@frontend/hooks");
|
|
18
|
+
const events_1 = require("../../../events");
|
|
19
19
|
var SortByOptions;
|
|
20
20
|
(function (SortByOptions) {
|
|
21
21
|
SortByOptions["Recommended"] = "R";
|
|
@@ -29,15 +29,20 @@ const StepHotelComponent = () => {
|
|
|
29
29
|
{ value: SortByOptions.LowestPrice, text: 'Lowest Price' },
|
|
30
30
|
{ value: SortByOptions.HighestPrice, text: 'Highest Price' },
|
|
31
31
|
];
|
|
32
|
-
const ccx = react_1.useContext(
|
|
32
|
+
const ccx = react_1.useContext(contexts_1.CompanyContext);
|
|
33
33
|
const context = react_1.useContext(contexts_1.BookingEngineContext);
|
|
34
34
|
const basketContext = react_1.useContext(contexts_1.BasketContext);
|
|
35
|
-
const fullPageContext = react_1.useContext(
|
|
35
|
+
const fullPageContext = react_1.useContext(contexts_1.FullPageEngineContext);
|
|
36
36
|
const [sortBy, setSortBy] = react_1.useState(sortByValues[0].value);
|
|
37
37
|
const [city, setCity] = react_1.useState((_a = fullPageContext.urlParameters.defaultCity) !== null && _a !== void 0 ? _a : 'All');
|
|
38
38
|
const [cityOptions, setCityOptions] = react_1.useState([]);
|
|
39
39
|
const [sortedHotels, setSortedHotels] = react_1.useState();
|
|
40
40
|
const basketRow = (_b = basketContext.selectedBasketRow) !== null && _b !== void 0 ? _b : basketContext.currentBasketRows[0];
|
|
41
|
+
const { raise } = hooks_1.useEvent();
|
|
42
|
+
react_1.useEffect(() => {
|
|
43
|
+
const event = new events_1.StepHotelViewEvent();
|
|
44
|
+
raise(event);
|
|
45
|
+
}, []);
|
|
41
46
|
react_1.useEffect(() => {
|
|
42
47
|
const hotelsToShow = ccx.hotels.filter((hotel) => {
|
|
43
48
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepHotelComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepHotel/StepHotelComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport * as React from 'react';\nimport { useEffect, useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport BEButton from '../../../components/generic/BEButton';\nimport Text, { TextType } from '../../../components/generic/Text';\nimport BESelect from '../../../components/generic/BESelect';\nimport LineBreak from '../../../components/generic/LineBreak';\nimport HotelCardList from '../../../components/steps/hotel/HotelCardList';\nimport HotelSearchParameters from '../../../components/steps/hotel/HotelSearchParameters';\nimport { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport { CompanyContext } from '@frontend/contexts';\nimport { FullPageEngineContext } from '@frontend/contexts';\nimport type { Hotel } from '../../../models/Client/Hotel/Hotel';\n\nimport { Translation } from '../../../translations/Translation';\nimport { Color } from '../../../util/Color';\nimport ScreenSize from '../../../util/ScreenSize';\n\nenum SortByOptions {\n Recommended = 'R',\n LowestPrice = 'L',\n HighestPrice = 'H',\n}\n\nconst StepHotelComponent = () => {\n const sortByValues = [\n { value: SortByOptions.Recommended, text: 'Recommended' },\n { value: SortByOptions.LowestPrice, text: 'Lowest Price' },\n { value: SortByOptions.HighestPrice, text: 'Highest Price' },\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([]);\n\n const [sortedHotels, setSortedHotels] = useState<Hotel[]>();\n\n const basketRow = basketContext.selectedBasketRow ?? basketContext.currentBasketRows[0];\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 - b.lowestPrice?.value;\n case SortByOptions.HighestPrice:\n return b.lowestPrice?.value - a.lowestPrice?.value;\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] = { 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?.getPromoCode()]);\n\n const { t } = useTranslation();\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 {\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 <BESelect items={sortByValues} selectedValue={sortBy} onChange={changeFilter} />\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>Cities</strong>\n </Text>\n <div className=\"filter-button d-flex align-items-center u-cursor-pointer\">\n <BESelect items={cityOptions} selectedValue={city} onChange={changeCountry} />\n </div>\n </div>\n </div>\n <div className={'col-sm-12 col-md-2 col-lg-1 u-flex u-flex-flex-end ' + (context.screenSize <= ScreenSize.Medium ? 'u-marg-top--light' : '')}>\n <BEButton rounded={true} size=\"tiny\" onClick={clearFilters} disabled={city === cityOptions[0]?.value && sortBy === sortByValues[0].value}>\n Clear all\n </BEButton>\n </div>\n </div>\n }\n </div>\n </div>\n <LineBreak />\n {<HotelSearchParameters />}\n <HotelCardList hotelList={sortedHotels} />\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 * as dayjs from 'dayjs';\nimport * as React from 'react';\nimport { useEffect, useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport BEButton from '../../../components/generic/BEButton';\nimport Text, { TextType } from '../../../components/generic/Text';\nimport BESelect from '../../../components/generic/BESelect';\nimport LineBreak from '../../../components/generic/LineBreak';\nimport HotelCardList from '../../../components/steps/hotel/HotelCardList';\nimport HotelSearchParameters from '../../../components/steps/hotel/HotelSearchParameters';\nimport { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport type { Hotel } from '../../../models/Client/Hotel/Hotel';\n\nimport { Translation } from '../../../translations/Translation';\nimport { Color } from '../../../util/Color';\nimport ScreenSize from '../../../util/ScreenSize';\nimport { useEvent } from '@frontend/hooks';\nimport { StepHotelViewEvent } from '../../../events';\n\nenum SortByOptions {\n Recommended = 'R',\n LowestPrice = 'L',\n HighestPrice = 'H',\n}\n\nconst StepHotelComponent = () => {\n const sortByValues = [\n { value: SortByOptions.Recommended, text: 'Recommended' },\n { value: SortByOptions.LowestPrice, text: 'Lowest Price' },\n { value: SortByOptions.HighestPrice, text: 'Highest Price' },\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([]);\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 - b.lowestPrice?.value;\n case SortByOptions.HighestPrice:\n return b.lowestPrice?.value - a.lowestPrice?.value;\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] = { 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?.getPromoCode()]);\n\n const { t } = useTranslation();\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 {\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 <BESelect items={sortByValues} selectedValue={sortBy} onChange={changeFilter} />\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>Cities</strong>\n </Text>\n <div className=\"filter-button d-flex align-items-center u-cursor-pointer\">\n <BESelect items={cityOptions} selectedValue={city} onChange={changeCountry} />\n </div>\n </div>\n </div>\n <div className={'col-sm-12 col-md-2 col-lg-1 u-flex u-flex-flex-end ' + (context.screenSize <= ScreenSize.Medium ? 'u-marg-top--light' : '')}>\n <BEButton rounded={true} size=\"tiny\" onClick={clearFilters} disabled={city === cityOptions[0]?.value && sortBy === sortByValues[0].value}>\n Clear all\n </BEButton>\n </div>\n </div>\n }\n </div>\n </div>\n <LineBreak />\n {<HotelSearchParameters />}\n <HotelCardList hotelList={sortedHotels} />\n </div>\n );\n};\n\nexport default StepHotelComponent;\n"]}
|
|
@@ -19,14 +19,33 @@ const dayjs = require("dayjs");
|
|
|
19
19
|
const hooks_1 = require("@frontend/hooks");
|
|
20
20
|
const CommonAddonSummary_1 = require("components/steps/common/CommonAddonSummary/CommonAddonSummary");
|
|
21
21
|
const TotalCalculator_1 = require("util/TotalCalculator");
|
|
22
|
+
const events_1 = require("../../../events");
|
|
22
23
|
function StepThanksComponent() {
|
|
23
24
|
var _a, _b;
|
|
24
25
|
const basketContext = react_1.useContext(contexts_1.BasketContext);
|
|
25
26
|
const { hotel } = hooks_1.useCurrentHotel();
|
|
27
|
+
const ccx = react_1.useContext(contexts_1.CompanyContext);
|
|
28
|
+
const { raise } = hooks_1.useEvent();
|
|
26
29
|
const checkoutData = basketContext.reservationData;
|
|
27
30
|
const { t } = react_i18next_1.useTranslation();
|
|
28
31
|
const total = react_1.useCallback(() => {
|
|
32
|
+
var _a;
|
|
29
33
|
if (checkoutData === null || checkoutData === void 0 ? void 0 : checkoutData.reservations) {
|
|
34
|
+
const reservations = (_a = checkoutData === null || checkoutData === void 0 ? void 0 : checkoutData.reservations) === null || _a === void 0 ? void 0 : _a.map((obj) => {
|
|
35
|
+
const nightKeys = Object.keys(obj.nights);
|
|
36
|
+
const dateFormat = 'YYYY-MM-DDTHH:mm:ss';
|
|
37
|
+
return {
|
|
38
|
+
reservationId: obj.reservationNumber,
|
|
39
|
+
checkInTime: dayjs(nightKeys[0]).format(dateFormat),
|
|
40
|
+
checkOutTime: dayjs(nightKeys[nightKeys.length - 1])
|
|
41
|
+
.add(1, 'day')
|
|
42
|
+
.format(dateFormat),
|
|
43
|
+
totalPrice: obj.total.afterTax,
|
|
44
|
+
priceCurrency: ccx.currentCurrency,
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
const event = new events_1.StepThanksViewEvent(reservations);
|
|
48
|
+
raise(event);
|
|
30
49
|
return TotalCalculator_1.calculateTotalForReservation(checkoutData);
|
|
31
50
|
}
|
|
32
51
|
return 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 * as React from 'react';\nimport Headline from '../../../components/generic/Headline';\nimport { useContext, useCallback } from 'react';\nimport Icon, { IconType } from '../../../components/generic/Icon';\nimport { Color } from '../../../util/Color';\nimport Text, { TextType } from '../../../components/generic/Text';\nimport BEButton from '../../../components/generic/BEButton';\nimport { Link } from 'react-router-dom';\nimport Currency from '../../../components/generic/Currency';\nimport LineBreak from '../../../components/generic/LineBreak';\nimport { TextAlign } from '../../../util/TextAlignment';\nimport { Translation } from '../../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport { BasketContext } from '@frontend/contexts';\nimport { ReservationAddonDTO, ReservationDTO } from '../../../models/Api/ReservationsDTO';\nimport ReservationRow from '../../findReservation/ReservationRow';\nimport * as dayjs from 'dayjs';\n\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { CommonAddonSummary } from 'components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { calculateTotalForReservation } from 'util/TotalCalculator';\n\nexport default function StepThanksComponent() {\n const basketContext = useContext(BasketContext);\n\n const { hotel } = useCurrentHotel();\n\n const checkoutData = basketContext.reservationData;\n\n const { t } = useTranslation();\n\n const total = useCallback(() => {\n if (checkoutData?.reservations) {\n return calculateTotalForReservation(checkoutData);\n }\n\n return 0;\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\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={true} />\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) => addons.push({ ...addon, nights: nights.length }));\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 key={index} type={TextType.Small}>\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={true} 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 priceCurrency: 'AUD',\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 * as React from 'react';\nimport Headline from '../../../components/generic/Headline';\nimport { useContext, useCallback, useEffect } from 'react';\nimport Icon, { IconType } from '../../../components/generic/Icon';\nimport { Color } from '../../../util/Color';\nimport Text, { TextType } from '../../../components/generic/Text';\nimport BEButton from '../../../components/generic/BEButton';\nimport { Link } from 'react-router-dom';\nimport Currency from '../../../components/generic/Currency';\nimport LineBreak from '../../../components/generic/LineBreak';\nimport { TextAlign } from '../../../util/TextAlignment';\nimport { Translation } from '../../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { ReservationAddonDTO, ReservationDTO } from '../../../models/Api/ReservationsDTO';\nimport ReservationRow from '../../findReservation/ReservationRow';\nimport * as dayjs from 'dayjs';\n\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { CommonAddonSummary } from 'components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { calculateTotalForReservation } from 'util/TotalCalculator';\nimport { StepThanksViewEvent } from '../../../events';\nimport { IEventReservation } from 'models/Api/IEventReservation';\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 { 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);\n }\n\n return 0;\n }, [checkoutData]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\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={true} />\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) => addons.push({ ...addon, nights: nights.length }));\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 key={index} type={TextType.Small}>\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={true} 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 priceCurrency: 'AUD',\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}
|