@mirai/core 0.4.199 → 0.4.201
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/Dockerfile +16 -0
- package/build/components/BannerLoyalty/BannerLoyalty.js +38 -7
- package/build/components/BannerLoyalty/BannerLoyalty.js.map +1 -1
- package/build/components/Booking/Booking.module.css +2 -2
- package/build/components/Rates/Rates.js +2 -0
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.js +10 -5
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js +24 -0
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +2 -2
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
- package/build/helpers/consolidateStore.js +7 -83
- package/build/helpers/consolidateStore.js.map +1 -1
- package/build/helpers/getClub.js +103 -0
- package/build/helpers/getClub.js.map +1 -0
- package/package.json +4 -3
package/Dockerfile
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
FROM mcr.microsoft.com/playwright:v1.49.1-noble
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
COPY package.json /app
|
|
6
|
+
COPY yarn.lock /app
|
|
7
|
+
COPY playwright.config.js /app
|
|
8
|
+
COPY .env.production /app
|
|
9
|
+
|
|
10
|
+
RUN yarn install --network-timeout 1000000
|
|
11
|
+
|
|
12
|
+
COPY /public /app/public
|
|
13
|
+
COPY /scripts /app/scripts
|
|
14
|
+
COPY /src /app/src
|
|
15
|
+
|
|
16
|
+
RUN chmod -R 777 /app/src
|
|
@@ -34,32 +34,63 @@ const BannerLoyalty = _ref => {
|
|
|
34
34
|
const {
|
|
35
35
|
value: {
|
|
36
36
|
club: {
|
|
37
|
+
active,
|
|
37
38
|
banner: {
|
|
38
|
-
benefits = [],
|
|
39
|
+
benefits: storeBenefits = [],
|
|
39
40
|
description = {},
|
|
40
41
|
title,
|
|
41
42
|
url
|
|
42
43
|
} = {},
|
|
43
|
-
discount
|
|
44
|
+
discount,
|
|
45
|
+
variants
|
|
46
|
+
} = {},
|
|
47
|
+
finder: {
|
|
48
|
+
place
|
|
44
49
|
} = {},
|
|
45
50
|
session,
|
|
46
51
|
skeleton = false
|
|
47
52
|
}
|
|
48
53
|
} = (0, _dataSources.useStore)();
|
|
54
|
+
const [benefits, setBenefits] = (0, _react.useState)(storeBenefits);
|
|
55
|
+
const [clubActive, setClubActive] = (0, _react.useState)(active);
|
|
56
|
+
const [clubDiscount, setClubDiscount] = (0, _react.useState)(discount);
|
|
49
57
|
const [expanded, setExpanded] = (0, _react.useState)(false);
|
|
50
58
|
const [scrollIndex, setScrollIndex] = (0, _react.useState)(0);
|
|
51
|
-
const [clubDiscount, setClubDiscount] = (0, _react.useState)(discount);
|
|
52
59
|
(0, _react.useEffect)(() => {
|
|
53
|
-
const callback = nextClubDiscount => setClubDiscount(nextClubDiscount);
|
|
60
|
+
const callback = nextClubDiscount => setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);
|
|
54
61
|
_dataSources.Event.subscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
|
|
55
62
|
return () => _dataSources.Event.unsubscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
|
|
56
63
|
}, []);
|
|
64
|
+
(0, _react.useEffect)(() => setBenefits(storeBenefits), [storeBenefits]);
|
|
57
65
|
(0, _react.useEffect)(() => {
|
|
58
66
|
if (!session && title && benefits.length > 0) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
59
67
|
id: 'BANNER_LOYALTY:RENDER'
|
|
60
68
|
});
|
|
61
69
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
62
70
|
}, [session]);
|
|
71
|
+
(0, _react.useEffect)(() => {
|
|
72
|
+
if (!place) return;
|
|
73
|
+
const {
|
|
74
|
+
id: [hotelId] = [],
|
|
75
|
+
isHotel
|
|
76
|
+
} = place || {};
|
|
77
|
+
if (hotelId && isHotel && variants) {
|
|
78
|
+
const {
|
|
79
|
+
active,
|
|
80
|
+
banner: {
|
|
81
|
+
benefits: nextBenefits
|
|
82
|
+
} = {}
|
|
83
|
+
} = variants.find(function () {
|
|
84
|
+
let {
|
|
85
|
+
id = ''
|
|
86
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
87
|
+
return id.toString() === hotelId.toString();
|
|
88
|
+
}) || {};
|
|
89
|
+
nextBenefits && setBenefits(nextBenefits);
|
|
90
|
+
setClubActive(active);
|
|
91
|
+
}
|
|
92
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
|
+
}, [place]);
|
|
63
94
|
const handleExpanded = () => {
|
|
64
95
|
if (!expanded) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
65
96
|
id: 'BANNER_LOYALTY:EXPAND_BENEFITS'
|
|
@@ -97,7 +128,7 @@ const BannerLoyalty = _ref => {
|
|
|
97
128
|
};
|
|
98
129
|
const lastBenefit = scrollIndex === benefits.length - 4;
|
|
99
130
|
const locale = (0, _helpers.getNormalizedLocale)(stateLocale);
|
|
100
|
-
return skeleton && !session ? /*#__PURE__*/_react.default.createElement(_BannerLoyalty3.default, null) : !session && title
|
|
131
|
+
return clubActive && skeleton && !session ? /*#__PURE__*/_react.default.createElement(_BannerLoyalty3.default, null) : clubActive && !session && title ? /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
101
132
|
testId: others.testId,
|
|
102
133
|
className: [style.container, others.className]
|
|
103
134
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -139,7 +170,7 @@ const BannerLoyalty = _ref => {
|
|
|
139
170
|
onPress: handleExpanded
|
|
140
171
|
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
141
172
|
value: expanded ? _helpers.ICON.EXPAND_LESS : _helpers.ICON.EXPAND_MORE
|
|
142
|
-
})) : /*#__PURE__*/_react.default.createElement(Filter, null)), (!isMobile || expanded) && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
173
|
+
})) : clubDiscount !== undefined && /*#__PURE__*/_react.default.createElement(Filter, null)), (!isMobile || expanded) && benefits.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
143
174
|
row: true,
|
|
144
175
|
wide: true
|
|
145
176
|
}, !isMobile && scrollIndex !== 0 && /*#__PURE__*/_react.default.createElement(_ui.Button, _extends({}, buttonProps, {
|
|
@@ -174,7 +205,7 @@ const BannerLoyalty = _ref => {
|
|
|
174
205
|
onPress: () => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)
|
|
175
206
|
}), /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
176
207
|
value: lastBenefit ? _helpers.ICON.REPLAY : _helpers.ICON.RIGHT
|
|
177
|
-
}))), isMobile && /*#__PURE__*/_react.default.createElement(Filter, null)) : null;
|
|
208
|
+
}))), isMobile && clubDiscount !== undefined && /*#__PURE__*/_react.default.createElement(Filter, null)) : null;
|
|
178
209
|
};
|
|
179
210
|
exports.BannerLoyalty = BannerLoyalty;
|
|
180
211
|
BannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_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","BannerLoyalty","_ref","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","value","club","banner","benefits","description","title","url","discount","session","skeleton","useStore","expanded","setExpanded","useState","scrollIndex","setScrollIndex","clubDiscount","setClubDiscount","useEffect","callback","nextClubDiscount","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","publish","METRICS","id","handleExpanded","handlePressBenefit","index","handlePressFilter","Filter","createElement","View","row","className","filter","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","BENEFIT_MIN_WIDTH","list","map","icon","undefined","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: {\n club: { banner: { benefits = [], description = {}, title, url } = {}, discount } = {},\n session,\n skeleton = false,\n },\n } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n const [clubDiscount, setClubDiscount] = useState(discount);\n\n useEffect(() => {\n const callback = (nextClubDiscount) => setClubDiscount(nextClubDiscount);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => {\n if (!session && title && benefits.length > 0) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:RENDER' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n const handleExpanded = () => {\n if (!expanded) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:EXPAND_BENEFITS' });\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:BUTTON_BENEFITS' });\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:CLUBDISCOUNT', value });\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch checked={clubDiscount} name={`switch`} onChange={handlePressFilter} />\n </View>\n );\n\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return skeleton && !session ? (\n <Skeleton />\n ) : !session && title && benefits.length > 0 ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action\n action={isDesktop}\n bold\n small={!isDesktop}\n href={url}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action\n action={isDesktop}\n small={!isDesktop}\n href={clubConditions}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile ? { horizontal: !isMobile, scrollTo: scrollIndex * BENEFIT_MIN_WIDTH } : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAC,uBAAA,CAAAN,OAAA;AAEA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAH,uBAAA,CAAAN,OAAA;AACA,IAAAU,eAAA,GAAAN,sBAAA,CAAAJ,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAA8D,SAAAY,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAjB,uBAAA6B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,SAAA,IAAAA,QAAA,GAAAV,MAAA,CAAAW,MAAA,GAAAX,MAAA,CAAAW,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,MAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,GAAA,IAAAD,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAE9D,MAAMK,aAAa,GAAGC,IAAA,IAAmC;EAAA,IAAlC;IAAEC,cAAc;IAAE,GAAGC;EAAO,CAAC,GAAAF,IAAA;EAClD,MAAM;IAAEG,SAAS;IAAEC;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAC3C,MAAM;IAAEC,MAAM,EAAEC,WAAW;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACtD,MAAM;IACJC,KAAK,EAAE;MACLC,IAAI,EAAE;QAAEC,MAAM,EAAE;UAAEC,QAAQ,GAAG,EAAE;UAAEC,WAAW,GAAG,CAAC,CAAC;UAAEC,KAAK;UAAEC;QAAI,CAAC,GAAG,CAAC,CAAC;QAAEC;MAAS,CAAC,GAAG,CAAC,CAAC;MACrFC,OAAO;MACPC,QAAQ,GAAG;IACb;EACF,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC,CAAC;EACjD,MAAM,CAACG,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAJ,eAAQ,EAACN,QAAQ,CAAC;EAE1D,IAAAW,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAIC,gBAAgB,IAAKH,eAAe,CAACG,gBAAgB,CAAC;IAExEC,kBAAK,CAACC,SAAS,CAACC,cAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;IAElD,OAAO,MAAME,kBAAK,CAACI,WAAW,CAACF,cAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;EACnE,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACV,OAAO,IAAIH,KAAK,IAAIF,QAAQ,CAAClB,MAAM,GAAG,CAAC,EAAEoC,kBAAK,CAACK,OAAO,CAACH,cAAK,CAACI,OAAO,EAAE;MAAEC,EAAE,EAAE;IAAwB,CAAC,CAAC;IAC3G;EACF,CAAC,EAAE,CAACpB,OAAO,CAAC,CAAC;EAEb,MAAMqB,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAAClB,QAAQ,EAAEU,kBAAK,CAACK,OAAO,CAACH,cAAK,CAACI,OAAO,EAAE;MAAEC,EAAE,EAAE;IAAiC,CAAC,CAAC;IACrFhB,WAAW,CAAC,CAACD,QAAQ,CAAC;EACxB,CAAC;EAED,MAAMmB,kBAAkB,GAAIC,KAAK,IAAK;IACpChB,cAAc,CAACgB,KAAK,CAAC;IACrBV,kBAAK,CAACK,OAAO,CAACH,cAAK,CAACI,OAAO,EAAE;MAAEC,EAAE,EAAE;IAAiC,CAAC,CAAC;EACxE,CAAC;EAED,MAAMI,iBAAiB,GAAIhC,KAAK,IAAK;IACnCqB,kBAAK,CAACK,OAAO,CAACH,cAAK,CAACC,iBAAiB,EAAExB,KAAK,CAAC;IAC7CqB,kBAAK,CAACK,OAAO,CAACH,cAAK,CAACI,OAAO,EAAE;MAAEC,EAAE,EAAE,6BAA6B;MAAE5B;IAAM,CAAC,CAAC;EAC5E,CAAC;EAED,MAAMiC,MAAM,GAAGA,CAAA,kBACblF,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI;IAACC,GAAG;IAACC,SAAS,EAAElF,KAAK,CAACmF;EAAO,gBAChCvF,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA2F,IAAI;IAACC,MAAM;IAACC,MAAM;EAAA,GAChB3C,SAAS,CAAC4C,oBAAI,CAACC,kBAAkB,CAC9B,CAAC,eACP5F,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAgG,MAAM;IAACC,OAAO,EAAE7B,YAAa;IAAC8B,IAAI,UAAW;IAACC,QAAQ,EAAEf;EAAkB,CAAE,CACzE,CACP;EAED,MAAMgB,WAAW,GAAG;IAAEC,SAAS,EAAE,IAAI;IAAEC,OAAO,EAAE,IAAI;IAAEC,OAAO,EAAE;EAAK,CAAC;EACrE,MAAMC,WAAW,GAAGtC,WAAW,KAAKX,QAAQ,CAAClB,MAAM,GAAG,CAAC;EACvD,MAAMW,MAAM,GAAG,IAAAyD,4BAAmB,EAACxD,WAAW,CAAC;EAE/C,OAAOY,QAAQ,IAAI,CAACD,OAAO,gBACzBzD,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAAC9E,eAAA,CAAAQ,OAAQ,MAAE,CAAC,GACV,CAAC4C,OAAO,IAAIH,KAAK,IAAIF,QAAQ,CAAClB,MAAM,GAAG,CAAC,gBAC1ClC,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI;IAACmB,MAAM,EAAE9D,MAAM,CAAC8D,MAAO;IAACjB,SAAS,EAAE,CAAClF,KAAK,CAACoG,SAAS,EAAE/D,MAAM,CAAC6C,SAAS;EAAE,gBAC1EtF,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI;IAACC,GAAG;IAACC,SAAS,EAAElF,KAAK,CAACqG;EAAU,gBACnCzG,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI,qBACHpF,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA2F,IAAI;IAACkB,IAAI;IAACC,KAAK;IAACC,QAAQ;IAACC,KAAK,EAAEnE,SAAS,GAAG,CAAC,GAAG,CAAE;IAAC4C,SAAS,EAAElF,KAAK,CAACkD;EAAM,GACxEA,KAAK,CAACT,MAAM,CAAC,IAAIS,KAAK,CAACwD,6BAAc,CAClC,CAAC,eACP9G,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA2F,IAAI;IAACC,MAAM,EAAE/C,SAAU;IAACqE,KAAK,EAAE,CAACrE;EAAU,GACxCW,WAAW,CAACR,MAAM,CAAC,IAAIQ,WAAW,CAACyD,6BAAc,CAAC,EAClDvD,GAAG,iBACFvD,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAAAnF,MAAA,CAAAa,OAAA,CAAAmG,QAAA,QACG,GAAG,eACJhH,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAoH,MAAM;IACLxB,MAAM,EAAE/C,SAAU;IAClBgE,IAAI;IACJK,KAAK,EAAE,CAACrE,SAAU;IAClBwE,IAAI,EAAE3D,GAAI;IACVvB,MAAM,EAAC,QAAQ;IACfmF,SAAS;IACT7B,SAAS,EAAElF,KAAK,CAACgH;EAAW,GAE3BrE,SAAS,CAAC4C,oBAAI,CAAC0B,gBAAgB,CAC1B,CACR,CAEA,CAAC,EACN7E,cAAc,iBACbxC,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA2F,IAAI;IAACC,MAAM,EAAE/C,SAAU;IAACqE,KAAK,EAAE,CAACrE;EAAU,GACxCK,SAAS,CAAC4C,oBAAI,CAAC2B,qBAAqB,EAAE;IACrCC,UAAU,eACRvH,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAoH,MAAM;MACLxB,MAAM,EAAE/C,SAAU;MAClBqE,KAAK,EAAE,CAACrE,SAAU;MAClBwE,IAAI,EAAE1E,cAAe;MACrBR,MAAM,EAAC,QAAQ;MACfmF,SAAS;MACT7B,SAAS,EAAElF,KAAK,CAACgH;IAAW,GAE3BrE,SAAS,CAAC4C,oBAAI,CAAC6B,2BAA2B,CACrC;EAEZ,CAAC,CACG,CAEJ,CAAC,EAEN7E,QAAQ,gBACP3C,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA4H,MAAM;IAACV,KAAK;IAACZ,OAAO;IAACuB,WAAW;IAACC,OAAO,EAAE7C;EAAe,gBACxD9E,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA+H,IAAI;IAAC3E,KAAK,EAAEW,QAAQ,GAAGiE,aAAI,CAACC,WAAW,GAAGD,aAAI,CAACE;EAAY,CAAE,CACxD,CAAC,gBAET/H,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACD,MAAM,MAAE,CAEP,CAAC,EAEN,CAAC,CAACvC,QAAQ,IAAIiB,QAAQ,kBACrB5D,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI;IAACC,GAAG;IAAC2C,IAAI;EAAA,GACX,CAACrF,QAAQ,IAAIoB,WAAW,KAAK,CAAC,iBAC7B/D,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA4H,MAAM,EAAA5F,QAAA,KAAKoE,WAAW;IAAE0B,OAAO,EAAEA,CAAA,KAAM5C,kBAAkB,CAAChB,WAAW,GAAG,CAAC;EAAE,iBAC1E/D,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA+H,IAAI;IAAC3E,KAAK,EAAE4E,aAAI,CAACI;EAAK,CAAE,CACnB,CACT,eAEAC,cAAK,CAAC/C,aAAa,CAClBxC,QAAQ,GAAGyC,QAAI,GAAG+C,cAAU,EAC5B;IACE,IAAI,CAACxF,QAAQ,GAAG;MAAEyF,UAAU,EAAE,CAACzF,QAAQ;MAAE0F,QAAQ,EAAEtE,WAAW,GAAGuE;IAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1FhD,SAAS,EAAElF,KAAK,CAACmI;EACnB,CAAC,EACDnF,QAAQ,CAACoF,GAAG,CAAC;IAAA,IAAC;MAAEnF,WAAW,GAAG,CAAC,CAAC;MAAEoF;IAAK,CAAC,GAAAxG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAyG,SAAA,GAAAzG,SAAA,MAAG,CAAC,CAAC;IAAA,IAAE+C,KAAK,GAAA/C,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAyG,SAAA;IAAA,oBAClD1I,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAAuF,IAAI;MAACC,GAAG;MAACjD,GAAG,EAAE4C;IAAM,gBACnBhF,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA+H,IAAI;MAACe,MAAM;MAAC/B,QAAQ;MAACC,KAAK,EAAE,CAACnE,SAAS,GAAG,CAAC,GAAG,CAAE;MAACO,KAAK,EAAE4E,aAAI,CAACY,IAAI,CAAC,IAAIZ,aAAI,CAACe;IAAQ,CAAE,CAAC,eACtF5I,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA2F,IAAI;MAACC,MAAM,EAAE/C,SAAU;MAACqE,KAAK,EAAE,CAACrE;IAAU,GACxCW,WAAW,CAACR,MAAM,CAAC,IAAIQ,WAAW,CAACyD,6BAAc,CAC9C,CACF,CAAC;EAAA,CACR,CACH,CAAC,EAEA,CAACnE,QAAQ,IAAIS,QAAQ,CAAClB,MAAM,GAAG,CAAC,iBAC/BlC,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA4H,MAAM,EAAA5F,QAAA,KAAKoE,WAAW;IAAE0B,OAAO,EAAEA,CAAA,KAAM5C,kBAAkB,CAACsB,WAAW,GAAG,CAAC,GAAGtC,WAAW,GAAG,CAAC;EAAE,iBAC5F/D,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACtF,GAAA,CAAA+H,IAAI;IAAC3E,KAAK,EAAEoD,WAAW,GAAGwB,aAAI,CAACgB,MAAM,GAAGhB,aAAI,CAACiB;EAAM,CAAE,CAChD,CAEN,CACP,EAEAnG,QAAQ,iBAAI3C,MAAA,CAAAa,OAAA,CAAAsE,aAAA,CAACD,MAAM,MAAE,CAClB,CAAC,GACL,IAAI;AACV,CAAC;AAAC6D,OAAA,CAAAzG,aAAA,GAAAA,aAAA;AAEFA,aAAa,CAAC0G,WAAW,GAAG,0BAA0B;AAEtD1G,aAAa,CAAC2G,SAAS,GAAG;EACxBzG,cAAc,EAAE0G,kBAAS,CAACC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_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","BannerLoyalty","_ref","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","value","club","active","banner","benefits","storeBenefits","description","title","url","discount","variants","finder","place","session","skeleton","useStore","setBenefits","useState","clubActive","setClubActive","clubDiscount","setClubDiscount","expanded","setExpanded","scrollIndex","setScrollIndex","useEffect","callback","nextClubDiscount","undefined","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","publish","METRICS","id","hotelId","isHotel","nextBenefits","find","toString","handleExpanded","handlePressBenefit","index","handlePressFilter","Filter","createElement","View","row","className","filter","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","BENEFIT_MIN_WIDTH","list","map","icon","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: {\n club: {\n active,\n banner: { benefits: storeBenefits = [], description = {}, title, url } = {},\n discount,\n variants,\n } = {},\n finder: { place } = {},\n session,\n skeleton = false,\n },\n } = useStore();\n\n const [benefits, setBenefits] = useState(storeBenefits);\n const [clubActive, setClubActive] = useState(active);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n\n useEffect(() => {\n const callback = (nextClubDiscount) =>\n setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => setBenefits(storeBenefits), [storeBenefits]);\n\n useEffect(() => {\n if (!session && title && benefits.length > 0) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:RENDER' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useEffect(() => {\n if (!place) return;\n\n const { id: [hotelId] = [], isHotel } = place || {};\n\n if (hotelId && isHotel && variants) {\n const { active, banner: { benefits: nextBenefits } = {} } =\n variants.find(({ id = '' } = {}) => id.toString() === hotelId.toString()) || {};\n nextBenefits && setBenefits(nextBenefits);\n setClubActive(active);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n const handleExpanded = () => {\n if (!expanded) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:EXPAND_BENEFITS' });\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:BUTTON_BENEFITS' });\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:CLUBDISCOUNT', value });\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch checked={clubDiscount} name={`switch`} onChange={handlePressFilter} />\n </View>\n );\n\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return clubActive && skeleton && !session ? (\n <Skeleton />\n ) : clubActive && !session && title ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action\n action={isDesktop}\n bold\n small={!isDesktop}\n href={url}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action\n action={isDesktop}\n small={!isDesktop}\n href={clubConditions}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n clubDiscount !== undefined && <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && benefits.length > 0 && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile ? { horizontal: !isMobile, scrollTo: scrollIndex * BENEFIT_MIN_WIDTH } : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && clubDiscount !== undefined && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":"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"}
|
|
@@ -134,8 +134,8 @@ body {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
/* M */
|
|
138
|
-
@media only screen and (min-width: 481px) and (max-width: 1179px) {
|
|
137
|
+
/* S & M */
|
|
138
|
+
@media only screen and (min-width: 481px) and (max-width: 1179px), only screen and (max-width: 480px) {
|
|
139
139
|
/* -- <Menu> -------------------------------------------------------------- */
|
|
140
140
|
.menu {
|
|
141
141
|
border-top: solid 1px var(--mirai-ui-content-border);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_hooks","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_helpers3","_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","Rates","_ref","_select","_dataSource$hotels","_responseError$tracki","_responseError$tracki2","_dataSource$items","testId","others","isDesktop","isMobile","width","useDevice","actions","device","fetch","multiRoom","refRoomSelector","responseError","state","useRates","value","club","currency","finder","forwarder","hotel","id","locale","session","skeleton","urlParams","variant","useStore","translate","useLocale","refItems","useRef","busy","setBusy","useState","cancellationInfo","setCancellationInfo","extras","setExtras","filters","setFilters","itemInfo","setItemInfo","itemUrl","setItemUrl","mapView","setMapView","offerInfo","setOfferInfo","calendar","occupation","cart","clubDiscount","clubRate","dataSource","fetching","metaBoard","room","strictSearch","setCart","setClubRate","setDataSource","setMetaBoard","setRoom","setStrictSearch","useEffect","Event","publish","EVENT","METRICS","getFeatures","features","handleFilters","next","undefined","nextStrictSearch","handleFinder","values","scrollTo","replaceUrlParams","getFinderParams","nextOccupation","promocode","nextPromocode","handleSelect","board","nextCart","scrollToRoom","roomId","RATES_ADD_TO_CART","event","response","handleSubmit","rates","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","showClubRate","ServiceRates","getCheckoutParams","fetchUrlParams","location","search","getOccupationTotals","infantAge","hotelCurrency","catch","selectableExtras","some","included","handleCheckout","setTimeout","document","href","getForwarderUrl","checkoutParams","JSON","stringify","occupationTotals","SUBMIT_DELAY","handleCloseLogin","window","top","behavior","_refItems$current$roo","current","getBoundingClientRect","scrollY","contentBackground","Theme","days","nights","dateDiff","roomSelectorProps","onPress","priceFactor","showPricePerNight","uniqueOption","items","filter","soldOut","every","_ref2","boards","cancellations","createElement","Fragment","Header","login","active","name","showNameInHeader","View","ref","className","styles","blur","sticky","backgroundColor","opacity","row","wrapper","Finder","compacted","icon","metrics","concat","hotels","onSubmit","Filters","Progress","indeterminate","visible","progress","RoomSelector","role","container","content","Content","onMapView","onSelect","Cards","select","map","_ref3","index","item","Item","filterItem","taxesType","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onViewUrl","info","CardHotel","tracking","hotelInfoBAR","Unavailability","Notification","error","large","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","ModalClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","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 Filters,\n Item,\n ModalCancellationInfo,\n ModalClubRate,\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 select,\n showClubRate,\n} from './helpers';\nimport { useRates } from './hooks';\nimport { FEATURES } 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 { fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, replaceUrlParams, SUBMIT_DELAY } from '../helpers';\n\nconst Rates = ({ testId, ...others }) => {\n const { isDesktop, isMobile, width } = useDevice();\n const { actions, device, fetch, multiRoom, refRoomSelector, responseError, state } = useRates();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n locale,\n session,\n skeleton = false,\n urlParams,\n variant,\n },\n } = useStore();\n\n const { translate } = useLocale();\n const refItems = useRef({});\n\n const [busy, setBusy] = useState(false);\n const [cancellationInfo, setCancellationInfo] = useState();\n const [extras, setExtras] = useState();\n const [filters, setFilters] = useState({});\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n\n const { calendar = [], occupation = [] } = finder;\n const { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch } = state;\n const { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch } = actions;\n\n useEffect(\n () =>\n Event.publish(EVENT.METRICS, {\n id: 'RATES:RENDER',\n ...getFeatures(hotel.features, urlParams, { isDesktop }, multiRoom),\n multiRoom,\n variant,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleFilters = (next = {}) => {\n const { strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n const { occupation: nextOccupation, promocode: nextPromocode } = values;\n fetch({ nextOccupation, nextPromocode });\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 Event.publish(EVENT.RATES_ADD_TO_CART, {\n event: EVENT.RATES_ADD_TO_CART,\n response: { board, cart: nextCart, ...dataSource },\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n clubRate && setClubRate(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 const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setClubRate(false);\n\n if (showClubRate({ cart, clubDiscount, dataSource, isPestana, session: sessionProp })) return setClubRate(true);\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n clubDiscount: !!session || clubDiscount,\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n\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 = [], variant = 'A') => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n setBusy(false);\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n dataSource,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n variant,\n checkoutParams: JSON.stringify(\n getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ),\n occupationTotals: JSON.stringify(getOccupationTotals({ infantAge: dataSource.infantAge, occupation })),\n });\n }, SUBMIT_DELAY);\n };\n\n const handleCloseLogin = () => (multiRoom ? setClubRate(false) : handleSelect());\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 { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const features = getFeatures(hotel.features, urlParams, { isDesktop });\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n const uniqueOption = (dataSource?.items || [])\n .filter(({ soldOut } = {}) => !soldOut)\n .every(\n ({ boards = [], cancellations = [], rates = [] }) =>\n boards.length === 1 && cancellations.length === 1 && rates.length === 1,\n );\n\n return (\n <>\n <Header currency login={club.active} name={features.showNameInHeader} skeleton={skeleton} />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <View row={isMobile} className={style.wrapper}>\n <Finder\n compacted={!isDesktop}\n icon\n metrics={`${dataSource?.hotels ? 'HOTELS' : responseError ? 'UNAVAILAVILITY' : 'RATES'}:FINDER`}\n onSubmit={handleFinder}\n testId={testId ? `${testId}-finder` : undefined}\n />\n {!responseError && <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />}\n </View>\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 {...{ dataSource, multiRoom, onMapView: setMapView, onSelect: handleSelect }}>\n {!isMobile ? (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n ) : 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, priceFactor),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n uniqueOption,\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 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, priceFactor }} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel || responseError.tracking?.hotelInfoBAR?.length === 0 ? (\n <Unavailability {...{ ...responseError, nights, priceFactor }} 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 : [], clubRate, dataSource, extras, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : undefined)}\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, busy, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n testId={testId ? `${testId}-modalExtras` : undefined}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalClubRate\n dataSource={dataSource}\n cart={cart}\n visible={clubRate}\n onClose={handleCloseLogin}\n onSubmit={(session) => handleSubmit(cart, session)}\n />\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 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","_hooks","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_helpers3","_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","Rates","_ref","_select","_dataSource$hotels","_responseError$tracki","_responseError$tracki2","_dataSource$items","testId","others","isDesktop","isMobile","width","useDevice","actions","device","fetch","multiRoom","refRoomSelector","responseError","state","useRates","value","club","currency","finder","forwarder","hotel","id","locale","session","skeleton","urlParams","variant","useStore","translate","useLocale","refItems","useRef","busy","setBusy","useState","cancellationInfo","setCancellationInfo","extras","setExtras","filters","setFilters","itemInfo","setItemInfo","itemUrl","setItemUrl","mapView","setMapView","offerInfo","setOfferInfo","calendar","occupation","cart","clubDiscount","clubRate","dataSource","fetching","metaBoard","room","strictSearch","setCart","setClubRate","setDataSource","setMetaBoard","setRoom","setStrictSearch","useEffect","Event","publish","EVENT","METRICS","getFeatures","features","handleFilters","next","undefined","nextStrictSearch","handleFinder","values","scrollTo","replaceUrlParams","getFinderParams","nextOccupation","place","nextPlace","promocode","nextPromocode","handleSelect","board","nextCart","scrollToRoom","roomId","RATES_ADD_TO_CART","event","response","handleSubmit","rates","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","showClubRate","ServiceRates","getCheckoutParams","fetchUrlParams","location","search","getOccupationTotals","infantAge","hotelCurrency","catch","selectableExtras","some","included","handleCheckout","setTimeout","document","href","getForwarderUrl","checkoutParams","JSON","stringify","occupationTotals","SUBMIT_DELAY","handleCloseLogin","window","top","behavior","_refItems$current$roo","current","getBoundingClientRect","scrollY","contentBackground","Theme","days","nights","dateDiff","roomSelectorProps","onPress","priceFactor","showPricePerNight","uniqueOption","items","filter","soldOut","every","_ref2","boards","cancellations","createElement","Fragment","Header","login","active","name","showNameInHeader","View","ref","className","styles","blur","sticky","backgroundColor","opacity","row","wrapper","Finder","compacted","icon","metrics","concat","hotels","onSubmit","Filters","Progress","indeterminate","visible","progress","RoomSelector","role","container","content","Content","onMapView","onSelect","Cards","select","map","_ref3","index","item","Item","filterItem","taxesType","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onViewUrl","info","CardHotel","tracking","hotelInfoBAR","Unavailability","Notification","error","large","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","ModalClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","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 Filters,\n Item,\n ModalCancellationInfo,\n ModalClubRate,\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 select,\n showClubRate,\n} from './helpers';\nimport { useRates } from './hooks';\nimport { FEATURES } 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 { fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, replaceUrlParams, SUBMIT_DELAY } from '../helpers';\n\nconst Rates = ({ testId, ...others }) => {\n const { isDesktop, isMobile, width } = useDevice();\n const { actions, device, fetch, multiRoom, refRoomSelector, responseError, state } = useRates();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n locale,\n session,\n skeleton = false,\n urlParams,\n variant,\n },\n } = useStore();\n\n const { translate } = useLocale();\n const refItems = useRef({});\n\n const [busy, setBusy] = useState(false);\n const [cancellationInfo, setCancellationInfo] = useState();\n const [extras, setExtras] = useState();\n const [filters, setFilters] = useState({});\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n\n const { calendar = [], occupation = [] } = finder;\n const { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch } = state;\n const { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch } = actions;\n\n useEffect(\n () =>\n Event.publish(EVENT.METRICS, {\n id: 'RATES:RENDER',\n ...getFeatures(hotel.features, urlParams, { isDesktop }, multiRoom),\n multiRoom,\n variant,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleFilters = (next = {}) => {\n const { strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n const { occupation: nextOccupation, place: nextPlace, promocode: nextPromocode } = values;\n fetch({ nextOccupation, nextPlace, nextPromocode });\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 Event.publish(EVENT.RATES_ADD_TO_CART, {\n event: EVENT.RATES_ADD_TO_CART,\n response: { board, cart: nextCart, ...dataSource },\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n clubRate && setClubRate(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 const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setClubRate(false);\n\n if (showClubRate({ cart, clubDiscount, dataSource, isPestana, session: sessionProp })) return setClubRate(true);\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n clubDiscount: !!session || clubDiscount,\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n\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 = [], variant = 'A') => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n setBusy(false);\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n dataSource,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n variant,\n checkoutParams: JSON.stringify(\n getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ),\n occupationTotals: JSON.stringify(getOccupationTotals({ infantAge: dataSource.infantAge, occupation })),\n });\n }, SUBMIT_DELAY);\n };\n\n const handleCloseLogin = () => (multiRoom ? setClubRate(false) : handleSelect());\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 { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const features = getFeatures(hotel.features, urlParams, { isDesktop });\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n const uniqueOption = (dataSource?.items || [])\n .filter(({ soldOut } = {}) => !soldOut)\n .every(\n ({ boards = [], cancellations = [], rates = [] }) =>\n boards.length === 1 && cancellations.length === 1 && rates.length === 1,\n );\n\n return (\n <>\n <Header currency login={club.active} name={features.showNameInHeader} skeleton={skeleton} />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <View row={isMobile} className={style.wrapper}>\n <Finder\n compacted={!isDesktop}\n icon\n metrics={`${dataSource?.hotels ? 'HOTELS' : responseError ? 'UNAVAILAVILITY' : 'RATES'}:FINDER`}\n onSubmit={handleFinder}\n testId={testId ? `${testId}-finder` : undefined}\n />\n {!responseError && <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />}\n </View>\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 {...{ dataSource, multiRoom, onMapView: setMapView, onSelect: handleSelect }}>\n {!isMobile ? (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n ) : 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, priceFactor),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n uniqueOption,\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 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, priceFactor }} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel || responseError.tracking?.hotelInfoBAR?.length === 0 ? (\n <Unavailability {...{ ...responseError, nights, priceFactor }} 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 : [], clubRate, dataSource, extras, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : undefined)}\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, busy, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n testId={testId ? `${testId}-modalExtras` : undefined}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalClubRate\n dataSource={dataSource}\n cart={cart}\n visible={clubRate}\n onClose={handleCloseLogin}\n onSubmit={(session) => handleSubmit(cart, session)}\n />\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 testId: PropTypes.string,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
@@ -73,6 +73,7 @@ const Filters = _ref => {
|
|
|
73
73
|
const [form, setForm] = (0, _react.useState)(_Filters4.DEFAULT_FORM);
|
|
74
74
|
const [items, setItems] = (0, _react.useState)(propItems);
|
|
75
75
|
const [visible, setVisible] = (0, _react.useState)(false);
|
|
76
|
+
const [visibleClub, setVisibleClub] = (0, _react.useState)(discount !== undefined);
|
|
76
77
|
(0, _react.useEffect)(() => {
|
|
77
78
|
const nextForm = memoizeForm || {
|
|
78
79
|
..._Filters4.DEFAULT_FORM,
|
|
@@ -105,10 +106,14 @@ const Filters = _ref => {
|
|
|
105
106
|
setForm(nextForm);
|
|
106
107
|
setCounter((0, _helpers.countFilters)(nextForm));
|
|
107
108
|
};
|
|
108
|
-
const setClubDiscount =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
const setClubDiscount = next => {
|
|
110
|
+
const clubDiscount = typeof next !== 'object' ? next : undefined;
|
|
111
|
+
setNextState({
|
|
112
|
+
...form,
|
|
113
|
+
clubDiscount: typeof clubDiscount !== 'object' ? clubDiscount : undefined
|
|
114
|
+
});
|
|
115
|
+
setVisibleClub(clubDiscount !== undefined);
|
|
116
|
+
};
|
|
112
117
|
const setClubPromocode = _ref2 => {
|
|
113
118
|
let {
|
|
114
119
|
promocode
|
|
@@ -245,7 +250,7 @@ const Filters = _ref => {
|
|
|
245
250
|
setBusy(false);
|
|
246
251
|
};
|
|
247
252
|
const has = {
|
|
248
|
-
clubDiscount: (
|
|
253
|
+
clubDiscount: (visibleClub || clubConditions !== undefined) && !session,
|
|
249
254
|
freeCancellation: true || !!filters.freeCancellation,
|
|
250
255
|
// * We'll activate freeCancellation filter always.
|
|
251
256
|
offer: !!idoffers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","currentCurrency","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","setNextState","setClubDiscount","setClubPromocode","_ref2","Event","subscribe","EVENT","RATES_FILTER_CLUB","RATES_FILTER_PROMOCODE","unsubscribe","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref3","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref4","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref5","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet currentCurrency;\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || (currentCurrency !== undefined && currentCurrency === currency)) return;\n\n currentCurrency = currency;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const setNextState = (nextForm) => {\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n const setClubDiscount = (clubDiscount) => setNextState({ ...form, clubDiscount });\n\n const setClubPromocode = ({ promocode }) => setNextState({ ...form, promocode });\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.subscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n\n return () => {\n Event.unsubscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.unsubscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n };\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","currentCurrency","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","visibleClub","setVisibleClub","undefined","useEffect","nextForm","clubDiscount","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","setNextState","setClubDiscount","next","setClubPromocode","_ref2","Event","subscribe","EVENT","RATES_FILTER_CLUB","RATES_FILTER_PROMOCODE","unsubscribe","JSON","stringify","nextFilters","handleModal","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref3","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref4","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref5","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet currentCurrency;\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n const [visibleClub, setVisibleClub] = useState(discount !== undefined);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || (currentCurrency !== undefined && currentCurrency === currency)) return;\n\n currentCurrency = currency;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const setNextState = (nextForm) => {\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n const setClubDiscount = (next) => {\n const clubDiscount = typeof next !== 'object' ? next : undefined;\n setNextState({ ...form, clubDiscount: typeof clubDiscount !== 'object' ? clubDiscount : undefined });\n setVisibleClub(clubDiscount !== undefined);\n };\n\n const setClubPromocode = ({ promocode }) => setNextState({ ...form, promocode });\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.subscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n\n return () => {\n Event.unsubscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.unsubscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n };\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (visibleClub || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
@@ -194,9 +194,33 @@ const useRates = () => {
|
|
|
194
194
|
let {
|
|
195
195
|
nextRoom,
|
|
196
196
|
nextOccupation = occupation,
|
|
197
|
+
nextPlace = place,
|
|
197
198
|
nextPromocode = finder.promocode
|
|
198
199
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
199
200
|
if (skeleton) return;
|
|
201
|
+
const {
|
|
202
|
+
id: [currentId] = []
|
|
203
|
+
} = place || {};
|
|
204
|
+
const {
|
|
205
|
+
id: [nextId] = []
|
|
206
|
+
} = nextPlace || {};
|
|
207
|
+
let nextClubDiscount;
|
|
208
|
+
if (nextPlace !== null && nextPlace !== void 0 && nextPlace.isHotel && currentId !== nextId) {
|
|
209
|
+
var _variants$find;
|
|
210
|
+
const {
|
|
211
|
+
variants = {}
|
|
212
|
+
} = club;
|
|
213
|
+
nextClubDiscount = (_variants$find = variants.find(function () {
|
|
214
|
+
let {
|
|
215
|
+
id = ''
|
|
216
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
217
|
+
return id.toString() === nextId.toString();
|
|
218
|
+
})) === null || _variants$find === void 0 ? void 0 : _variants$find.discount;
|
|
219
|
+
if (nextClubDiscount !== clubDiscount) {
|
|
220
|
+
_dataSources.Event.publish(_helpers2.EVENT.RATES_FILTER_CLUB, nextClubDiscount);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
200
224
|
_dataSources.Event.publish(_helpers2.EVENT.FINDER, {
|
|
201
225
|
calendar: undefined
|
|
202
226
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","debounceFetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","fetch","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","debounce","actions","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\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 Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && 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({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\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 Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\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 fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\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.active ? { club, clubDiscount } : undefined),\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 (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","debounceFetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","fetch","nextOccupation","nextPlace","arguments","currentId","nextId","nextClubDiscount","isHotel","_variants$find","variants","find","toString","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","debounce","actions","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\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 Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && 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({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\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 Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\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 fetch = async ({\n nextRoom,\n nextOccupation = occupation,\n nextPlace = place,\n nextPromocode = finder.promocode,\n } = {}) => {\n if (skeleton) return;\n\n const { id: [currentId] = [] } = place || {};\n const { id: [nextId] = [] } = nextPlace || {};\n let nextClubDiscount;\n if (nextPlace?.isHotel && currentId !== nextId) {\n const { variants = {} } = club;\n nextClubDiscount = variants.find(({ id = '' } = {}) => id.toString() === nextId.toString())?.discount;\n if (nextClubDiscount !== clubDiscount) {\n Event.publish(EVENT.RATES_FILTER_CLUB, nextClubDiscount);\n\n return;\n }\n }\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\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.active ? { club, clubDiscount } : undefined),\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 (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ const SelectEnvironment = _ref => {
|
|
|
79
79
|
} = others;
|
|
80
80
|
const tooltipText = translate(is.currency ? _SelectEnvironment2.L10N.LABEL_SELECT_CURRENCY : _SelectEnvironment2.L10N.LABEL_SELECT_LANGUAGE);
|
|
81
81
|
const icon = is.currency ? _helpers2.ICON.CURRENCY : _helpers2.ICON.LANGUAGE;
|
|
82
|
-
return !skeleton ? /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
|
|
82
|
+
return !skeleton ? !isMobile || !window.IS_PLAYWRIGHT ? /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
|
|
83
83
|
text: !isMobile && !skeleton ? tooltipText : undefined
|
|
84
84
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
85
85
|
row: true,
|
|
@@ -107,7 +107,7 @@ const SelectEnvironment = _ref => {
|
|
|
107
107
|
className: style.input,
|
|
108
108
|
testId: testId,
|
|
109
109
|
"aria-label": tooltipText
|
|
110
|
-
}))) : /*#__PURE__*/_react.default.createElement(_SelectEnvironment3.default, {
|
|
110
|
+
}))) : null : /*#__PURE__*/_react.default.createElement(_SelectEnvironment3.default, {
|
|
111
111
|
icon: icon
|
|
112
112
|
});
|
|
113
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectEnvironment.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_SelectEnvironment","_SelectEnvironment2","style","_interopRequireWildcard","_SelectEnvironment3","_helpers","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","SelectEnvironment","_ref","compacted","name","metrics","small","others","isMobile","useDevice","translate","useLocale","value","currency","language","locale","locales","skeleton","useStore","is","handleChange","next","replaceUrlParams","Event","publish","EVENT","INTENT_CURRENCY","lang","split","nextLocale","getLocale","undefined","INTENT_LOCALE","METRICS","id","concat","className","testId","tooltipText","L10N","LABEL_SELECT_CURRENCY","LABEL_SELECT_LANGUAGE","icon","ICON","CURRENCY","LANGUAGE","createElement","Tooltip","text","View","row","styles","selectEnvironment","caption","Icon","headline","level","Text","action","medium","LANGUAGES","LOCALES","findIndex","includes","Select","options","CURRENCIES","map","item","Intl","DisplayNames","type","of","length","filter","_","index","values","onChange","input","exports","displayName","propTypes","PropTypes","bool","string","oneOf","isRequired"],"sources":["../../../../src/components/__shared__/SelectEnvironment/SelectEnvironment.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { CURRENCIES, useLocale } from '@mirai/locale';\nimport { Icon, Select, styles, Text, Tooltip, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LANGUAGES } from './SelectEnvironment.constants';\nimport { L10N } from './SelectEnvironment.l10n';\nimport * as style from './SelectEnvironment.module.css';\nimport Skeleton from './SelectEnvironment.skeleton';\nimport { getLocale } from '../../../helpers';\nimport { EVENT, ICON, LOCALES, replaceUrlParams } from '../../helpers';\n\nconst SelectEnvironment = ({ compacted = false, name, metrics = 'ENVIRONMENT', small = false, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { currency, language, locale, locales = [], skeleton = false },\n } = useStore();\n\n const is = {\n currency: name === 'currency',\n locale: name === 'locale',\n };\n\n const handleChange = (next) => {\n if (is.currency) {\n replaceUrlParams({ currency: next });\n Event.publish(EVENT.INTENT_CURRENCY, { currency: next });\n } else if (is.locale) {\n const [lang] = next.split('-');\n const { locale: nextLocale } = getLocale(undefined, { lang });\n\n replaceUrlParams({ lang, locale: nextLocale });\n Event.publish(EVENT.INTENT_LOCALE, { locale: next });\n }\n\n Event.publish(EVENT.METRICS, { id: `${metrics}:${name}`, value: next });\n };\n\n const { className, testId } = others;\n const tooltipText = translate(is.currency ? L10N.LABEL_SELECT_CURRENCY : L10N.LABEL_SELECT_LANGUAGE);\n const icon = is.currency ? ICON.CURRENCY : ICON.LANGUAGE;\n\n return !skeleton ? (\n <Tooltip text={!isMobile && !skeleton ? tooltipText : undefined}>\n <View row className={styles(style.selectEnvironment, small && style.small, className)}>\n <View row className={style.caption}>\n <Icon headline level={2} value={icon} className={styles(style.icon, skeleton && style.skeleton)} />\n {!compacted && (\n <Text action={!isMobile} medium small={isMobile}>\n {is.currency ? currency : LANGUAGES[LOCALES.findIndex((locale) => locale.includes(language))]}\n </Text>\n )}\n </View>\n <Select\n name={name}\n options={\n is.currency\n ? CURRENCIES.map(\n (item) =>\n `${item}${\n Intl.DisplayNames ? ` - ${new Intl.DisplayNames(locale, { type: 'currency' }).of(item)}` : ''\n }`,\n )\n : locales.length > 0\n ? LANGUAGES.filter((_, index) => locales.includes(LOCALES[index]))\n : LANGUAGES\n }\n value={is.currency ? currency : locale}\n values={\n is.currency\n ? CURRENCIES\n : locales.length > 0\n ? LOCALES.filter((locale) => locales.includes(locale))\n : LOCALES\n }\n onChange={handleChange}\n className={style.input}\n testId={testId}\n aria-label={tooltipText}\n />\n </View>\n </Tooltip>\n ) : (\n <Skeleton icon={icon} />\n );\n};\n\nSelectEnvironment.displayName = 'Mirai:Core:SelectEnvironment';\n\nSelectEnvironment.propTypes = {\n compacted: PropTypes.bool,\n metrics: PropTypes.string,\n name: PropTypes.oneOf(['currency', 'locale']).isRequired,\n small: PropTypes.bool,\n};\n\nexport { SelectEnvironment };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectEnvironment.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_SelectEnvironment","_SelectEnvironment2","style","_interopRequireWildcard","_SelectEnvironment3","_helpers","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","SelectEnvironment","_ref","compacted","name","metrics","small","others","isMobile","useDevice","translate","useLocale","value","currency","language","locale","locales","skeleton","useStore","is","handleChange","next","replaceUrlParams","Event","publish","EVENT","INTENT_CURRENCY","lang","split","nextLocale","getLocale","undefined","INTENT_LOCALE","METRICS","id","concat","className","testId","tooltipText","L10N","LABEL_SELECT_CURRENCY","LABEL_SELECT_LANGUAGE","icon","ICON","CURRENCY","LANGUAGE","window","IS_PLAYWRIGHT","createElement","Tooltip","text","View","row","styles","selectEnvironment","caption","Icon","headline","level","Text","action","medium","LANGUAGES","LOCALES","findIndex","includes","Select","options","CURRENCIES","map","item","Intl","DisplayNames","type","of","length","filter","_","index","values","onChange","input","exports","displayName","propTypes","PropTypes","bool","string","oneOf","isRequired"],"sources":["../../../../src/components/__shared__/SelectEnvironment/SelectEnvironment.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { CURRENCIES, useLocale } from '@mirai/locale';\nimport { Icon, Select, styles, Text, Tooltip, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LANGUAGES } from './SelectEnvironment.constants';\nimport { L10N } from './SelectEnvironment.l10n';\nimport * as style from './SelectEnvironment.module.css';\nimport Skeleton from './SelectEnvironment.skeleton';\nimport { getLocale } from '../../../helpers';\nimport { EVENT, ICON, LOCALES, replaceUrlParams } from '../../helpers';\n\nconst SelectEnvironment = ({ compacted = false, name, metrics = 'ENVIRONMENT', small = false, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { currency, language, locale, locales = [], skeleton = false },\n } = useStore();\n\n const is = {\n currency: name === 'currency',\n locale: name === 'locale',\n };\n\n const handleChange = (next) => {\n if (is.currency) {\n replaceUrlParams({ currency: next });\n Event.publish(EVENT.INTENT_CURRENCY, { currency: next });\n } else if (is.locale) {\n const [lang] = next.split('-');\n const { locale: nextLocale } = getLocale(undefined, { lang });\n\n replaceUrlParams({ lang, locale: nextLocale });\n Event.publish(EVENT.INTENT_LOCALE, { locale: next });\n }\n\n Event.publish(EVENT.METRICS, { id: `${metrics}:${name}`, value: next });\n };\n\n const { className, testId } = others;\n const tooltipText = translate(is.currency ? L10N.LABEL_SELECT_CURRENCY : L10N.LABEL_SELECT_LANGUAGE);\n const icon = is.currency ? ICON.CURRENCY : ICON.LANGUAGE;\n\n return !skeleton ? (\n !isMobile || !window.IS_PLAYWRIGHT ? (\n <Tooltip text={!isMobile && !skeleton ? tooltipText : undefined}>\n <View row className={styles(style.selectEnvironment, small && style.small, className)}>\n <View row className={style.caption}>\n <Icon headline level={2} value={icon} className={styles(style.icon, skeleton && style.skeleton)} />\n {!compacted && (\n <Text action={!isMobile} medium small={isMobile}>\n {is.currency ? currency : LANGUAGES[LOCALES.findIndex((locale) => locale.includes(language))]}\n </Text>\n )}\n </View>\n <Select\n name={name}\n options={\n is.currency\n ? CURRENCIES.map(\n (item) =>\n `${item}${\n Intl.DisplayNames ? ` - ${new Intl.DisplayNames(locale, { type: 'currency' }).of(item)}` : ''\n }`,\n )\n : locales.length > 0\n ? LANGUAGES.filter((_, index) => locales.includes(LOCALES[index]))\n : LANGUAGES\n }\n value={is.currency ? currency : locale}\n values={\n is.currency\n ? CURRENCIES\n : locales.length > 0\n ? LOCALES.filter((locale) => locales.includes(locale))\n : LOCALES\n }\n onChange={handleChange}\n className={style.input}\n testId={testId}\n aria-label={tooltipText}\n />\n </View>\n </Tooltip>\n ) : null\n ) : (\n <Skeleton icon={icon} />\n );\n};\n\nSelectEnvironment.displayName = 'Mirai:Core:SelectEnvironment';\n\nSelectEnvironment.propTypes = {\n compacted: PropTypes.bool,\n metrics: PropTypes.string,\n name: PropTypes.oneOf(['currency', 'locale']).isRequired,\n small: PropTypes.bool,\n};\n\nexport { SelectEnvironment };\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ var _dataSources = require("@mirai/data-sources");
|
|
|
8
8
|
var _locale = require("@mirai/locale");
|
|
9
9
|
var _fetchCurrency = require("./fetchCurrency");
|
|
10
10
|
var _getAccommodationType = require("./getAccommodationType");
|
|
11
|
+
var _getClub = require("./getClub");
|
|
11
12
|
var _getLocale = require("./getLocale");
|
|
12
13
|
var _getMetaRates = require("./getMetaRates");
|
|
13
14
|
var _getPerformance = require("./getPerformance");
|
|
@@ -73,87 +74,6 @@ const consolidateStore = async function () {
|
|
|
73
74
|
// -- currency -------------------------------------------------------------------------------------------------------
|
|
74
75
|
const currency = urlParams.currency || instance.currency || (type === _Core.TYPE.HOTEL && !IS_JEST ? await (0, _fetchCurrency.fetchCurrency)(id) : _locale.DEFAULT_CURRENCY);
|
|
75
76
|
|
|
76
|
-
// -- club -----------------------------------------------------------------------------------------------------------
|
|
77
|
-
let club;
|
|
78
|
-
const {
|
|
79
|
-
club: {
|
|
80
|
-
active
|
|
81
|
-
} = {}
|
|
82
|
-
} = (config === null || config === void 0 ? void 0 : config.club) || {};
|
|
83
|
-
if (active) {
|
|
84
|
-
let {
|
|
85
|
-
accomodation: {
|
|
86
|
-
club: {
|
|
87
|
-
banner,
|
|
88
|
-
discount: discountEnabled = false,
|
|
89
|
-
rates = false
|
|
90
|
-
} = {},
|
|
91
|
-
variants = []
|
|
92
|
-
},
|
|
93
|
-
club: {
|
|
94
|
-
club: {
|
|
95
|
-
authentication,
|
|
96
|
-
idClub: id,
|
|
97
|
-
name
|
|
98
|
-
},
|
|
99
|
-
conditionsUrl: conditions,
|
|
100
|
-
privacyPolicyUrl: privacy
|
|
101
|
-
}
|
|
102
|
-
} = config;
|
|
103
|
-
let {
|
|
104
|
-
applyClubDiscount,
|
|
105
|
-
idtokenprovider: idHotel = ''
|
|
106
|
-
} = urlParams;
|
|
107
|
-
let discount = applyClubDiscount ? applyClubDiscount === 'true' : undefined;
|
|
108
|
-
if (discount === undefined) {
|
|
109
|
-
discount = rates;
|
|
110
|
-
if (type === _Core.TYPE.CHAIN) {
|
|
111
|
-
let {
|
|
112
|
-
discount: variantDiscount,
|
|
113
|
-
rates: variantRates
|
|
114
|
-
} = variants.find(function () {
|
|
115
|
-
let {
|
|
116
|
-
id = ''
|
|
117
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
118
|
-
return id.toString() === idHotel.toString();
|
|
119
|
-
}) || {};
|
|
120
|
-
discountEnabled = variantDiscount || discountEnabled;
|
|
121
|
-
discount = variantRates || rates;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
club = {
|
|
125
|
-
active,
|
|
126
|
-
authentication,
|
|
127
|
-
banner,
|
|
128
|
-
discount: active && discountEnabled ? discount : undefined,
|
|
129
|
-
id,
|
|
130
|
-
name,
|
|
131
|
-
url: {
|
|
132
|
-
conditions,
|
|
133
|
-
privacy
|
|
134
|
-
},
|
|
135
|
-
variants: variants.filter(function () {
|
|
136
|
-
let {
|
|
137
|
-
club
|
|
138
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
139
|
-
return club;
|
|
140
|
-
}).map(function () {
|
|
141
|
-
let {
|
|
142
|
-
club: {
|
|
143
|
-
discount: enabled,
|
|
144
|
-
rates: active
|
|
145
|
-
} = {},
|
|
146
|
-
id
|
|
147
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
148
|
-
return {
|
|
149
|
-
active,
|
|
150
|
-
enabled,
|
|
151
|
-
id
|
|
152
|
-
};
|
|
153
|
-
})
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
77
|
// -- hotel ----------------------------------------------------------------------------------------------------------
|
|
158
78
|
const hotel = {
|
|
159
79
|
accommodationType: (0, _getAccommodationType.getAccommodationType)(config.lodgingDenomination, hotelId),
|
|
@@ -296,7 +216,11 @@ const consolidateStore = async function () {
|
|
|
296
216
|
locales: (_config$languages = config.languages) === null || _config$languages === void 0 ? void 0 : _config$languages.map(language => language === 'no' ? 'nb' : language).map(language => "".concat(language, "-").concat(_locale.COUNTRIES[language])),
|
|
297
217
|
// entities,
|
|
298
218
|
calendar,
|
|
299
|
-
club,
|
|
219
|
+
club: (0, _getClub.getClub)({
|
|
220
|
+
config,
|
|
221
|
+
type,
|
|
222
|
+
urlParams
|
|
223
|
+
}),
|
|
300
224
|
components: components.reduce((value, _ref2) => {
|
|
301
225
|
let {
|
|
302
226
|
component,
|
|
@@ -313,7 +237,7 @@ const consolidateStore = async function () {
|
|
|
313
237
|
promo,
|
|
314
238
|
session,
|
|
315
239
|
tags,
|
|
316
|
-
variant: IS_JEST ? undefined : urlParams.variant ? urlParams.variant : Math.random() < 0.5 ? 'A' : 'B',
|
|
240
|
+
variant: IS_JEST && !window.IS_PLAYWRIGHT ? undefined : urlParams.variant ? urlParams.variant : Math.random() < 0.5 ? 'A' : 'B',
|
|
317
241
|
// -- components
|
|
318
242
|
checkout: !IS_JEST && urlParams.checkoutForm ? JSON.parse(urlParams.checkoutForm) : undefined,
|
|
319
243
|
deals: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getLocale","_getMetaRates","_getPerformance","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","format","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","club","active","banner","discount","discountEnabled","rates","variants","authentication","idClub","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","CHAIN","variantDiscount","variantRates","find","toString","url","filter","map","enabled","accommodationType","getAccommodationType","lodgingDenomination","features","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","Object","entries","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","TYPE_COMMISSION","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","promo","promoCode","parseDate","UTC","checkout","parseInt","showPromoNav","configPromo","promoText","place","isHotel","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","promocode","code","host","document","protocol","isDevelopment","NODE_ENV","IS_PLAYWRIGHT","forwarder","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","reduce","_ref2","props","performance","getPerformance","variant","Math","random","checkoutForm","JSON","parse","deals","lisa","cart","split","getMetaRates","meta","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getPerformance } from './getPerformance';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE, TYPE_COMMISSION } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), { format: CALENDAR_FORMAT }) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- club -----------------------------------------------------------------------------------------------------------\n let club;\n const { club: { active } = {} } = config?.club || {};\n if (active) {\n let {\n accomodation: { club: { banner, discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n let discount = applyClubDiscount ? applyClubDiscount === 'true' : undefined;\n\n if (discount === undefined) {\n discount = rates;\n if (type === TYPE.CHAIN) {\n let { discount: variantDiscount, rates: variantRates } =\n variants.find(({ id = '' } = {}) => id.toString() === idHotel.toString()) || {};\n discountEnabled = variantDiscount || discountEnabled;\n discount = variantRates || rates;\n }\n }\n\n club = {\n active,\n authentication,\n banner,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: variants\n .filter(({ club } = {}) => club)\n .map(({ club: { discount: enabled, rates: active } = {}, id } = {}) => ({ active, enabled, id })),\n };\n }\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || TYPE_COMMISSION[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties, promo: promoCode } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (tags) {\n place = tags.options.find(\n ({ id: [idHotel] = [], isHotel, value } = {}) =>\n (chainSelectorValue && value === Number(chainSelectorValue)) || (isHotel && hotel.id === idHotel),\n );\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation || undefined,\n promocode: clientCode || promoCode || promo?.code || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development' || window.IS_PLAYWRIGHT;\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club,\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n performance: getPerformance(config, hotel.id),\n promo,\n session,\n tags,\n variant: IS_JEST ? undefined : urlParams.variant ? urlParams.variant : Math.random() < 0.5 ? 'A' : 'B',\n // -- components\n checkout: !IS_JEST && urlParams.checkoutForm ? JSON.parse(urlParams.checkoutForm) : undefined,\n deals: undefined,\n finder,\n lisa: undefined,\n rates: {\n cart: urlParams.cart ? urlParams.cart.split(',') : urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n meta: !!urlParams.rates,\n },\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getClub","_getLocale","_getMetaRates","_getPerformance","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","format","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","accommodationType","getAccommodationType","lodgingDenomination","features","CHAIN","idtokenprovider","idHotel","url","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","variants","Object","entries","map","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","TYPE_COMMISSION","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","promo","promoCode","parseDate","UTC","checkout","parseInt","showPromoNav","configPromo","promoText","place","find","isHotel","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","promocode","code","host","document","protocol","isDevelopment","NODE_ENV","IS_PLAYWRIGHT","forwarder","rates","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","club","getClub","reduce","_ref2","props","performance","getPerformance","variant","Math","random","checkoutForm","JSON","parse","deals","lisa","cart","split","getMetaRates","meta","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getClub } from './getClub';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getPerformance } from './getPerformance';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE, TYPE_COMMISSION } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), { format: CALENDAR_FORMAT }) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || TYPE_COMMISSION[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties, promo: promoCode } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (tags) {\n place = tags.options.find(\n ({ id: [idHotel] = [], isHotel, value } = {}) =>\n (chainSelectorValue && value === Number(chainSelectorValue)) || (isHotel && hotel.id === idHotel),\n );\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation || undefined,\n promocode: clientCode || promoCode || promo?.code || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development' || window.IS_PLAYWRIGHT;\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club: getClub({ config, type, urlParams }),\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n performance: getPerformance(config, hotel.id),\n promo,\n session,\n tags,\n variant:\n IS_JEST && !window.IS_PLAYWRIGHT\n ? undefined\n : urlParams.variant\n ? urlParams.variant\n : Math.random() < 0.5\n ? 'A'\n : 'B',\n // -- components\n checkout: !IS_JEST && urlParams.checkoutForm ? JSON.parse(urlParams.checkoutForm) : undefined,\n deals: undefined,\n finder,\n lisa: undefined,\n rates: {\n cart: urlParams.cart ? urlParams.cart.split(',') : urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n meta: !!urlParams.rates,\n },\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getClub = void 0;
|
|
7
|
+
var _Core = require("../Core.constants");
|
|
8
|
+
const getClub = function () {
|
|
9
|
+
let {
|
|
10
|
+
config = {},
|
|
11
|
+
type,
|
|
12
|
+
urlParams = {}
|
|
13
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
14
|
+
let club;
|
|
15
|
+
let {
|
|
16
|
+
club: {
|
|
17
|
+
active
|
|
18
|
+
} = {}
|
|
19
|
+
} = (config === null || config === void 0 ? void 0 : config.club) || {};
|
|
20
|
+
if (active) {
|
|
21
|
+
var _discount2;
|
|
22
|
+
let {
|
|
23
|
+
accomodation: {
|
|
24
|
+
club: {
|
|
25
|
+
banner,
|
|
26
|
+
discount: discountEnabled = false,
|
|
27
|
+
rates = false
|
|
28
|
+
} = {},
|
|
29
|
+
variants = []
|
|
30
|
+
},
|
|
31
|
+
club: {
|
|
32
|
+
club: {
|
|
33
|
+
authentication,
|
|
34
|
+
idClub: id,
|
|
35
|
+
name
|
|
36
|
+
},
|
|
37
|
+
conditionsUrl: conditions,
|
|
38
|
+
privacyPolicyUrl: privacy
|
|
39
|
+
}
|
|
40
|
+
} = config;
|
|
41
|
+
let {
|
|
42
|
+
applyClubDiscount,
|
|
43
|
+
idtokenprovider: idHotel = ''
|
|
44
|
+
} = urlParams;
|
|
45
|
+
let discount = applyClubDiscount ? applyClubDiscount === 'true' : undefined;
|
|
46
|
+
const nextVariants = variants.map(function () {
|
|
47
|
+
let {
|
|
48
|
+
club,
|
|
49
|
+
id
|
|
50
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
51
|
+
if (club && Object.keys(club).length === 0) return {
|
|
52
|
+
active: false,
|
|
53
|
+
id
|
|
54
|
+
};
|
|
55
|
+
const {
|
|
56
|
+
banner: variantBanner,
|
|
57
|
+
discount: variantDiscount,
|
|
58
|
+
rates: variantRates
|
|
59
|
+
} = club || {};
|
|
60
|
+
return {
|
|
61
|
+
active: true,
|
|
62
|
+
banner: {
|
|
63
|
+
...banner,
|
|
64
|
+
...variantBanner
|
|
65
|
+
},
|
|
66
|
+
discount: variantDiscount !== undefined ? variantRates !== undefined ? variantRates ? variantDiscount : undefined : rates ? variantDiscount : undefined : (variantRates !== null && variantRates !== void 0 ? variantRates : rates) ? discountEnabled : undefined,
|
|
67
|
+
discountEnabled: variantRates !== null && variantRates !== void 0 ? variantRates : rates,
|
|
68
|
+
id
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
if (type === _Core.TYPE.CHAIN) {
|
|
72
|
+
const variant = nextVariants.find(function () {
|
|
73
|
+
let {
|
|
74
|
+
id = ''
|
|
75
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
|
+
return id.toString() === idHotel.toString();
|
|
77
|
+
});
|
|
78
|
+
if (variant) {
|
|
79
|
+
var _discount;
|
|
80
|
+
active = variant.active;
|
|
81
|
+
discount = (_discount = discount) !== null && _discount !== void 0 ? _discount : variant.discount;
|
|
82
|
+
discountEnabled = variant.discountEnabled;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
discount = (_discount2 = discount) !== null && _discount2 !== void 0 ? _discount2 : rates;
|
|
86
|
+
club = {
|
|
87
|
+
active,
|
|
88
|
+
authentication,
|
|
89
|
+
banner,
|
|
90
|
+
discount: active && discountEnabled ? discount : undefined,
|
|
91
|
+
id,
|
|
92
|
+
name,
|
|
93
|
+
url: {
|
|
94
|
+
conditions,
|
|
95
|
+
privacy
|
|
96
|
+
},
|
|
97
|
+
variants: nextVariants
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return club;
|
|
101
|
+
};
|
|
102
|
+
exports.getClub = getClub;
|
|
103
|
+
//# sourceMappingURL=getClub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClub.js","names":["_Core","require","getClub","config","type","urlParams","arguments","length","undefined","club","active","_discount2","accomodation","banner","discount","discountEnabled","rates","variants","authentication","idClub","id","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","nextVariants","map","Object","keys","variantBanner","variantDiscount","variantRates","TYPE","CHAIN","variant","find","toString","_discount","url","exports"],"sources":["../../src/helpers/getClub.js"],"sourcesContent":["import { TYPE } from '../Core.constants';\n\nexport const getClub = ({ config = {}, type, urlParams = {} } = {}) => {\n let club;\n let { club: { active } = {} } = config?.club || {};\n if (active) {\n let {\n accomodation: { club: { banner, discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n let discount = applyClubDiscount ? applyClubDiscount === 'true' : undefined;\n\n const nextVariants = variants.map(({ club, id } = {}) => {\n if (club && Object.keys(club).length === 0) return { active: false, id };\n\n const { banner: variantBanner, discount: variantDiscount, rates: variantRates } = club || {};\n\n return {\n active: true,\n banner: { ...banner, ...variantBanner },\n discount:\n variantDiscount !== undefined\n ? variantRates !== undefined\n ? variantRates\n ? variantDiscount\n : undefined\n : rates\n ? variantDiscount\n : undefined\n : variantRates ?? rates\n ? discountEnabled\n : undefined,\n discountEnabled: variantRates ?? rates,\n id,\n };\n });\n\n if (type === TYPE.CHAIN) {\n const variant = nextVariants.find(({ id = '' } = {}) => id.toString() === idHotel.toString());\n if (variant) {\n active = variant.active;\n discount = discount ?? variant.discount;\n discountEnabled = variant.discountEnabled;\n }\n }\n discount = discount ?? rates;\n\n club = {\n active,\n authentication,\n banner,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: nextVariants,\n };\n }\n\n return club;\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirai/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.201",
|
|
4
4
|
"source": "src/index.js",
|
|
5
5
|
"repository": "https://gitlab.com/miraicorp/dev/frontend/core",
|
|
6
6
|
"author": "JΛVI <hello@soyjavi.com>",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"test:coverage": "node scripts/test.js --coverage --coverageReporters=text --detectOpenHandles --forceExit --silent",
|
|
18
18
|
"test:watch": "node scripts/test.js",
|
|
19
19
|
"test:e2e": "yarn playwright test --ui",
|
|
20
|
-
"test:e2e:ci": "
|
|
20
|
+
"test:e2e:ci": "CI=true yarn playwright test",
|
|
21
|
+
"test:e2e:docker:ci": "docker build -t playwright-tests . && docker run --shm-size=1gb --rm -v $(pwd)/__tests__:/app/__tests__ -v $(pwd)/test-results:/app/test-results -v $(pwd)/playwright-report:/app/playwright-report playwright-tests yarn test:e2e:ci",
|
|
21
22
|
"test:e2e:recorder": "yarn playwright codegen --device='iPhone 12'",
|
|
22
23
|
"test:e2e:report": "yarn playwright show-report",
|
|
23
24
|
"pipeline": "yarn lint && yarn test",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"@babel/preset-react": "7.18.6",
|
|
42
43
|
"@mirai/eslint": "0.1.3",
|
|
43
44
|
"@parcel/transformer-inline-string": "2.11.0",
|
|
44
|
-
"@playwright/test": "^1.
|
|
45
|
+
"@playwright/test": "^1.49.1",
|
|
45
46
|
"@sentry/cli": "^2.38.1",
|
|
46
47
|
"@testing-library/react": "12.1.5",
|
|
47
48
|
"@testing-library/react-hooks": "7.0.2",
|