@mirai/core 0.3.407 → 0.3.409
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/__tests__/Finder/workflows/occupation.workflow.js +16 -2
- package/__tests__/Rates/__mocks__/extras-one-success.json +138 -0
- package/__tests__/Rates/__mocks__/extras-success.json +397 -0
- package/__tests__/Rates/workflows/extras.js +9 -0
- package/__tests__/Rates/workflows/extrasExpect.js +11 -0
- package/__tests__/Rates/workflows/index.js +4 -0
- package/__tests__/Rates/workflows/multiroom.js +26 -0
- package/__tests__/Rates/workflows/rates.js +9 -0
- package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-one-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-some-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-one-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-some-extras-1.png +0 -0
- package/__tests__/finder.spec.js +10 -0
- package/__tests__/rates.spec.jsx +31 -12
- package/build/components/Rates/Rates.Footer.js +5 -1
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.js +14 -6
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/__tests__/__snapshots__/Rates.test.js.snap +70 -59
- package/build/components/Rates/components/Item/Item.Summary.js +7 -2
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.module.css +2 -2
- package/build/components/Rates/components/ModalExtras/ModalExtras.js +7 -2
- package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
- package/build/components/__shared__/BookingSummary/BookingSummary.js +2 -1
- package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
- package/package.json +1 -1
- package/playwright.config.js +1 -0
- package/public/routes/Step1-Rates.jsx +1 -1
package/__tests__/rates.spec.jsx
CHANGED
|
@@ -1,20 +1,39 @@
|
|
|
1
|
-
import { test } from '@playwright/test';
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
|
|
5
|
-
});
|
|
3
|
+
import { extras, extrasExpect, multiroom, rates } from './Rates/workflows';
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
body: JSON.stringify(require('./Rates/__mocks__/rates-success.json')),
|
|
13
|
-
});
|
|
14
|
-
});
|
|
5
|
+
const testId = 'rates';
|
|
6
|
+
|
|
7
|
+
test.beforeEach(async ({ context, page }) => {
|
|
8
|
+
await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
|
|
9
|
+
await rates({ page });
|
|
15
10
|
|
|
16
11
|
await page.goto(
|
|
17
12
|
'http://local.mirai.com:8080/step1-rates?checkin=10/04/2025&idtokenprovider=100379008¤cy=EUR&hsri=02040&lang=en&nights=2&parties=W3siYWR1bHRzIjoyLCJjaGlsZHJlbiI6W119XQ%3D%3D&&step=1',
|
|
18
13
|
{ waitUntil: 'networkidle', timeout: 10000 },
|
|
19
14
|
);
|
|
20
15
|
});
|
|
16
|
+
|
|
17
|
+
test('Search multiroom without extras', async ({ isMobile, page }) => {
|
|
18
|
+
await rates({ page });
|
|
19
|
+
await extras({ empty: true, page });
|
|
20
|
+
await multiroom({ isMobile, page, testId });
|
|
21
|
+
|
|
22
|
+
await expect(page).toHaveURL(/.*step2-checkout/, { timeout: 10000 });
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('Search multiroom with some extras', async ({ isMobile, page }) => {
|
|
26
|
+
await rates({ page });
|
|
27
|
+
await extras({ page });
|
|
28
|
+
await multiroom({ isMobile, page, testId });
|
|
29
|
+
|
|
30
|
+
await extrasExpect({ page, testId });
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('Search multiroom with one extras', async ({ isMobile, page }) => {
|
|
34
|
+
await rates({ page });
|
|
35
|
+
await extras({ onlyOne: true, page });
|
|
36
|
+
await multiroom({ isMobile, page, testId });
|
|
37
|
+
|
|
38
|
+
await extrasExpect({ page, testId });
|
|
39
|
+
});
|
|
@@ -72,6 +72,9 @@ const Footer = _ref => {
|
|
|
72
72
|
onSubmit();
|
|
73
73
|
};
|
|
74
74
|
const visible = items.length > 0;
|
|
75
|
+
const {
|
|
76
|
+
testId
|
|
77
|
+
} = others;
|
|
75
78
|
return /*#__PURE__*/_react.default.createElement(_ui.View, _extends({}, others, {
|
|
76
79
|
ref: refContainer,
|
|
77
80
|
className: (0, _ui.styles)(style.footer, visible && style.visible, others.className),
|
|
@@ -158,7 +161,8 @@ const Footer = _ref => {
|
|
|
158
161
|
disabled: !valid,
|
|
159
162
|
large: !isMobile,
|
|
160
163
|
onPress: handleSubmit,
|
|
161
|
-
"aria-label": translate(_Rates.L10N.ACTION_RESERVE)
|
|
164
|
+
"aria-label": translate(_Rates.L10N.ACTION_RESERVE),
|
|
165
|
+
testId: testId ? "".concat(testId, "-reserve") : undefined
|
|
162
166
|
}, translate(_Rates.L10N.ACTION_RESERVE))));
|
|
163
167
|
};
|
|
164
168
|
exports.Footer = Footer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Footer","_ref","cart","dataSource","taxesType","extras","login","multiRoom","occupation","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","refContainer","useRef","busy","setBusy","useState","useEffect","items","filter","item","undefined","Event","publish","EVENT","MODAL_VISIBLE","visible","content","current","ResizeObserver","observer","FOOTER_HEIGHT_CHANGE","height","offsetHeight","observe","unobserve","totalPrice","reduce","price","valid","handleSubmit","createElement","View","ref","className","styles","footer","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","concat","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","description","bold","action","light","maximumFractionDigits","Button","disabled","large","onPress","L10N","ACTION_RESERVE","summary","headline","level","tiny","getLabelTaxes","exports","displayName","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { EVENT, ICON } from '../helpers';\n\nconst Footer = ({\n cart = [],\n dataSource: { taxesType } = {},\n extras,\n login,\n multiRoom,\n occupation = [],\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => {\n const items = cart.filter((item) => item !== undefined);\n\n Event.publish(EVENT.MODAL_VISIBLE, { visible: items.length > 0 });\n\n const content = refContainer?.current;\n if (!content || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(() =>\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: items.length ? content.offsetHeight : undefined }),\n );\n observer.observe(content);\n\n return () => observer.unobserve(content);\n }, [cart]);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !login && setBusy(false), [login]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n const visible = items.length > 0;\n\n return (\n <View\n {...others}\n ref={refContainer}\n className={styles(style.footer, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={`${id}${index}`} className={style.cartItem}>\n {multiRoom && (\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n )}\n\n <View className={style.description}>\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n {multiRoom && <Text light small>{` | ${boardName}`}</Text>}\n </Text>\n {!multiRoom && (\n <Text light small>\n {boardName}\n </Text>\n )}\n </View>\n\n <Text bold {...(multiRoom ? { action: !isMobile, small: isMobile } : { action: isMobile })}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button small busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n {multiRoom && (\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button\n busy={busy}\n disabled={!valid}\n large={!isMobile}\n onPress={handleSubmit}\n aria-label={translate(L10N.ACTION_RESERVE)}\n >\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n login: PropTypes.bool,\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Footer","_ref","cart","dataSource","taxesType","extras","login","multiRoom","occupation","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","refContainer","useRef","busy","setBusy","useState","useEffect","items","filter","item","undefined","Event","publish","EVENT","MODAL_VISIBLE","visible","content","current","ResizeObserver","observer","FOOTER_HEIGHT_CHANGE","height","offsetHeight","observe","unobserve","totalPrice","reduce","price","valid","handleSubmit","testId","createElement","View","ref","className","styles","footer","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","concat","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","description","bold","action","light","maximumFractionDigits","Button","disabled","large","onPress","L10N","ACTION_RESERVE","summary","headline","level","tiny","getLabelTaxes","exports","displayName","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { EVENT, ICON } from '../helpers';\n\nconst Footer = ({\n cart = [],\n dataSource: { taxesType } = {},\n extras,\n login,\n multiRoom,\n occupation = [],\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => {\n const items = cart.filter((item) => item !== undefined);\n\n Event.publish(EVENT.MODAL_VISIBLE, { visible: items.length > 0 });\n\n const content = refContainer?.current;\n if (!content || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(() =>\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: items.length ? content.offsetHeight : undefined }),\n );\n observer.observe(content);\n\n return () => observer.unobserve(content);\n }, [cart]);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !login && setBusy(false), [login]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n const visible = items.length > 0;\n const { testId } = others;\n\n return (\n <View\n {...others}\n ref={refContainer}\n className={styles(style.footer, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={`${id}${index}`} className={style.cartItem}>\n {multiRoom && (\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n )}\n\n <View className={style.description}>\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n {multiRoom && <Text light small>{` | ${boardName}`}</Text>}\n </Text>\n {!multiRoom && (\n <Text light small>\n {boardName}\n </Text>\n )}\n </View>\n\n <Text bold {...(multiRoom ? { action: !isMobile, small: isMobile } : { action: isMobile })}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button small busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n {multiRoom && (\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n </View>\n\n <Button\n busy={busy}\n disabled={!valid}\n large={!isMobile}\n onPress={handleSubmit}\n aria-label={translate(L10N.ACTION_RESERVE)}\n testId={testId ? `${testId}-reserve` : undefined}\n >\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n login: PropTypes.bool,\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
@@ -451,7 +451,8 @@ const Rates = _ref => {
|
|
|
451
451
|
icon: true,
|
|
452
452
|
metrics: "RATES:FINDER",
|
|
453
453
|
storage: false,
|
|
454
|
-
onSubmit: handleFinder
|
|
454
|
+
onSubmit: handleFinder,
|
|
455
|
+
testId: testId ? "".concat(testId, "-finder") : undefined
|
|
455
456
|
}), isMobile && (response || multiRoom && !responseError) && /*#__PURE__*/_react.default.createElement(_components.Filters, _extends({}, dataSource, {
|
|
456
457
|
priceFactor,
|
|
457
458
|
onSubmit: handleFilters
|
|
@@ -459,7 +460,9 @@ const Rates = _ref => {
|
|
|
459
460
|
indeterminate: true,
|
|
460
461
|
visible: fetching && !responseError,
|
|
461
462
|
className: style.progress
|
|
462
|
-
}), isMobile && !responseError && /*#__PURE__*/_react.default.createElement(_Rates6.RoomSelector,
|
|
463
|
+
}), isMobile && !responseError && /*#__PURE__*/_react.default.createElement(_Rates6.RoomSelector, _extends({}, roomSelectorProps, {
|
|
464
|
+
testId: testId ? "".concat(testId, "-multiroom") : undefined
|
|
465
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
463
466
|
role: "rates",
|
|
464
467
|
testId: testId,
|
|
465
468
|
className: (0, _ui.styles)(style.container, others.className)
|
|
@@ -474,7 +477,9 @@ const Rates = _ref => {
|
|
|
474
477
|
onFilters: handleFilters,
|
|
475
478
|
onMapView: setMapView,
|
|
476
479
|
onSelect: handleSelect
|
|
477
|
-
}, !isMobile && /*#__PURE__*/_react.default.createElement(_Rates6.RoomSelector,
|
|
480
|
+
}, !isMobile && /*#__PURE__*/_react.default.createElement(_Rates6.RoomSelector, _extends({}, roomSelectorProps, {
|
|
481
|
+
testId: testId ? "".concat(testId, "-multiroom") : undefined
|
|
482
|
+
}))), response ? /*#__PURE__*/_react.default.createElement(_shared__.Cards, null, (_select = (0, _helpers.select)(dataSource.items, filters, {
|
|
478
483
|
priceFactor
|
|
479
484
|
})) === null || _select === void 0 ? void 0 : _select.map((_ref2, index) => {
|
|
480
485
|
let {
|
|
@@ -503,7 +508,8 @@ const Rates = _ref => {
|
|
|
503
508
|
onOfferInfo: rate => setOfferInfo(rate),
|
|
504
509
|
onPreview: showPreviewPrice && !multiRoom ? setItemPreview : undefined,
|
|
505
510
|
onSelect: handleSelect,
|
|
506
|
-
onViewUrl: info => setItemUrl(info)
|
|
511
|
+
onViewUrl: info => setItemUrl(info),
|
|
512
|
+
testId: testId ? "".concat(testId, "-item-").concat(index) : undefined
|
|
507
513
|
}));
|
|
508
514
|
}), (_dataSource$hotels = dataSource.hotels) === null || _dataSource$hotels === void 0 ? void 0 : _dataSource$hotels.map(function () {
|
|
509
515
|
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -528,7 +534,8 @@ const Rates = _ref => {
|
|
|
528
534
|
login,
|
|
529
535
|
multiRoom,
|
|
530
536
|
occupation,
|
|
531
|
-
onSubmit: () => multiRoom ? handleSubmit(cart) : handleSelect(itemPreview)
|
|
537
|
+
onSubmit: () => multiRoom ? handleSubmit(cart) : handleSelect(itemPreview),
|
|
538
|
+
testId: testId ? "".concat(testId, "-footer") : undefined
|
|
532
539
|
})), response && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.ModalItemInfo, _extends({}, itemInfo, {
|
|
533
540
|
features,
|
|
534
541
|
room,
|
|
@@ -549,7 +556,8 @@ const Rates = _ref => {
|
|
|
549
556
|
extras,
|
|
550
557
|
visible: !!extras,
|
|
551
558
|
onCancel: () => multiRoom ? setExtras() : handleSelect(),
|
|
552
|
-
onSubmit: extras => handleCheckout(cart, extras)
|
|
559
|
+
onSubmit: extras => handleCheckout(cart, extras),
|
|
560
|
+
testId: testId ? "".concat(testId, "-modalExtras") : undefined
|
|
553
561
|
})), club.active && ((_dataSource$items = dataSource.items) === null || _dataSource$items === void 0 ? void 0 : _dataSource$items.length) > 0 && /*#__PURE__*/_react.default.createElement(_SessionLogin.Modal, {
|
|
554
562
|
showSignup: false,
|
|
555
563
|
title: translate(_Rates5.L10N.LABEL_FARE_EXCLUSIVE_MEMBERS),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_helpers3","_SessionLogin","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","loginShown","Rates","_ref","_select","_dataSource$hotels","_dataSource$items","skeleton","testId","others","isDesktop","isMobile","mobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","refItems","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","rates","meta","metaCart","session","urlParams","useStore","cancellationInfo","setCancellationInfo","useState","cart","setCart","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","filters","setFilters","metaBoard","setMetaBoard","itemInfo","setItemInfo","itemUrl","setItemUrl","itemPreview","setItemPreview","login","setLogin","mapView","setMapView","offerInfo","setOfferInfo","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","Event","publish","EVENT","METRICS","multiRoom","subscribe","RATES_FILTER_CLUB","handleClubDiscount","unsubscribe","getMetaBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","debounceFetch","current","offsetHeight","offsetTop","scrollTo","tracking","trackDataSource","device","fetchUrlParams","location","search","fetch","nextOccupation","nextPromocode","promocode","FINDER","checkin","nights","parties","getFinderParams","replaceUrlParams","params","selectedIds","map","roomId","join","parseToParties","nextDataSource","ServiceRates","externalSignout","signout","checkNotifications","debounce","next","handleFilters","nextClubDiscount","nextStrictSearch","handleFinder","values","handleSelect","nextCart","scrollToRoom","trackSelectItem","handleSubmit","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","filter","isClubRate","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","setTimeout","document","href","getForwarderUrl","handleCloseLogin","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","window","top","behavior","_refItems$current$roo","getBoundingClientRect","scrollY","contentBackground","Theme","days","dateDiff","response","roomSelectorProps","onPress","showPreviewPrice","features","getFeatures","priceFactor","showPricePerNight","createElement","Fragment","Header","active","name","SHOW_NAME_IN_HEADER","View","ref","row","className","styles","blur","sticky","backgroundColor","opacity","Finder","compacted","icon","metrics","storage","onSubmit","Filters","Progress","indeterminate","visible","progress","RoomSelector","role","container","wrapper","content","Content","onFilters","onMapView","onSelect","Cards","select","items","_ref2","index","item","Item","filterItem","taxesType","concat","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onPreview","onViewUrl","info","hotels","CardHotel","Unavailability","Notification","error","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","bool","string"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceRates } from '@mirai/services';\nimport { Notification, Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport {\n CardHotel,\n ClubRate,\n Filters,\n Item,\n ModalCancellationInfo,\n ModalExtras,\n ModalItemInfo,\n ModalItemUrl,\n ModalMapView,\n ModalOfferInfo,\n} from './components';\nimport {\n filterItem,\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n getMetaBoard,\n isClubRate,\n select,\n signout,\n trackDataSource,\n trackSelectItem,\n} from './helpers';\nimport { FEATURES, NOTIFICATION, UTM_SOURCE_NAME } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer as RatesFooter } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ERROR } from '../../Core.constants';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, testId, ...others }) => {\n const { isDesktop, isMobile, mobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const refItems = useRef({});\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n rates: { meta: metaCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cancellationInfo, setCancellationInfo] = useState();\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filters, setFilters] = useState({});\n const [metaBoard, setMetaBoard] = useState();\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [itemPreview, setItemPreview] = useState();\n const [login, setLogin] = useState(false);\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => Event.publish(EVENT.METRICS, { id: 'RATES:RENDER', multiRoom }), []);\n\n useEffect(() => {\n Event.subscribe(EVENT.RATES_FILTER_CLUB, handleClubDiscount);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, handleClubDiscount);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [login]);\n\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!dataSource || !metaCart.length) return;\n\n getMetaBoard({ cart, dataSource, metaCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n setMetaBoard(board);\n set({ rates: undefined });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, metaCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n if (clubDiscount && loginShown) loginShown = false;\n !login && setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n scrollTo(offsetTop + (isMobile ? offsetHeight : 0));\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n trackDataSource({\n ...(dataSource || responseError),\n device,\n occupation,\n place,\n urlParams: fetchUrlParams(location.search),\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation, nextPromocode = finder.promocode) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n // ! TODO: [MF-2005] Use helper fetchRates() within <Rates>\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && room === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleFilters = (next = {}) => {\n const { clubDiscount: nextClubDiscount, strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (clubDiscount !== nextClubDiscount) setClubDiscount(nextClubDiscount);\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setItemPreview(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation, values.promocode);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n scrollToRoom(board.roomId);\n\n trackSelectItem({\n ...dataSource,\n board,\n cart: nextCart,\n device,\n occupation,\n urlParams: fetchUrlParams(location.search),\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n\n if (multiRoom) {\n Event.publish(EVENT.METRICS, { id: 'RATES:SELECT_ROOM' });\n if (board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) set({ rates: undefined });\n }\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (\n !isPestana &&\n clubDiscount &&\n !sessionProp &&\n !loginShown &&\n cart.filter((board) => isClubRate({ board, dataSource })).length > 0\n ) {\n loginShown = true;\n return setLogin(true);\n }\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n });\n }, 200);\n };\n\n const handleCloseLogin = () => {\n loginShown = false;\n multiRoom ? setLogin(false) : handleSelect();\n };\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const scrollTo = (value = 0) => window.scrollTo({ top: value, behavior: 'smooth' });\n\n const scrollToRoom = (roomId) => {\n const { top } = refItems?.current[roomId]?.getBoundingClientRect() || {};\n\n if (top) scrollTo(top + window.scrollY - (isMobile ? 16 : 16 * 5));\n };\n\n const { contentBackground } = Theme.get();\n const multiRoom = occupation?.length > 1;\n const { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const { showPreviewPrice, ...features } = getFeatures(hotel.id, urlParams, { isDesktop, isMobile }, multiRoom);\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n\n return (\n <>\n <Header currency login={club.active} name={ServiceFeatures.get(FEATURES.SHOW_NAME_IN_HEADER, hotel.id)} />\n\n <View\n ref={refRoomSelector}\n row={isMobile}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder compacted={!isDesktop} icon metrics=\"RATES:FINDER\" storage={false} onSubmit={handleFinder} />\n\n {isMobile && (response || (multiRoom && !responseError)) && (\n <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />\n )}\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} skeleton={skeleton} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader\n {...{\n dataSource,\n multiRoom,\n priceFactor,\n onFilters: handleFilters,\n onMapView: setMapView,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </RatesHeader>\n )}\n\n {response ? (\n <Cards>\n {select(dataSource.items, filters, { priceFactor })?.map(({ id, ...item }, index) => (\n <Item\n {...{\n ...filterItem(item, filters),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n }}\n key={`${id || index}:${fetching}:${width}`}\n ref={(el) => (refItems.current[id] = el)}\n selected={cart[room || 0]}\n onCancellationInfo={(rate) => setCancellationInfo({ ...rate, name: item.name })}\n onMoreInfo={() => setItemInfo(item)}\n onOfferInfo={(rate) => setOfferInfo(rate)}\n onPreview={showPreviewPrice && !multiRoom ? setItemPreview : undefined}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} nights={nights} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel ? (\n <Unavailability {...responseError} nights={nights} onMapView={setMapView} />\n ) : (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code || ERROR.UNKNOWN])}\n </Notification>\n )\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n <RatesFooter\n {...{ cart: multiRoom ? cart : [itemPreview], dataSource, extras, login, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : handleSelect(itemPreview))}\n />\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalCancellationInfo\n {...cancellationInfo}\n visible={!!cancellationInfo}\n onClose={() => setCancellationInfo()}\n />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalOfferInfo {...{ ...offerInfo }} visible={!!offerInfo} onClose={() => setOfferInfo()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={handleCloseLogin}\n onSuccess={() => handleSubmit(cart, true)}\n >\n <ClubRate\n visible={login}\n onCancel={() => handleClubDiscount(false)}\n onSubmit={() => handleSubmit(cart)}\n />\n </ModalLogin>\n )}\n </>\n )}\n\n <ModalMapView items={mapView} nights={nights} visible={!!mapView} onClose={() => setMapView()} />\n\n <Footer />\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n testId: PropTypes.string,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_helpers3","_SessionLogin","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","loginShown","Rates","_ref","_select","_dataSource$hotels","_dataSource$items","skeleton","testId","others","isDesktop","isMobile","mobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","refItems","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","rates","meta","metaCart","session","urlParams","useStore","cancellationInfo","setCancellationInfo","useState","cart","setCart","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","filters","setFilters","metaBoard","setMetaBoard","itemInfo","setItemInfo","itemUrl","setItemUrl","itemPreview","setItemPreview","login","setLogin","mapView","setMapView","offerInfo","setOfferInfo","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","Event","publish","EVENT","METRICS","multiRoom","subscribe","RATES_FILTER_CLUB","handleClubDiscount","unsubscribe","getMetaBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","debounceFetch","current","offsetHeight","offsetTop","scrollTo","tracking","trackDataSource","device","fetchUrlParams","location","search","fetch","nextOccupation","nextPromocode","promocode","FINDER","checkin","nights","parties","getFinderParams","replaceUrlParams","params","selectedIds","map","roomId","join","parseToParties","nextDataSource","ServiceRates","externalSignout","signout","checkNotifications","debounce","next","handleFilters","nextClubDiscount","nextStrictSearch","handleFinder","values","handleSelect","nextCart","scrollToRoom","trackSelectItem","handleSubmit","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","filter","isClubRate","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","setTimeout","document","href","getForwarderUrl","handleCloseLogin","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","window","top","behavior","_refItems$current$roo","getBoundingClientRect","scrollY","contentBackground","Theme","days","dateDiff","response","roomSelectorProps","onPress","showPreviewPrice","features","getFeatures","priceFactor","showPricePerNight","createElement","Fragment","Header","active","name","SHOW_NAME_IN_HEADER","View","ref","row","className","styles","blur","sticky","backgroundColor","opacity","Finder","compacted","icon","metrics","storage","onSubmit","concat","Filters","Progress","indeterminate","visible","progress","RoomSelector","role","container","wrapper","content","Content","onFilters","onMapView","onSelect","Cards","select","items","_ref2","index","item","Item","filterItem","taxesType","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onPreview","onViewUrl","info","hotels","CardHotel","Unavailability","Notification","error","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","bool","string"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceRates } from '@mirai/services';\nimport { Notification, Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport {\n CardHotel,\n ClubRate,\n Filters,\n Item,\n ModalCancellationInfo,\n ModalExtras,\n ModalItemInfo,\n ModalItemUrl,\n ModalMapView,\n ModalOfferInfo,\n} from './components';\nimport {\n filterItem,\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n getMetaBoard,\n isClubRate,\n select,\n signout,\n trackDataSource,\n trackSelectItem,\n} from './helpers';\nimport { FEATURES, NOTIFICATION, UTM_SOURCE_NAME } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer as RatesFooter } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ERROR } from '../../Core.constants';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, testId, ...others }) => {\n const { isDesktop, isMobile, mobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const refItems = useRef({});\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n rates: { meta: metaCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cancellationInfo, setCancellationInfo] = useState();\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filters, setFilters] = useState({});\n const [metaBoard, setMetaBoard] = useState();\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [itemPreview, setItemPreview] = useState();\n const [login, setLogin] = useState(false);\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => Event.publish(EVENT.METRICS, { id: 'RATES:RENDER', multiRoom }), []);\n\n useEffect(() => {\n Event.subscribe(EVENT.RATES_FILTER_CLUB, handleClubDiscount);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, handleClubDiscount);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [login]);\n\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!dataSource || !metaCart.length) return;\n\n getMetaBoard({ cart, dataSource, metaCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n setMetaBoard(board);\n set({ rates: undefined });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, metaCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n if (clubDiscount && loginShown) loginShown = false;\n !login && setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n scrollTo(offsetTop + (isMobile ? offsetHeight : 0));\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n trackDataSource({\n ...(dataSource || responseError),\n device,\n occupation,\n place,\n urlParams: fetchUrlParams(location.search),\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation, nextPromocode = finder.promocode) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n // ! TODO: [MF-2005] Use helper fetchRates() within <Rates>\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && room === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleFilters = (next = {}) => {\n const { clubDiscount: nextClubDiscount, strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (clubDiscount !== nextClubDiscount) setClubDiscount(nextClubDiscount);\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setItemPreview(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation, values.promocode);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n scrollToRoom(board.roomId);\n\n trackSelectItem({\n ...dataSource,\n board,\n cart: nextCart,\n device,\n occupation,\n urlParams: fetchUrlParams(location.search),\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n\n if (multiRoom) {\n Event.publish(EVENT.METRICS, { id: 'RATES:SELECT_ROOM' });\n if (board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) set({ rates: undefined });\n }\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (\n !isPestana &&\n clubDiscount &&\n !sessionProp &&\n !loginShown &&\n cart.filter((board) => isClubRate({ board, dataSource })).length > 0\n ) {\n loginShown = true;\n return setLogin(true);\n }\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n });\n }, 200);\n };\n\n const handleCloseLogin = () => {\n loginShown = false;\n multiRoom ? setLogin(false) : handleSelect();\n };\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const scrollTo = (value = 0) => window.scrollTo({ top: value, behavior: 'smooth' });\n\n const scrollToRoom = (roomId) => {\n const { top } = refItems?.current[roomId]?.getBoundingClientRect() || {};\n\n if (top) scrollTo(top + window.scrollY - (isMobile ? 16 : 16 * 5));\n };\n\n const { contentBackground } = Theme.get();\n const multiRoom = occupation?.length > 1;\n const { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const { showPreviewPrice, ...features } = getFeatures(hotel.id, urlParams, { isDesktop, isMobile }, multiRoom);\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n\n return (\n <>\n <Header currency login={club.active} name={ServiceFeatures.get(FEATURES.SHOW_NAME_IN_HEADER, hotel.id)} />\n\n <View\n ref={refRoomSelector}\n row={isMobile}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <Finder\n compacted={!isDesktop}\n icon\n metrics=\"RATES:FINDER\"\n storage={false}\n onSubmit={handleFinder}\n testId={testId ? `${testId}-finder` : undefined}\n />\n\n {isMobile && (response || (multiRoom && !responseError)) && (\n <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />\n )}\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n )}\n\n <View role=\"rates\" testId={testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} skeleton={skeleton} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader\n {...{\n dataSource,\n multiRoom,\n priceFactor,\n onFilters: handleFilters,\n onMapView: setMapView,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />}\n </RatesHeader>\n )}\n\n {response ? (\n <Cards>\n {select(dataSource.items, filters, { priceFactor })?.map(({ id, ...item }, index) => (\n <Item\n {...{\n ...filterItem(item, filters),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n }}\n key={`${id || index}:${fetching}:${width}`}\n ref={(el) => (refItems.current[id] = el)}\n selected={cart[room || 0]}\n onCancellationInfo={(rate) => setCancellationInfo({ ...rate, name: item.name })}\n onMoreInfo={() => setItemInfo(item)}\n onOfferInfo={(rate) => setOfferInfo(rate)}\n onPreview={showPreviewPrice && !multiRoom ? setItemPreview : undefined}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n testId={testId ? `${testId}-item-${index}` : undefined}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} nights={nights} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel ? (\n <Unavailability {...responseError} nights={nights} onMapView={setMapView} />\n ) : (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code || ERROR.UNKNOWN])}\n </Notification>\n )\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n <RatesFooter\n {...{ cart: multiRoom ? cart : [itemPreview], dataSource, extras, login, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : handleSelect(itemPreview))}\n testId={testId ? `${testId}-footer` : undefined}\n />\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalCancellationInfo\n {...cancellationInfo}\n visible={!!cancellationInfo}\n onClose={() => setCancellationInfo()}\n />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalOfferInfo {...{ ...offerInfo }} visible={!!offerInfo} onClose={() => setOfferInfo()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n testId={testId ? `${testId}-modalExtras` : undefined}\n />\n\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={handleCloseLogin}\n onSuccess={() => handleSubmit(cart, true)}\n >\n <ClubRate\n visible={login}\n onCancel={() => handleClubDiscount(false)}\n onSubmit={() => handleSubmit(cart)}\n />\n </ModalLogin>\n )}\n </>\n )}\n\n <ModalMapView items={mapView} nights={nights} visible={!!mapView} onClose={() => setMapView()} />\n\n <Footer />\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n testId: PropTypes.string,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|