@roomstay/frontend 2.1.7 → 2.1.8
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/201.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/760.bundle.js +1 -1
- package/dist/882.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/generic/Icon/Icon.d.ts +1 -0
- package/dist/src/components/generic/Icon/Icon.js +2 -1
- package/dist/src/components/generic/Icon/Icon.js.map +1 -1
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.d.ts +3 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.js +28 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutContainer.js.map +1 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.d.ts +3 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.js +25 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutLeftContent.js.map +1 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.d.ts +3 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.js +25 -0
- package/dist/src/components/generic/Layout/StepLayout/StepLayoutRightContent.js.map +1 -0
- package/dist/src/components/generic/Layout/StepLayout/index.d.ts +3 -0
- package/dist/src/components/generic/Layout/StepLayout/index.js +13 -0
- package/dist/src/components/generic/Layout/StepLayout/index.js.map +1 -0
- package/dist/src/components/generic/date/DatePicker.js +10 -11
- package/dist/src/components/generic/date/DatePicker.js.map +1 -1
- package/dist/src/components/steps/addons/AddonList.js +32 -12
- package/dist/src/components/steps/addons/AddonList.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCard.js +24 -11
- package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
- package/dist/src/components/summary/BESummaryAddonRow.js +4 -3
- package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
- package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +38 -8
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +1 -0
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Addon/Addon.d.ts +1 -0
- package/dist/src/models/Addon/Addon.js +10 -1
- package/dist/src/models/Addon/Addon.js.map +1 -1
- package/dist/src/models/BasketAddonRow.js +26 -19
- package/dist/src/models/BasketAddonRow.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +32 -9
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +45 -44
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +35 -12
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +10 -10
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +33 -33
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +10 -10
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
- package/dist/src/providers/FeatureProvider.js +2 -0
- package/dist/src/providers/FeatureProvider.js.map +1 -1
- package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.d.ts +6 -0
- package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.js +10 -0
- package/dist/src/providers/feature/FullPageEngineSmallSpacingFeature.js.map +1 -0
- package/dist/src/reducers/BasketReducer.d.ts +2 -1
- package/dist/src/reducers/BasketReducer.js +7 -0
- package/dist/src/reducers/BasketReducer.js.map +1 -1
- package/dist/src/util/TotalCalculator.js +7 -1
- package/dist/src/util/TotalCalculator.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/package.json +1 -1
- package/dist/tests/jest/engines/RoomstayThemeEngine.test.d.ts +0 -1
- package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +0 -41
- package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +0 -1
- package/dist/tests/jest/events/EventManager.test.d.ts +0 -1
- package/dist/tests/jest/events/EventManager.test.js +0 -101
- package/dist/tests/jest/events/EventManager.test.js.map +0 -1
- package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +0 -1
- package/dist/tests/jest/helpers/ObjectHelper.test.js +0 -72
- package/dist/tests/jest/helpers/ObjectHelper.test.js.map +0 -1
- package/dist/tests/jest/models/RoomRate.test.d.ts +0 -1
- package/dist/tests/jest/models/RoomRate.test.js +0 -133
- package/dist/tests/jest/models/RoomRate.test.js.map +0 -1
- package/dist/tests/jest/providers/LanguageProvider.test.d.ts +0 -1
- package/dist/tests/jest/providers/LanguageProvider.test.js +0 -32
- package/dist/tests/jest/providers/LanguageProvider.test.js.map +0 -1
- package/dist/tests/jest/providers/SessionProvider.test.d.ts +0 -1
- package/dist/tests/jest/providers/SessionProvider.test.js +0 -230
- package/dist/tests/jest/providers/SessionProvider.test.js.map +0 -1
- package/dist/tests/jest/providers/storage/LocalStorageProvider.test.d.ts +0 -1
- package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js +0 -126
- package/dist/tests/jest/providers/storage/LocalStorageProvider.test.js.map +0 -1
- package/dist/tests/jest/reducers/BasketReducer.test.d.ts +0 -1
- package/dist/tests/jest/reducers/BasketReducer.test.js +0 -103
- package/dist/tests/jest/reducers/BasketReducer.test.js.map +0 -1
- package/dist/tests/offline/RoomstayBestRateAlert.d.ts +0 -1
- package/dist/tests/offline/RoomstayBestRateAlert.js +0 -48
- package/dist/tests/offline/RoomstayBestRateAlert.js.map +0 -1
- package/dist/tests/offline/entry/ReactWrapper.d.ts +0 -1
- package/dist/tests/offline/entry/ReactWrapper.js +0 -136
- package/dist/tests/offline/entry/ReactWrapper.js.map +0 -1
- package/dist/tests/offline/entry/allEngines.d.ts +0 -1
- package/dist/tests/offline/entry/allEngines.js +0 -50
- package/dist/tests/offline/entry/allEngines.js.map +0 -1
- package/dist/tests/offline/entry/components/TestPicker.d.ts +0 -1
- package/dist/tests/offline/entry/components/TestPicker.js +0 -156
- package/dist/tests/offline/entry/components/TestPicker.js.map +0 -1
- package/dist/tests/setupTests.d.ts +0 -0
- package/dist/tests/setupTests.js +0 -12
- package/dist/tests/setupTests.js.map +0 -1
|
@@ -87,6 +87,7 @@ function IconDropdownFilled() {
|
|
|
87
87
|
exports.IconDropdownFilled = IconDropdownFilled;
|
|
88
88
|
function Icon(props) {
|
|
89
89
|
const defaultProps = Object.assign({ size: '18px' }, props);
|
|
90
|
+
const name = props.name || defaultProps.icon;
|
|
90
91
|
// TODO: remove the diji-icon class from all external uses.
|
|
91
92
|
const classes = (0, classnames_1.default)(Icon_module_scss_1.default['diji-icon'], props.className, Icon_module_scss_1.default[`diji-icon${defaultProps.icon}`], 'diji-icon', {
|
|
92
93
|
[Icon_module_scss_1.default['--has-bg']]: !!defaultProps.backgroundColor,
|
|
@@ -107,7 +108,7 @@ function Icon(props) {
|
|
|
107
108
|
if (defaultProps.backgroundColor) {
|
|
108
109
|
style.backgroundColor = defaultProps.backgroundColor;
|
|
109
110
|
}
|
|
110
|
-
return react_1.default.createElement("i", Object.assign({ className: classes, style: style }, extraProps));
|
|
111
|
+
return react_1.default.createElement("i", Object.assign({ className: classes, style: style }, extraProps, { name: name }));
|
|
111
112
|
}
|
|
112
113
|
exports.default = Icon;
|
|
113
114
|
//# sourceMappingURL=Icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"/","sources":["src/components/generic/Icon/Icon.tsx"],"names":[],"mappings":";;;;;;AAAA,wCAAqC;AACrC,kDAA0B;AAE1B,4DAAoC;AAEpC,0EAAwC;AAExC,IAAY,QAmEX;AAnED,WAAY,QAAQ;IAChB,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,8BAAkB,CAAA;IAClB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,0CAA8B,CAAA;IAC9B,uBAAW,CAAA;IACX,kCAAsB,CAAA;IACtB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,4CAAgC,CAAA;IAChC,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,oCAAwB,CAAA;IACxB,2BAAe,CAAA;IACf,kCAAsB,CAAA;IACtB,8BAAkB,CAAA;IAClB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,sCAA0B,CAAA;IAC1B,+BAAmB,CAAA;IACnB,qCAAyB,CAAA;IACzB,yBAAa,CAAA;IACb,sCAA0B,CAAA;IAC1B,oCAAwB,CAAA;IACxB,gCAAoB,CAAA;IACpB,oCAAwB,CAAA;IACxB,uCAA2B,CAAA;IAC3B,mCAAuB,CAAA;IACvB,yCAA6B,CAAA;IAC7B,uCAA2B,CAAA;IAC3B,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,8BAAkB,CAAA;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,gCAAoB,CAAA;IACpB,0CAA8B,CAAA;IAC9B,kCAAsB,CAAA;IACtB,wCAA4B,CAAA;IAC5B,mCAAuB,CAAA;IACvB,uBAAW,CAAA;IACX,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;AACrB,CAAC,EAnEW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAmEnB;
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"/","sources":["src/components/generic/Icon/Icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Color } from '@/util/Color';\nimport React from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './Icon.module.scss';\n\nexport enum IconType {\n Email = 'Email',\n Degrees = 'Degrees',\n Hotel = 'Hotel',\n Hotel2 = 'Hotel-2',\n Map = 'Map',\n Info = 'Info',\n Deal = 'Deal',\n Money = 'Money',\n Lock = 'Lock',\n Check = 'Check',\n CheckCircled = 'Check-Circled',\n Bed = 'Bed',\n ApplePay = 'Apple-Pay',\n PayPal = 'PayPal',\n Person = 'Person',\n ChildFriendly = 'Child-Friendly',\n Fridge = 'Fridge',\n Smoking = 'Smoking',\n Gym = 'Gym',\n Bar = 'Bar',\n Laundry = 'Laundry',\n Breakfast = 'Breakfast',\n Snacks = 'Snacks',\n Phone = 'Phone',\n ViewMonth = 'View-Month',\n Ovolo = 'Ovolo',\n ViewWeek = 'View-Week',\n AirCon = 'Air-Con',\n WiFi = 'Wifi',\n Time = 'Time',\n People = 'People',\n Calendar = 'Calendar',\n CreditCard = 'Credit-Card',\n Spinner = 'Spinner',\n Fullscreen = 'Fullscreen',\n Star = 'Star',\n ArrowRight = 'Arrow-Right',\n ArrowLeft = 'Arrow-Left',\n ArrowUp = 'Arrow-Up',\n ArrowDown = 'Arrow-Down',\n ArrowLeft2 = 'Arrow-2-Left',\n ArrowUp2 = 'Arrow-2-Up',\n ArrowRight2 = 'Arrow-2-Right',\n ArrowDown2 = 'Arrow-2-Down',\n Close = 'Close',\n Remove = 'Remove',\n Add = 'Add',\n Dropdown = 'Dropdown',\n Train = 'Train',\n Taxi = 'Taxi',\n Share = 'Share',\n Print = 'Print',\n LogOut = 'Log-Out',\n Error = 'Error',\n Edit = 'Edit',\n Bus = 'Bus',\n Airplane = 'Airplane',\n Menu = 'Menu',\n LootBag = 'loot-bag',\n LateCheckout = 'Late-Checkout',\n RoomSize = 'Room-Size',\n RoomUpgrade = 'Room-Upgrade',\n Champagne = 'Champagne',\n Eye = 'Eye',\n EyeBlocked = 'EyeBlocked',\n Delete = 'Delete',\n}\n\nexport interface IconProps {\n icon: IconType;\n size?: string;\n name?: string;\n\n color?: Color;\n backgroundColor?: Color;\n\n noPadding?: boolean;\n\n onClick?: () => void;\n borderRadius?: 'oval' | 'round';\n className?: string;\n}\n\nexport function IconDropdown() {\n return <Icon icon={IconType.ArrowDown2} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport function IconDropdownFilled() {\n return <Icon icon={IconType.Dropdown} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport default function Icon(props: IconProps) {\n const defaultProps: IconProps = {\n size: '18px',\n ...props,\n };\n\n const name = props.name || defaultProps.icon;\n\n // TODO: remove the diji-icon class from all external uses.\n const classes = classNames(styles['diji-icon'], props.className, (styles as any)[`diji-icon${defaultProps.icon}`], 'diji-icon', {\n [styles['--has-bg']]: !!defaultProps.backgroundColor,\n [styles['--clickable']]: defaultProps.onClick,\n 'u-pad-none': props.noPadding,\n [(styles as any)[`--border-${defaultProps.borderRadius}`]]: defaultProps.borderRadius,\n });\n\n const extraProps: any = {};\n\n if (defaultProps.onClick) {\n extraProps.onClick = defaultProps.onClick;\n }\n\n const style: any = {\n fontSize: defaultProps.size,\n };\n\n if (defaultProps.color) {\n style.color = defaultProps.color;\n }\n\n if (defaultProps.backgroundColor) {\n style.backgroundColor = defaultProps.backgroundColor;\n }\n\n return <i className={classes} style={style} {...extraProps} name={name} />;\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const StepLayout_module_scss_1 = __importDefault(require("./StepLayout.module.scss"));
|
|
19
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
20
|
+
const FullPageEngineSmallSpacingFeature_1 = __importDefault(require("../../../../providers/feature/FullPageEngineSmallSpacingFeature"));
|
|
21
|
+
const StepLayoutContainer = (_a) => {
|
|
22
|
+
var { className } = _a, props = __rest(_a, ["className"]);
|
|
23
|
+
return (react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(StepLayout_module_scss_1.default.container, className, {
|
|
24
|
+
[StepLayout_module_scss_1.default['no-gaps']]: FullPageEngineSmallSpacingFeature_1.default.isActive(),
|
|
25
|
+
}) }, props)));
|
|
26
|
+
};
|
|
27
|
+
exports.default = StepLayoutContainer;
|
|
28
|
+
//# sourceMappingURL=StepLayoutContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepLayoutContainer.js","sourceRoot":"/","sources":["src/components/generic/Layout/StepLayout/StepLayoutContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAqD;AACrD,sFAA8C;AAC9C,4DAAoC;AACpC,8HAAsG;AAEtG,MAAM,mBAAmB,GAAwD,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IACnG,OAAO,CACH,qDACI,SAAS,EAAE,IAAA,oBAAU,EAAC,gCAAM,CAAC,SAAS,EAAE,SAAS,EAAE;YAC/C,CAAC,gCAAM,CAAC,SAAS,CAAC,CAAC,EAAE,2CAAiC,CAAC,QAAQ,EAAE;SACpE,CAAC,IACE,KAAK,EACX,CACL,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,mBAAmB,CAAC","sourcesContent":["import React, { FC, PropsWithChildren } from 'react';\nimport styles from './StepLayout.module.scss';\nimport classNames from 'classnames';\nimport FullPageEngineSmallSpacingFeature from '@/providers/feature/FullPageEngineSmallSpacingFeature';\n\nconst StepLayoutContainer: FC<PropsWithChildren<JSX.IntrinsicElements['div']>> = ({ className, ...props }) => {\n return (\n <div\n className={classNames(styles.container, className, {\n [styles['no-gaps']]: FullPageEngineSmallSpacingFeature.isActive(),\n })}\n {...props}\n />\n );\n};\n\nexport default StepLayoutContainer;\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const StepLayout_module_scss_1 = __importDefault(require("./StepLayout.module.scss"));
|
|
19
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
20
|
+
const StepLayoutLeftContent = (_a) => {
|
|
21
|
+
var { className } = _a, props = __rest(_a, ["className"]);
|
|
22
|
+
return react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(StepLayout_module_scss_1.default.leftContent, className) }, props));
|
|
23
|
+
};
|
|
24
|
+
exports.default = StepLayoutLeftContent;
|
|
25
|
+
//# sourceMappingURL=StepLayoutLeftContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepLayoutLeftContent.js","sourceRoot":"/","sources":["src/components/generic/Layout/StepLayout/StepLayoutLeftContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAqD;AACrD,sFAA8C;AAC9C,4DAAoC;AAEpC,MAAM,qBAAqB,GAAwD,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IACrG,OAAO,qDAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,gCAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAM,KAAK,EAAI,CAAC;AACpF,CAAC,CAAC;AAEF,kBAAe,qBAAqB,CAAC","sourcesContent":["import React, { FC, PropsWithChildren } from 'react';\nimport styles from './StepLayout.module.scss';\nimport classNames from 'classnames';\n\nconst StepLayoutLeftContent: FC<PropsWithChildren<JSX.IntrinsicElements['div']>> = ({ className, ...props }) => {\n return <div className={classNames(styles.leftContent, className)} {...props} />;\n};\n\nexport default StepLayoutLeftContent;\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const StepLayout_module_scss_1 = __importDefault(require("./StepLayout.module.scss"));
|
|
19
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
20
|
+
const StepLayoutRightContent = (_a) => {
|
|
21
|
+
var { className } = _a, props = __rest(_a, ["className"]);
|
|
22
|
+
return react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(StepLayout_module_scss_1.default.rightContent, className) }, props));
|
|
23
|
+
};
|
|
24
|
+
exports.default = StepLayoutRightContent;
|
|
25
|
+
//# sourceMappingURL=StepLayoutRightContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepLayoutRightContent.js","sourceRoot":"/","sources":["src/components/generic/Layout/StepLayout/StepLayoutRightContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAqD;AACrD,sFAA8C;AAC9C,4DAAoC;AAEpC,MAAM,sBAAsB,GAAwD,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IACtG,OAAO,qDAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,gCAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAM,KAAK,EAAI,CAAC;AACrF,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC","sourcesContent":["import React, { FC, PropsWithChildren } from 'react';\nimport styles from './StepLayout.module.scss';\nimport classNames from 'classnames';\n\nconst StepLayoutRightContent: FC<PropsWithChildren<JSX.IntrinsicElements['div']>> = ({ className, ...props }) => {\n return <div className={classNames(styles.rightContent, className)} {...props} />;\n};\n\nexport default StepLayoutRightContent;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.StepLayoutRightContent = exports.StepLayoutLeftContent = exports.StepLayoutContainer = void 0;
|
|
7
|
+
var StepLayoutContainer_1 = require("./StepLayoutContainer");
|
|
8
|
+
Object.defineProperty(exports, "StepLayoutContainer", { enumerable: true, get: function () { return __importDefault(StepLayoutContainer_1).default; } });
|
|
9
|
+
var StepLayoutLeftContent_1 = require("./StepLayoutLeftContent");
|
|
10
|
+
Object.defineProperty(exports, "StepLayoutLeftContent", { enumerable: true, get: function () { return __importDefault(StepLayoutLeftContent_1).default; } });
|
|
11
|
+
var StepLayoutRightContent_1 = require("./StepLayoutRightContent");
|
|
12
|
+
Object.defineProperty(exports, "StepLayoutRightContent", { enumerable: true, get: function () { return __importDefault(StepLayoutRightContent_1).default; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/components/generic/Layout/StepLayout/index.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,mEAA6E;AAApE,iJAAA,OAAO,OAA0B","sourcesContent":["export { default as StepLayoutContainer } from './StepLayoutContainer';\nexport { default as StepLayoutLeftContent } from './StepLayoutLeftContent';\nexport { default as StepLayoutRightContent } from './StepLayoutRightContent';\n"]}
|
|
@@ -36,20 +36,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
const react_1 = __importDefault(require("react"));
|
|
39
|
-
const Color_1 = require("../../../util/Color");
|
|
40
39
|
const Icon_1 = __importStar(require("../Icon/Icon"));
|
|
40
|
+
const Color_1 = require("../../../util/Color");
|
|
41
41
|
const react_2 = require("react");
|
|
42
42
|
const classnames_1 = __importDefault(require("classnames"));
|
|
43
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
44
|
-
const contexts_1 = require("../../../contexts/index.js");
|
|
45
|
-
const DatePickerMonth_1 = __importDefault(require("./DatePickerMonth"));
|
|
46
43
|
const BookingAPI_1 = __importDefault(require("../../../api/BookingAPI"));
|
|
47
|
-
const
|
|
48
|
-
const DataLayer_1 = __importStar(require("../../../util/DataLayer"));
|
|
49
|
-
const MinimumNightStayPill_1 = __importDefault(require("../../steps/MinimumNightStayPill"));
|
|
44
|
+
const DatePickerMonth_1 = __importDefault(require("./DatePickerMonth"));
|
|
50
45
|
const DaysSelectedInformer_1 = __importDefault(require("../../steps/DaysSelectedInformer"));
|
|
51
|
-
const
|
|
46
|
+
const MinimumNightStayPill_1 = __importDefault(require("../../steps/MinimumNightStayPill"));
|
|
52
47
|
const DatePickerTypeFeature_1 = __importDefault(require("../../../providers/feature/DatePickerTypeFeature"));
|
|
48
|
+
const DataLayer_1 = __importStar(require("../../../util/DataLayer"));
|
|
49
|
+
const contexts_1 = require("../../../contexts/index.js");
|
|
50
|
+
const hooks_1 = require("../../../hooks/index.js");
|
|
51
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
53
52
|
const WeekViewSkeleton_1 = __importDefault(require("./WeekViewSkeleton"));
|
|
54
53
|
const DatePickerWeek = (0, react_2.lazy)(() => Promise.resolve().then(() => __importStar(require('./DatePickerWeek'))));
|
|
55
54
|
var DateRangePickingState;
|
|
@@ -71,7 +70,7 @@ function DatePicker(props) {
|
|
|
71
70
|
}, [hotel === null || hotel === void 0 ? void 0 : hotel.defaultDatepickerType]);
|
|
72
71
|
const [months, setMonths] = (0, react_2.useState)(props.showMultipleMonths ? [currentMonth, currentMonth.add(1, 'month')] : [currentMonth]);
|
|
73
72
|
const [maxPrice, setMaxPrice] = (0, react_2.useState)(0);
|
|
74
|
-
const basketContext = (0, react_2.useContext)(
|
|
73
|
+
const basketContext = (0, react_2.useContext)(contexts_1.BasketContext);
|
|
75
74
|
const onClickDate = (newDate) => __awaiter(this, void 0, void 0, function* () {
|
|
76
75
|
let newPickingState = null;
|
|
77
76
|
const selectedBasketRow = basketContext.selectedBasketRow;
|
|
@@ -219,8 +218,8 @@ function DatePicker(props) {
|
|
|
219
218
|
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ArrowLeft2, onClick: previousMonthOnClick, color: Color_1.Color.White, backgroundColor: Color_1.Color.Navy, borderRadius: "round", size: "24px" }),
|
|
220
219
|
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ArrowRight2, onClick: nextMonthOnClick, color: Color_1.Color.White, backgroundColor: Color_1.Color.Navy, borderRadius: "round", size: "24px" }))),
|
|
221
220
|
props.supportsWeek && (react_1.default.createElement("div", { className: "diji-calendar-picker-type" },
|
|
222
|
-
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ViewMonth, size: "32px", color: calendarStyle === 'Month' ? Color_1.Color.Navy : Color_1.Color.Grey, onClick: setCalendarStyleAsMonth }),
|
|
223
|
-
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ViewWeek, size: "32px", color: calendarStyle === 'Week' ? Color_1.Color.Navy : Color_1.Color.Grey, onClick: setCalendarStyleAsWeek }))),
|
|
221
|
+
react_1.default.createElement(Icon_1.default, { name: "Calendar_MothViewButton", icon: Icon_1.IconType.ViewMonth, size: "32px", color: calendarStyle === 'Month' ? Color_1.Color.Navy : Color_1.Color.Grey, onClick: setCalendarStyleAsMonth }),
|
|
222
|
+
react_1.default.createElement(Icon_1.default, { name: "Calendar_WeekViewButton", icon: Icon_1.IconType.ViewWeek, size: "32px", color: calendarStyle === 'Week' ? Color_1.Color.Navy : Color_1.Color.Grey, onClick: setCalendarStyleAsWeek }))),
|
|
224
223
|
printMonths,
|
|
225
224
|
props.showMinNightStay && props.showMultipleMonths && (react_1.default.createElement("div", { className: "diji-calendar--min-night-stay u-flex u-flex-direction-column u-flex-align-center" },
|
|
226
225
|
react_1.default.createElement(DaysSelectedInformer_1.default, null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"/","sources":["src/components/generic/date/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Color } from '@/util/Color';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { useEffect, useState, useRef, useLayoutEffect, useMemo, useContext, lazy } from 'react';\n\nimport classNames from 'classnames';\n\nimport dayjs, { Dayjs } from 'dayjs';\nimport { DatePickerContext, IDatePickerContext } from '@frontend/contexts';\nimport DatePickerMonth from '@/components/generic/date/DatePickerMonth';\nimport API from '@/api/BookingAPI';\nimport { BasketContext } from '@frontend/contexts';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport MinimumNightStayPill from '@/components/steps/MinimumNightStayPill';\nimport DaysSelectedInformer from '@/components/steps/DaysSelectedInformer';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport DatePickerTypeFeature from '@/providers/feature/DatePickerTypeFeature';\nimport WeekViewSkeleton from './WeekViewSkeleton';\n\nconst DatePickerWeek = lazy(() => import('@/components/generic/date/DatePickerWeek'));\n\nexport interface DatePickerProps {\n showMonthOnLoad?: dayjs.Dayjs;\n\n selectedStartDate?: dayjs.Dayjs;\n selectedEndDate?: dayjs.Dayjs;\n\n canSelect?: boolean;\n // Includes default navigation arrows\n showArrows?: boolean;\n // Displays two side by side\n showMultipleMonths?: boolean;\n\n // Used for tight spaces\n small?: boolean;\n\n // is there support for start / end dates\n supportsMultiSelecting?: boolean;\n\n // Do or don't show mininmum night stay block\n showMinNightStay?: boolean;\n\n supportsWeek?: boolean;\n\n onDateClicked?: (date: dayjs.Dayjs) => void;\n onStartDateChanged?: (date: dayjs.Dayjs) => void;\n onEndDateChanged?: (date: dayjs.Dayjs) => void;\n}\n\ninterface DatePickerDayObject {\n value: string;\n dateObj: dayjs.Dayjs | null;\n price?: string;\n hovered: boolean;\n}\n\nenum DateRangePickingState {\n StartDate = 1,\n EndDate = 2,\n}\n\nexport default function DatePicker(props: DatePickerProps) {\n const { hotel } = useCurrentHotel();\n\n const [currentMonth, setCurrentMonth] = useState(props.showMonthOnLoad ? props.showMonthOnLoad : props.selectedStartDate ? props.selectedStartDate : dayjs());\n\n const [selectedStartDate, setSelectedStartDate] = useState(props.selectedStartDate ?? null);\n const [selectedEndDate, setSelectedEndDate] = useState(props.selectedEndDate ?? null);\n\n const [hoveringOverDate, setHoveringOverDate] = useState<Dayjs | null>(null);\n\n const [pickingState, setPickingState] = useState(DateRangePickingState.StartDate);\n const [calendarStyle, setCalendarStyle] = useState<'Month' | 'Week'>(hotel?.defaultDatepickerType ? hotel?.defaultDatepickerType : 'Month');\n useEffect(() => {\n setCalendarStyle(hotel?.defaultDatepickerType ? hotel?.defaultDatepickerType : 'Month');\n }, [hotel?.defaultDatepickerType]);\n\n const [months, setMonths] = useState(props.showMultipleMonths ? [currentMonth, currentMonth.add(1, 'month')] : [currentMonth]);\n const [maxPrice, setMaxPrice] = useState(0);\n\n const basketContext = useContext(BasketContext);\n\n const onClickDate = async (newDate: dayjs.Dayjs) => {\n let newPickingState: DateRangePickingState | null = null;\n\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const newDatePrice = await API.Availability.getCheapestPriceForDay(newDate, adults, children, promoCode, hotel?.hotelID as string, false);\n\n switch (pickingState) {\n default:\n case DateRangePickingState.StartDate:\n if (newDatePrice.price || !hotel) {\n newPickingState = DateRangePickingState.EndDate;\n\n setSelectedStartDate(newDate);\n setSelectedEndDate(null);\n }\n\n break;\n case DateRangePickingState.EndDate:\n if (newDate.isBefore(selectedStartDate)) {\n setSelectedStartDate(newDate);\n newPickingState = DateRangePickingState.EndDate;\n } else {\n newPickingState = DateRangePickingState.StartDate;\n\n setHoveringOverDate(null);\n\n const nextAvailableDay = await getLastValidDay(selectedStartDate as Dayjs, newDate);\n\n if (newDate.isSame(selectedStartDate)) {\n setSelectedEndDate(nextAvailableDay.add(1, 'day'));\n } else {\n setSelectedEndDate(nextAvailableDay);\n }\n }\n\n break;\n }\n\n if (props.supportsMultiSelecting) {\n setPickingState(newPickingState as DateRangePickingState);\n }\n };\n\n const getLastValidDay = (fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): Promise<dayjs.Dayjs> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const diff = toDate?.diff?.(fromDate, 'day');\n\n let nextMustBreak = false;\n for (let i = 0; i <= diff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n\n const price = await API.Availability.getCheapestPriceForDay(dayToCheck, adults, children, promoCode, hotel?.hotelID as string, false);\n\n if (nextMustBreak) {\n return resolve(dayToCheck.subtract(1, 'day'));\n }\n\n if (!price.price && hotel) {\n nextMustBreak = true;\n continue;\n }\n }\n\n resolve(toDate);\n });\n\n const onHoveredOverDay = (day: dayjs.Dayjs) => {\n if (selectedStartDate && !selectedEndDate) {\n getLastValidDay(selectedStartDate, day).then((lastValidDay) => {\n setHoveringOverDate(lastValidDay);\n });\n }\n };\n\n const firstUpdate = useRef<HTMLDivElement | null>(null);\n\n // TODO: Perhaps refactor this later to not depend on non-state items\n useEffect(() => {\n if (DatePickerTypeFeature?.isActive() && props.supportsWeek) {\n setCalendarStyle('Week');\n }\n }, [DatePickerTypeFeature?.isActive()]);\n\n useEffect(() => {\n if (props.showMonthOnLoad) {\n setCurrentMonth(props.showMonthOnLoad);\n }\n }, [props.showMonthOnLoad]);\n\n useEffect(() => {\n if (props.showMultipleMonths) {\n setMonths([currentMonth, currentMonth.add(1, 'month')]);\n }\n }, [currentMonth, props.showMultipleMonths]);\n\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = null;\n return;\n }\n\n if (props.onStartDateChanged) {\n props.onStartDateChanged(selectedStartDate as Dayjs);\n }\n }, [selectedStartDate]);\n\n useLayoutEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = null;\n return;\n }\n\n if (props.onEndDateChanged) {\n props.onEndDateChanged(selectedEndDate as Dayjs);\n }\n }, [selectedEndDate]);\n\n const context: IDatePickerContext = {\n today: dayjs(),\n todayInUnix: dayjs().unix(),\n startDate: selectedStartDate,\n endDate: selectedEndDate,\n\n hoveredMonth: hoveringOverDate,\n maxPrice,\n\n onHoverOver: onHoveredOverDay,\n currentMonth,\n\n onDayClicked: (date: dayjs.Dayjs) => {\n onClickDate(date);\n },\n setMaxPrice,\n };\n\n const printMonths = useMemo(\n () => (\n <>\n {calendarStyle === 'Month' ? (\n <>\n <DatePickerMonth small={props.small} showingMonth={currentMonth} />\n {props.showMultipleMonths && <DatePickerMonth showingMonth={currentMonth.add(1, 'month')} />}\n </>\n ) : (\n <>\n <React.Suspense fallback={<WeekViewSkeleton />}>\n <DatePickerWeek />\n </React.Suspense>\n </>\n )}\n </>\n ),\n [currentMonth, props.showMultipleMonths, calendarStyle]\n );\n\n const calendarClassNames = classNames('diji-calendar', {\n '--single': !props.showMultipleMonths,\n '--small': props.small,\n '--week': calendarStyle === 'Week',\n });\n const previousMonthOnClick = () => {\n DataLayer.instance.sendInteraction('Show Previous Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCurrentMonth(currentMonth.subtract(1, 'month'));\n };\n const nextMonthOnClick = () => {\n DataLayer.instance.sendInteraction('Show Next Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCurrentMonth(currentMonth.add(1, 'month'));\n };\n const setCalendarStyleAsMonth = () => {\n DataLayer.instance.sendInteraction('Set Calendar Style - Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCalendarStyle('Month');\n };\n const setCalendarStyleAsWeek = () => {\n DataLayer.instance.sendInteraction('Set Calendar Style - Week', InteractionType.CALENDAR, InteractionStep.DATES);\n setCalendarStyle('Week');\n };\n\n return (\n <DatePickerContext.Provider value={context}>\n <div ref={firstUpdate} className={calendarClassNames}>\n {calendarStyle === 'Month' && (\n <div className=\"diji-calendar-navigation\">\n <Icon icon={IconType.ArrowLeft2} onClick={previousMonthOnClick} color={Color.White} backgroundColor={Color.Navy} borderRadius=\"round\" size=\"24px\" />\n <Icon icon={IconType.ArrowRight2} onClick={nextMonthOnClick} color={Color.White} backgroundColor={Color.Navy} borderRadius=\"round\" size=\"24px\" />\n </div>\n )}\n {props.supportsWeek && (\n <div className=\"diji-calendar-picker-type\">\n <Icon icon={IconType.ViewMonth} size=\"32px\" color={calendarStyle === 'Month' ? Color.Navy : Color.Grey} onClick={setCalendarStyleAsMonth} />\n <Icon icon={IconType.ViewWeek} size=\"32px\" color={calendarStyle === 'Week' ? Color.Navy : Color.Grey} onClick={setCalendarStyleAsWeek} />\n </div>\n )}\n {printMonths}\n {props.showMinNightStay && props.showMultipleMonths && (\n <div className=\"diji-calendar--min-night-stay u-flex u-flex-direction-column u-flex-align-center\">\n <DaysSelectedInformer />\n <div className=\"u-marg-top--light\">\n <MinimumNightStayPill />\n </div>\n </div>\n )}\n </div>\n\n {props.showMinNightStay && !props.showMultipleMonths && (\n <div className=\"diji-calendar--min-night-stay --small u-flex u-flex-direction-column u-flex-align-center u-marg-top\">\n <DaysSelectedInformer />\n <div className=\"u-marg-top--light\">\n <MinimumNightStayPill />\n </div>\n </div>\n )}\n </DatePickerContext.Provider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"/","sources":["src/components/generic/date/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { Color } from '@/util/Color';\nimport { lazy, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport API from '@/api/BookingAPI';\nimport DatePickerMonth from '@/components/generic/date/DatePickerMonth';\nimport DaysSelectedInformer from '@/components/steps/DaysSelectedInformer';\nimport MinimumNightStayPill from '@/components/steps/MinimumNightStayPill';\nimport DatePickerTypeFeature from '@/providers/feature/DatePickerTypeFeature';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport { BasketContext, DatePickerContext, IDatePickerContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs, { Dayjs } from 'dayjs';\nimport WeekViewSkeleton from './WeekViewSkeleton';\n\nconst DatePickerWeek = lazy(() => import('@/components/generic/date/DatePickerWeek'));\n\nexport interface DatePickerProps {\n showMonthOnLoad?: dayjs.Dayjs;\n\n selectedStartDate?: dayjs.Dayjs;\n selectedEndDate?: dayjs.Dayjs;\n\n canSelect?: boolean;\n // Includes default navigation arrows\n showArrows?: boolean;\n // Displays two side by side\n showMultipleMonths?: boolean;\n\n // Used for tight spaces\n small?: boolean;\n\n // is there support for start / end dates\n supportsMultiSelecting?: boolean;\n\n // Do or don't show mininmum night stay block\n showMinNightStay?: boolean;\n\n supportsWeek?: boolean;\n\n onDateClicked?: (date: dayjs.Dayjs) => void;\n onStartDateChanged?: (date: dayjs.Dayjs) => void;\n onEndDateChanged?: (date: dayjs.Dayjs) => void;\n}\n\ninterface DatePickerDayObject {\n value: string;\n dateObj: dayjs.Dayjs | null;\n price?: string;\n hovered: boolean;\n}\n\nenum DateRangePickingState {\n StartDate = 1,\n EndDate = 2,\n}\n\nexport default function DatePicker(props: DatePickerProps) {\n const { hotel } = useCurrentHotel();\n\n const [currentMonth, setCurrentMonth] = useState(props.showMonthOnLoad ? props.showMonthOnLoad : props.selectedStartDate ? props.selectedStartDate : dayjs());\n\n const [selectedStartDate, setSelectedStartDate] = useState(props.selectedStartDate ?? null);\n const [selectedEndDate, setSelectedEndDate] = useState(props.selectedEndDate ?? null);\n\n const [hoveringOverDate, setHoveringOverDate] = useState<Dayjs | null>(null);\n\n const [pickingState, setPickingState] = useState(DateRangePickingState.StartDate);\n const [calendarStyle, setCalendarStyle] = useState<'Month' | 'Week'>(hotel?.defaultDatepickerType ? hotel?.defaultDatepickerType : 'Month');\n useEffect(() => {\n setCalendarStyle(hotel?.defaultDatepickerType ? hotel?.defaultDatepickerType : 'Month');\n }, [hotel?.defaultDatepickerType]);\n\n const [months, setMonths] = useState(props.showMultipleMonths ? [currentMonth, currentMonth.add(1, 'month')] : [currentMonth]);\n const [maxPrice, setMaxPrice] = useState(0);\n\n const basketContext = useContext(BasketContext);\n\n const onClickDate = async (newDate: dayjs.Dayjs) => {\n let newPickingState: DateRangePickingState | null = null;\n\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const newDatePrice = await API.Availability.getCheapestPriceForDay(newDate, adults, children, promoCode, hotel?.hotelID as string, false);\n\n switch (pickingState) {\n default:\n case DateRangePickingState.StartDate:\n if (newDatePrice.price || !hotel) {\n newPickingState = DateRangePickingState.EndDate;\n\n setSelectedStartDate(newDate);\n setSelectedEndDate(null);\n }\n\n break;\n case DateRangePickingState.EndDate:\n if (newDate.isBefore(selectedStartDate)) {\n setSelectedStartDate(newDate);\n newPickingState = DateRangePickingState.EndDate;\n } else {\n newPickingState = DateRangePickingState.StartDate;\n\n setHoveringOverDate(null);\n\n const nextAvailableDay = await getLastValidDay(selectedStartDate as Dayjs, newDate);\n\n if (newDate.isSame(selectedStartDate)) {\n setSelectedEndDate(nextAvailableDay.add(1, 'day'));\n } else {\n setSelectedEndDate(nextAvailableDay);\n }\n }\n\n break;\n }\n\n if (props.supportsMultiSelecting) {\n setPickingState(newPickingState as DateRangePickingState);\n }\n };\n\n const getLastValidDay = (fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): Promise<dayjs.Dayjs> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const diff = toDate?.diff?.(fromDate, 'day');\n\n let nextMustBreak = false;\n for (let i = 0; i <= diff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n\n const price = await API.Availability.getCheapestPriceForDay(dayToCheck, adults, children, promoCode, hotel?.hotelID as string, false);\n\n if (nextMustBreak) {\n return resolve(dayToCheck.subtract(1, 'day'));\n }\n\n if (!price.price && hotel) {\n nextMustBreak = true;\n continue;\n }\n }\n\n resolve(toDate);\n });\n\n const onHoveredOverDay = (day: dayjs.Dayjs) => {\n if (selectedStartDate && !selectedEndDate) {\n getLastValidDay(selectedStartDate, day).then((lastValidDay) => {\n setHoveringOverDate(lastValidDay);\n });\n }\n };\n\n const firstUpdate = useRef<HTMLDivElement | null>(null);\n\n // TODO: Perhaps refactor this later to not depend on non-state items\n useEffect(() => {\n if (DatePickerTypeFeature?.isActive() && props.supportsWeek) {\n setCalendarStyle('Week');\n }\n }, [DatePickerTypeFeature?.isActive()]);\n\n useEffect(() => {\n if (props.showMonthOnLoad) {\n setCurrentMonth(props.showMonthOnLoad);\n }\n }, [props.showMonthOnLoad]);\n\n useEffect(() => {\n if (props.showMultipleMonths) {\n setMonths([currentMonth, currentMonth.add(1, 'month')]);\n }\n }, [currentMonth, props.showMultipleMonths]);\n\n useEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = null;\n return;\n }\n\n if (props.onStartDateChanged) {\n props.onStartDateChanged(selectedStartDate as Dayjs);\n }\n }, [selectedStartDate]);\n\n useLayoutEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = null;\n return;\n }\n\n if (props.onEndDateChanged) {\n props.onEndDateChanged(selectedEndDate as Dayjs);\n }\n }, [selectedEndDate]);\n\n const context: IDatePickerContext = {\n today: dayjs(),\n todayInUnix: dayjs().unix(),\n startDate: selectedStartDate,\n endDate: selectedEndDate,\n\n hoveredMonth: hoveringOverDate,\n maxPrice,\n\n onHoverOver: onHoveredOverDay,\n currentMonth,\n\n onDayClicked: (date: dayjs.Dayjs) => {\n onClickDate(date);\n },\n setMaxPrice,\n };\n\n const printMonths = useMemo(\n () => (\n <>\n {calendarStyle === 'Month' ? (\n <>\n <DatePickerMonth small={props.small} showingMonth={currentMonth} />\n {props.showMultipleMonths && <DatePickerMonth showingMonth={currentMonth.add(1, 'month')} />}\n </>\n ) : (\n <>\n <React.Suspense fallback={<WeekViewSkeleton />}>\n <DatePickerWeek />\n </React.Suspense>\n </>\n )}\n </>\n ),\n [currentMonth, props.showMultipleMonths, calendarStyle]\n );\n\n const calendarClassNames = classNames('diji-calendar', {\n '--single': !props.showMultipleMonths,\n '--small': props.small,\n '--week': calendarStyle === 'Week',\n });\n const previousMonthOnClick = () => {\n DataLayer.instance.sendInteraction('Show Previous Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCurrentMonth(currentMonth.subtract(1, 'month'));\n };\n const nextMonthOnClick = () => {\n DataLayer.instance.sendInteraction('Show Next Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCurrentMonth(currentMonth.add(1, 'month'));\n };\n const setCalendarStyleAsMonth = () => {\n DataLayer.instance.sendInteraction('Set Calendar Style - Month', InteractionType.CALENDAR, InteractionStep.DATES);\n setCalendarStyle('Month');\n };\n const setCalendarStyleAsWeek = () => {\n DataLayer.instance.sendInteraction('Set Calendar Style - Week', InteractionType.CALENDAR, InteractionStep.DATES);\n setCalendarStyle('Week');\n };\n\n return (\n <DatePickerContext.Provider value={context}>\n <div ref={firstUpdate} className={calendarClassNames}>\n {calendarStyle === 'Month' && (\n <div className=\"diji-calendar-navigation\">\n <Icon icon={IconType.ArrowLeft2} onClick={previousMonthOnClick} color={Color.White} backgroundColor={Color.Navy} borderRadius=\"round\" size=\"24px\" />\n <Icon icon={IconType.ArrowRight2} onClick={nextMonthOnClick} color={Color.White} backgroundColor={Color.Navy} borderRadius=\"round\" size=\"24px\" />\n </div>\n )}\n {props.supportsWeek && (\n <div className=\"diji-calendar-picker-type\">\n <Icon\n name=\"Calendar_MothViewButton\"\n icon={IconType.ViewMonth}\n size=\"32px\"\n color={calendarStyle === 'Month' ? Color.Navy : Color.Grey}\n onClick={setCalendarStyleAsMonth}\n />\n <Icon\n name=\"Calendar_WeekViewButton\"\n icon={IconType.ViewWeek}\n size=\"32px\"\n color={calendarStyle === 'Week' ? Color.Navy : Color.Grey}\n onClick={setCalendarStyleAsWeek}\n />\n </div>\n )}\n {printMonths}\n {props.showMinNightStay && props.showMultipleMonths && (\n <div className=\"diji-calendar--min-night-stay u-flex u-flex-direction-column u-flex-align-center\">\n <DaysSelectedInformer />\n <div className=\"u-marg-top--light\">\n <MinimumNightStayPill />\n </div>\n </div>\n )}\n </div>\n\n {props.showMinNightStay && !props.showMultipleMonths && (\n <div className=\"diji-calendar--min-night-stay --small u-flex u-flex-direction-column u-flex-align-center u-marg-top\">\n <DaysSelectedInformer />\n <div className=\"u-marg-top--light\">\n <MinimumNightStayPill />\n </div>\n </div>\n )}\n </DatePickerContext.Provider>\n );\n}\n"]}
|
|
@@ -1,27 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const react_1 =
|
|
7
|
-
const react_2 = require("react");
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
8
30
|
const BookingAPI_1 = __importDefault(require("../../../api/BookingAPI"));
|
|
9
31
|
const contexts_1 = require("../../../contexts/index.js");
|
|
10
|
-
const contexts_2 = require("../../../contexts/index.js");
|
|
11
32
|
const hooks_1 = require("../../../hooks/index.js");
|
|
12
|
-
const ScreenSize_1 = __importDefault(require("../../../util/ScreenSize"));
|
|
13
33
|
const LargeLoader_1 = __importDefault(require("../../generic/loader/LargeLoader"));
|
|
14
34
|
const StepRoomSummaryAndButton_1 = __importDefault(require("../room/StepRoomSummaryAndButton"));
|
|
15
35
|
const AddonCard_1 = __importDefault(require("./AddonCard"));
|
|
16
36
|
const AddonsNotFound_1 = __importDefault(require("./AddonsNotFound"));
|
|
37
|
+
const StepLayout_1 = require("../../generic/Layout/StepLayout");
|
|
17
38
|
const AddonList = () => {
|
|
18
|
-
const basketContext = (0,
|
|
19
|
-
const
|
|
20
|
-
const ccx = (0, react_2.useContext)(contexts_2.CompanyContext);
|
|
39
|
+
const basketContext = (0, react_1.useContext)(contexts_1.BasketContext);
|
|
40
|
+
const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
|
|
21
41
|
const { hotel } = (0, hooks_1.useCurrentHotel)();
|
|
22
42
|
const rows = basketContext.getAllValidRows();
|
|
23
|
-
const [addons, setAddons] = (0,
|
|
24
|
-
const [isLoading, setLoading] = (0,
|
|
43
|
+
const [addons, setAddons] = (0, react_1.useState)(null);
|
|
44
|
+
const [isLoading, setLoading] = (0, react_1.useState)(false);
|
|
25
45
|
react_1.default.useEffect(() => {
|
|
26
46
|
setLoading(true);
|
|
27
47
|
BookingAPI_1.default.Addons.findAddons(rows, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID).then((foundedAddons) => {
|
|
@@ -30,11 +50,11 @@ const AddonList = () => {
|
|
|
30
50
|
});
|
|
31
51
|
}, [ccx.currentLanguage]);
|
|
32
52
|
return (react_1.default.createElement("div", { className: "u-flex" },
|
|
33
|
-
react_1.default.createElement(
|
|
34
|
-
react_1.default.createElement(
|
|
53
|
+
react_1.default.createElement(StepLayout_1.StepLayoutContainer, null,
|
|
54
|
+
react_1.default.createElement(StepLayout_1.StepLayoutLeftContent, null, !isLoading ? ((addons === null || addons === void 0 ? void 0 : addons.length) ? (addons.map((addon, index) => {
|
|
35
55
|
return react_1.default.createElement(AddonCard_1.default, { key: index, className: "u-marg-bottom", addon: addon });
|
|
36
56
|
})) : (react_1.default.createElement(AddonsNotFound_1.default, null))) : (react_1.default.createElement(LargeLoader_1.default, null))),
|
|
37
|
-
react_1.default.createElement(
|
|
57
|
+
react_1.default.createElement(StepLayout_1.StepLayoutRightContent, null,
|
|
38
58
|
react_1.default.createElement(StepRoomSummaryAndButton_1.default, null)))));
|
|
39
59
|
};
|
|
40
60
|
exports.default = AddonList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddonList.js","sourceRoot":"/","sources":["src/components/steps/addons/AddonList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddonList.js","sourceRoot":"/","sources":["src/components/steps/addons/AddonList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,kEAAmC;AACnC,iDAAmE;AACnE,2CAAkD;AAElD,0FAAkE;AAClE,gHAAwF;AACxF,oFAA4D;AAC5D,8FAAsE;AACtE,uEAA4H;AAE5H,MAAM,SAAS,GAAG,GAAG,EAAE;IACnB,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAiB,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhD,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,oBAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;YACzE,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAE1B,OAAO,CACH,uCAAK,SAAS,EAAC,QAAQ;QACnB,8BAAC,gCAAmB;YAChB,8BAAC,kCAAqB,QACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CACV,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAC,CAAC,CAAC,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;gBACvC,OAAO,8BAAC,mBAAS,IAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;YAC7E,CAAC,CAAC,CACL,CAAC,CAAC,CAAC,CACA,8BAAC,wBAAc,OAAG,CACrB,CACJ,CAAC,CAAC,CAAC,CACA,8BAAC,qBAAW,OAAG,CAClB,CACmB;YAExB,8BAAC,mCAAsB;gBACnB,8BAAC,kCAAwB,OAAG,CACP,CACP,CACpB,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["import React, { useContext, useState } from 'react';\nimport API from '@/api/BookingAPI';\nimport { BasketContext, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Addon } from '@/models/Addon/Addon';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport StepRoomSummaryAndButton from '@/components/steps/room/StepRoomSummaryAndButton';\nimport AddonCard from '@/components/steps/addons/AddonCard';\nimport AddonsNotFound from '@/components/steps/addons/AddonsNotFound';\nimport { StepLayoutContainer, StepLayoutLeftContent, StepLayoutRightContent } from '@/components/generic/Layout/StepLayout';\n\nconst AddonList = () => {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const rows = basketContext.getAllValidRows();\n const [addons, setAddons] = useState<Addon[] | null>(null);\n const [isLoading, setLoading] = useState(false);\n\n React.useEffect(() => {\n setLoading(true);\n API.Addons.findAddons(rows, hotel?.hotelID as string).then((foundedAddons) => {\n setLoading(false);\n setAddons(foundedAddons);\n });\n }, [ccx.currentLanguage]);\n\n return (\n <div className=\"u-flex\">\n <StepLayoutContainer>\n <StepLayoutLeftContent>\n {!isLoading ? (\n addons?.length ? (\n addons.map((addon: Addon, index: number) => {\n return <AddonCard key={index} className=\"u-marg-bottom\" addon={addon} />;\n })\n ) : (\n <AddonsNotFound />\n )\n ) : (\n <LargeLoader />\n )}\n </StepLayoutLeftContent>\n\n <StepLayoutRightContent>\n <StepRoomSummaryAndButton />\n </StepLayoutRightContent>\n </StepLayoutContainer>\n </div>\n );\n};\n\nexport default AddonList;\n"]}
|
|
@@ -35,8 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
const react_1 =
|
|
39
|
-
const react_2 = require("react");
|
|
38
|
+
const react_1 = __importStar(require("react"));
|
|
40
39
|
const react_i18next_1 = require("react-i18next");
|
|
41
40
|
const Translation_1 = require("translations/Translation");
|
|
42
41
|
const Color_1 = require("../../../util/Color");
|
|
@@ -54,19 +53,24 @@ const contexts_1 = require("../../../contexts/index.js");
|
|
|
54
53
|
const Tooltip_1 = __importDefault(require("../../generic/Tooltip/Tooltip"));
|
|
55
54
|
const SmallSpinner_1 = __importDefault(require("../../generic/loader/SmallSpinner"));
|
|
56
55
|
const StepRoom_1 = __importDefault(require("../../../pages/steps/StepRoom/StepRoom"));
|
|
56
|
+
const hooks_1 = require("../../../hooks");
|
|
57
|
+
const BasketRow_1 = __importDefault(require("../../../models/BasketRow"));
|
|
58
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
57
59
|
const HotelCard = ({ hotel }) => {
|
|
58
60
|
var _a, _b, _c;
|
|
59
|
-
const beContext = (0,
|
|
60
|
-
const ccx = (0,
|
|
61
|
+
const beContext = (0, react_1.useContext)(contexts_1.BookingEngineContext);
|
|
62
|
+
const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
|
|
63
|
+
const { hotel: currentHotel } = (0, hooks_1.useCurrentHotel)();
|
|
64
|
+
const basketContext = (0, contexts_1.useBasket)();
|
|
61
65
|
const history = (0, react_router_dom_1.useHistory)();
|
|
62
|
-
const [images, setImages] = (0,
|
|
63
|
-
const [modalOpen, setModalOpen] = (0,
|
|
64
|
-
const hotelCardRef = (0,
|
|
66
|
+
const [images, setImages] = (0, react_1.useState)([hotel.heroImage]);
|
|
67
|
+
const [modalOpen, setModalOpen] = (0, react_1.useState)(false);
|
|
68
|
+
const hotelCardRef = (0, react_1.useRef)(null);
|
|
65
69
|
const currentPrice = (_a = hotel.lowestPrice) === null || _a === void 0 ? void 0 : _a.value;
|
|
66
70
|
const currentPriceLoading = (_b = hotel.lowestPrice) === null || _b === void 0 ? void 0 : _b.isLoading;
|
|
67
71
|
const showPrice = currentPriceLoading || (!currentPriceLoading && currentPrice > 0);
|
|
68
72
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
69
|
-
(0,
|
|
73
|
+
(0, react_1.useEffect)(() => {
|
|
70
74
|
const newImages = [hotel.heroImage];
|
|
71
75
|
if (hotel.rooms) {
|
|
72
76
|
for (const room of Object.values(hotel.rooms)) {
|
|
@@ -77,15 +81,24 @@ const HotelCard = ({ hotel }) => {
|
|
|
77
81
|
}
|
|
78
82
|
setImages(newImages);
|
|
79
83
|
}, [hotel.rooms]);
|
|
80
|
-
(0,
|
|
84
|
+
(0, react_1.useEffect)(() => {
|
|
81
85
|
if (!hotel.hasLoadedDetails) {
|
|
82
86
|
// If we haven't fetched this hotel yet, lets trigger
|
|
83
87
|
ccx.getHotel(hotel.hotelID);
|
|
84
88
|
}
|
|
85
89
|
}, [hotel.hasLoadedDetails]);
|
|
86
|
-
const [openPerk, setOpenPerk] = (0,
|
|
90
|
+
const [openPerk, setOpenPerk] = (0, react_1.useState)((_c = hotel.perks[0]) === null || _c === void 0 ? void 0 : _c.name);
|
|
87
91
|
const colorProfile = hotel.colors;
|
|
88
92
|
const onViewRoomsClicked = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
|
+
if ((currentHotel === null || currentHotel === void 0 ? void 0 : currentHotel.hotelID) !== hotel.hotelID) {
|
|
94
|
+
const appliedBasketRow = basketContext.selectedBasketRow || basketContext.currentBasketRows[basketContext.currentBasketRows.length - 1];
|
|
95
|
+
const row = new BasketRow_1.default();
|
|
96
|
+
row.setStartDate((appliedBasketRow === null || appliedBasketRow === void 0 ? void 0 : appliedBasketRow.getStartDate()) || (0, dayjs_1.default)().add(1, 'day'));
|
|
97
|
+
row.setEndDate((appliedBasketRow === null || appliedBasketRow === void 0 ? void 0 : appliedBasketRow.getEndDate()) || (0, dayjs_1.default)().add(2, 'day'));
|
|
98
|
+
row.setChildren((appliedBasketRow === null || appliedBasketRow === void 0 ? void 0 : appliedBasketRow.getAdults()) || 1);
|
|
99
|
+
row.setChildren((appliedBasketRow === null || appliedBasketRow === void 0 ? void 0 : appliedBasketRow.getChildren()) || 0);
|
|
100
|
+
basketContext.initBasketRows([row]);
|
|
101
|
+
}
|
|
89
102
|
ccx.changeHotel(hotel);
|
|
90
103
|
history.push(StepRoom_1.default.getStepUrl());
|
|
91
104
|
});
|
|
@@ -96,7 +109,7 @@ const HotelCard = ({ hotel }) => {
|
|
|
96
109
|
setModalOpen(false);
|
|
97
110
|
};
|
|
98
111
|
const isLoading = !hotel.hasLoadedDetails;
|
|
99
|
-
return (0,
|
|
112
|
+
return (0, react_1.useMemo)(() => {
|
|
100
113
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
101
114
|
const content = isLoading ? (react_1.default.createElement("div", null,
|
|
102
115
|
react_1.default.createElement("div", { className: "d-flex flex-column" },
|