@mirai/core 0.3.207 → 0.3.209
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/build/Core.js +51 -48
- package/build/Core.js.map +1 -1
- package/build/components/Finder/Finder.js +20 -7
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Finder/components/Places/Places.js +3 -1
- package/build/components/Finder/components/Places/Places.js.map +1 -1
- package/build/components/Finder/helpers/getForwarderUrl.js +1 -1
- package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +15 -9
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +1 -1
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +4 -0
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +6 -0
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js +9 -11
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +8 -1
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +1 -0
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.l10n.js +6 -0
- package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
- package/build/components/Rates/components/Item/components/Features/Features.js +4 -6
- package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +12 -6
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +3 -0
- package/build/services/Rates/constants.js +1 -1
- package/build/services/Rates/constants.js.map +1 -1
- package/build/services/Rates/extras.js +3 -1
- package/build/services/Rates/extras.js.map +1 -1
- package/build/services/Rates/helpers/getCalendarSuggestions.js +5 -5
- package/build/services/Rates/helpers/getCalendarSuggestions.js.map +1 -1
- package/build/services/Rates/helpers/getItems.js +13 -10
- package/build/services/Rates/helpers/getItems.js.map +1 -1
- package/build/services/Rates/helpers/getOccupationSuggestions.js +8 -2
- package/build/services/Rates/helpers/getOccupationSuggestions.js.map +1 -1
- package/build/services/Rates/helpers/parseUnavailability.js +2 -1
- package/build/services/Rates/helpers/parseUnavailability.js.map +1 -1
- package/build/services/Rates/rates.js +2 -1
- package/build/services/Rates/rates.js.map +1 -1
- package/package.json +1 -1
package/build/Core.js
CHANGED
|
@@ -34,64 +34,67 @@ const Core = _ref => {
|
|
|
34
34
|
set,
|
|
35
35
|
value: {
|
|
36
36
|
currency,
|
|
37
|
-
locale = _locale.DEFAULT_LOCALE
|
|
37
|
+
locale = _locale.DEFAULT_LOCALE,
|
|
38
|
+
...store
|
|
38
39
|
}
|
|
39
40
|
} = (0, _dataSources.useStore)();
|
|
40
41
|
const [dictionary, setDictionary] = (0, _react.useState)(!skeleton ? _services.ServiceDictionary.cache(locale) : undefined);
|
|
41
42
|
(0, _react.useEffect)(() => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
currency: nextCurrency,
|
|
53
|
-
locale: nextLocale
|
|
54
|
-
} = _ref3;
|
|
55
|
-
if (currency === nextCurrency && locale === nextLocale) return;
|
|
56
|
-
const [language] = nextLocale.split('-');
|
|
57
|
-
set({
|
|
58
|
-
currency: nextCurrency,
|
|
59
|
-
language,
|
|
60
|
-
locale: nextLocale
|
|
61
|
-
});
|
|
62
|
-
if (locale !== nextLocale) {
|
|
63
|
-
(0, _helpers2.themeDirection)(language);
|
|
64
|
-
fetchDictionary(nextLocale);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const handleIntentLocale = async _ref4 => {
|
|
68
|
-
let {
|
|
69
|
-
locale
|
|
70
|
-
} = _ref4;
|
|
71
|
-
const [language] = locale.split('-');
|
|
72
|
-
(0, _helpers2.themeDirection)(language);
|
|
73
|
-
set({
|
|
74
|
-
currency,
|
|
75
|
-
language,
|
|
76
|
-
locale
|
|
77
|
-
});
|
|
78
|
-
fetchDictionary(locale);
|
|
79
|
-
};
|
|
80
|
-
if (skeleton) {
|
|
81
|
-
const cached = _services.ServiceDictionary.cache(locale);
|
|
82
|
-
if (cached) setDictionary(cached);
|
|
83
|
-
} else {
|
|
84
|
-
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_CURRENCY, handleIntentCurrency);
|
|
85
|
-
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);
|
|
86
|
-
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_LOCALE, handleIntentLocale);
|
|
87
|
-
}
|
|
43
|
+
if (!skeleton) return;
|
|
44
|
+
const cached = _services.ServiceDictionary.cache(locale);
|
|
45
|
+
if (cached) setDictionary(cached);
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
|
+
}, []);
|
|
48
|
+
(0, _react.useEffect)(() => {
|
|
49
|
+
if (skeleton) return;
|
|
50
|
+
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_CURRENCY, handleIntentCurrency);
|
|
51
|
+
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);
|
|
52
|
+
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_LOCALE, handleIntentLocale);
|
|
88
53
|
return () => {
|
|
89
54
|
_dataSources.Event.unsubscribe(_helpers.EVENT.INTENT_CURRENCY, handleIntentCurrency);
|
|
90
55
|
_dataSources.Event.subscribe(_helpers.EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);
|
|
91
56
|
_dataSources.Event.unsubscribe(_helpers.EVENT.INTENT_LOCALE, handleIntentLocale);
|
|
92
57
|
};
|
|
93
58
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
94
|
-
}, []);
|
|
59
|
+
}, [store]);
|
|
60
|
+
const handleIntentCurrency = _ref2 => {
|
|
61
|
+
let {
|
|
62
|
+
currency
|
|
63
|
+
} = _ref2;
|
|
64
|
+
set({
|
|
65
|
+
currency
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
const handleIntentEnvironment = async _ref3 => {
|
|
69
|
+
let {
|
|
70
|
+
currency: nextCurrency,
|
|
71
|
+
locale: nextLocale
|
|
72
|
+
} = _ref3;
|
|
73
|
+
if (currency === nextCurrency && locale === nextLocale) return;
|
|
74
|
+
const [language] = nextLocale.split('-');
|
|
75
|
+
set({
|
|
76
|
+
currency: nextCurrency,
|
|
77
|
+
language,
|
|
78
|
+
locale: nextLocale
|
|
79
|
+
});
|
|
80
|
+
if (locale !== nextLocale) {
|
|
81
|
+
(0, _helpers2.themeDirection)(language);
|
|
82
|
+
fetchDictionary(nextLocale);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const handleIntentLocale = async _ref4 => {
|
|
86
|
+
let {
|
|
87
|
+
locale
|
|
88
|
+
} = _ref4;
|
|
89
|
+
const [language] = locale.split('-');
|
|
90
|
+
(0, _helpers2.themeDirection)(language);
|
|
91
|
+
set({
|
|
92
|
+
currency,
|
|
93
|
+
language,
|
|
94
|
+
locale
|
|
95
|
+
});
|
|
96
|
+
fetchDictionary(locale);
|
|
97
|
+
};
|
|
95
98
|
const fetchDictionary = async locale => {
|
|
96
99
|
const cached = _services.ServiceDictionary.cache(locale);
|
|
97
100
|
if (cached) setDictionary(cached);
|
package/build/Core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_helpers","_Core","_helpers2","_sanitizeComponent","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","handleIntentCurrency","_ref2","handleIntentEnvironment","_ref3","nextCurrency","nextLocale","language","split","themeDirection","fetchDictionary","handleIntentLocale","_ref4","cached","Event","subscribe","EVENT","INTENT_CURRENCY","INTENT_ENVIRONMENT","INTENT_LOCALE","unsubscribe","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref5","desktop","mobile","map","_ref6","index","el","component","props","getGhost","dangerousChildren","sanitizeComponent","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { EVENT } from './components/helpers';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost, themeDirection } from './helpers';\nimport { sanitizeComponent } from './helpers/sanitizeComponent';\n\nconst ghosts = {};\n\nconst Core = ({ children, components = [], skeleton = false }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n const handleIntentCurrency = ({ currency }) => {\n set({ currency });\n };\n\n const handleIntentEnvironment = async ({ currency: nextCurrency, locale: nextLocale }) => {\n if (currency === nextCurrency && locale === nextLocale) return;\n\n const [language] = nextLocale.split('-');\n set({ currency: nextCurrency, language, locale: nextLocale });\n\n if (locale !== nextLocale) {\n themeDirection(language);\n fetchDictionary(nextLocale);\n }\n };\n\n const handleIntentLocale = async ({ locale }) => {\n const [language] = locale.split('-');\n themeDirection(language);\n set({ currency, language, locale });\n\n fetchDictionary(locale);\n };\n\n if (skeleton) {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n } else {\n Event.subscribe(EVENT.INTENT_CURRENCY, handleIntentCurrency);\n Event.subscribe(EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);\n Event.subscribe(EVENT.INTENT_LOCALE, handleIntentLocale);\n }\n\n return () => {\n Event.unsubscribe(EVENT.INTENT_CURRENCY, handleIntentCurrency);\n Event.subscribe(EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);\n Event.unsubscribe(EVENT.INTENT_LOCALE, handleIntentLocale);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale, false);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n {!skeleton && <Notifications />}\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n const { dangerousChildren } = sanitizeComponent(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n dangerousChildren,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_helpers","_Core","_helpers2","_sanitizeComponent","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","store","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","cached","Event","subscribe","EVENT","INTENT_CURRENCY","handleIntentCurrency","INTENT_ENVIRONMENT","handleIntentEnvironment","INTENT_LOCALE","handleIntentLocale","unsubscribe","_ref2","_ref3","nextCurrency","nextLocale","language","split","themeDirection","fetchDictionary","_ref4","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref5","desktop","mobile","map","_ref6","index","el","component","props","getGhost","dangerousChildren","sanitizeComponent","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { EVENT } from './components/helpers';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost, themeDirection } from './helpers';\nimport { sanitizeComponent } from './helpers/sanitizeComponent';\n\nconst ghosts = {};\n\nconst Core = ({ children, components = [], skeleton = false }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE, ...store },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n if (!skeleton) return;\n\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.INTENT_CURRENCY, handleIntentCurrency);\n Event.subscribe(EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);\n Event.subscribe(EVENT.INTENT_LOCALE, handleIntentLocale);\n\n return () => {\n Event.unsubscribe(EVENT.INTENT_CURRENCY, handleIntentCurrency);\n Event.subscribe(EVENT.INTENT_ENVIRONMENT, handleIntentEnvironment);\n Event.unsubscribe(EVENT.INTENT_LOCALE, handleIntentLocale);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store]);\n\n const handleIntentCurrency = ({ currency }) => {\n set({ currency });\n };\n\n const handleIntentEnvironment = async ({ currency: nextCurrency, locale: nextLocale }) => {\n if (currency === nextCurrency && locale === nextLocale) return;\n\n const [language] = nextLocale.split('-');\n set({ currency: nextCurrency, language, locale: nextLocale });\n\n if (locale !== nextLocale) {\n themeDirection(language);\n fetchDictionary(nextLocale);\n }\n };\n\n const handleIntentLocale = async ({ locale }) => {\n const [language] = locale.split('-');\n themeDirection(language);\n set({ currency, language, locale });\n\n fetchDictionary(locale);\n };\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale, false);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n {!skeleton && <Notifications />}\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n const { dangerousChildren } = sanitizeComponent(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n dangerousChildren,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\n"],"mappings":"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"}
|
|
@@ -81,12 +81,21 @@ const Finder = _ref => {
|
|
|
81
81
|
return () => document.removeEventListener('click', handleClickOutside, true);
|
|
82
82
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
83
|
}, []);
|
|
84
|
+
(0, _react.useEffect)(() => {
|
|
85
|
+
setUnavailability({
|
|
86
|
+
disabledDates: []
|
|
87
|
+
});
|
|
88
|
+
}, [value === null || value === void 0 ? void 0 : value.occupation, value === null || value === void 0 ? void 0 : value.place]);
|
|
84
89
|
(0, _react.useEffect)(() => {
|
|
85
90
|
const callback = function () {
|
|
86
91
|
let {
|
|
87
92
|
calendar,
|
|
93
|
+
finder,
|
|
88
94
|
focus
|
|
89
95
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
96
|
+
if (finder) return handleSubmit({
|
|
97
|
+
nextValue: finder
|
|
98
|
+
});
|
|
90
99
|
setUnavailability(calendar);
|
|
91
100
|
if (focus) setFocus(focus);
|
|
92
101
|
};
|
|
@@ -127,15 +136,18 @@ const Finder = _ref => {
|
|
|
127
136
|
setValue(next);
|
|
128
137
|
onChange(next, field, fieldValue);
|
|
129
138
|
};
|
|
130
|
-
const handleSubmit = ()
|
|
139
|
+
const handleSubmit = function () {
|
|
140
|
+
let {
|
|
141
|
+
nextValue = value
|
|
142
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
131
143
|
const [firstError] = Object.keys(error).filter(key => !!error[key]);
|
|
132
144
|
if (firstError) return setFocus(firstError);
|
|
133
145
|
setFocus(undefined);
|
|
134
146
|
set({
|
|
135
|
-
finder:
|
|
147
|
+
finder: nextValue
|
|
136
148
|
});
|
|
137
149
|
const forwarderUrl = (0, _helpers.getForwarderUrl)({
|
|
138
|
-
...
|
|
150
|
+
...nextValue,
|
|
139
151
|
currency,
|
|
140
152
|
forwarder,
|
|
141
153
|
locale,
|
|
@@ -143,7 +155,7 @@ const Finder = _ref => {
|
|
|
143
155
|
type
|
|
144
156
|
});
|
|
145
157
|
if (onSubmit) onSubmit({
|
|
146
|
-
...
|
|
158
|
+
...nextValue,
|
|
147
159
|
forwarderUrl
|
|
148
160
|
});else window.location.href = forwarderUrl;
|
|
149
161
|
};
|
|
@@ -152,7 +164,7 @@ const Finder = _ref => {
|
|
|
152
164
|
const {
|
|
153
165
|
calendar = []
|
|
154
166
|
} = value;
|
|
155
|
-
if (focus === _Finder2.VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(_Finder2.VIEW.CALENDAR);else if (focus === _Finder2.VIEW.CALENDAR && !visited.occupation) setFocus(_Finder2.VIEW.OCCUPATION);else if (!compacted) setFocus(undefined);
|
|
167
|
+
if (focus === _Finder2.VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(_Finder2.VIEW.CALENDAR);else if (focus === _Finder2.VIEW.CALENDAR && !visited.occupation) setFocus(_Finder2.VIEW.OCCUPATION);else if (!compacted || assisted && [_Finder2.VIEW.CALENDAR, _Finder2.VIEW.PLACE].includes(focus)) setFocus(undefined);
|
|
156
168
|
};
|
|
157
169
|
const {
|
|
158
170
|
place = {},
|
|
@@ -205,12 +217,13 @@ const Finder = _ref => {
|
|
|
205
217
|
}), /*#__PURE__*/_react.default.createElement(_components.Places, {
|
|
206
218
|
autoColumn: focus === _Finder2.VIEW.PLACE,
|
|
207
219
|
dataSource: dataSource.places.options,
|
|
220
|
+
text: compacted ? text : undefined,
|
|
208
221
|
value: place.value,
|
|
209
222
|
onChange: (place, event) => {
|
|
210
223
|
handleChange(_Finder2.VIEW.PLACE, place, event);
|
|
211
|
-
assistant();
|
|
224
|
+
assisted && assistant();
|
|
212
225
|
},
|
|
213
|
-
onSubmit: isMobile ? assistant : undefined,
|
|
226
|
+
onSubmit: isMobile ? compacted ? handleSubmit : assisted ? assistant : undefined : undefined,
|
|
214
227
|
testId: testId ? "".concat(testId, "-places") : undefined
|
|
215
228
|
})), /*#__PURE__*/_react.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.CALENDAR, {
|
|
216
229
|
caption: calendar.length ? (0, _helpers3.getCalendarCaption)(calendar, translate, dateFormat) : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_shared__","_helpers2","_Occupation","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","_dataSource$promo","_dataSource$cta","assisted","compacted","layout","text","onChange","onSubmit","others","isMobile","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","finder","storeFinder","forwarder","locale","type","store","useStore","error","setError","useState","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","callback","calendar","Event","subscribe","EVENT","FINDER","unsubscribe","handleScroll","scrollY","window","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","handleSubmit","firstError","keys","filter","forwarderUrl","getForwarderUrl","location","href","assistant","VIEW","PLACE","CALENDAR","OCCUPATION","place","promocode","testId","dataSource","getDataSource","id","ids","isHotel","hotel","idHotel","isCompacted","createElement","Fragment","Compact","onExpand","View","role","row","className","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","backgroundColor","maxWidth","Places","autoColumn","event","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","variants","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","FieldPromocode","promo","PROMOCODE","onEnter","onLeave","Button","large","wide","button","cta","ACTION_BOOK","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { prepareRoom } from '../__shared__/Occupation/helpers';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({ assisted = true, compacted = false, layout, text, onChange = () => {}, onSubmit, ...others }) => {\n const { isMobile } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const callback = ({ calendar, focus } = {}) => {\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n Event.subscribe(EVENT.FINDER, callback);\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!compacted) return;\n\n const handleScroll = () => {\n const { scrollY } = window;\n if (scrollY > memoizedScrollY + GAP_SCROLL || scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = scrollY;\n setFocus(undefined);\n }\n };\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handleSubmit = () => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setFocus(undefined);\n set({ finder: value });\n const forwarderUrl = getForwarderUrl({ ...value, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...value, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (focus === VIEW.CALENDAR && !visited.occupation) setFocus(VIEW.OCCUPATION);\n else if (!compacted) setFocus(undefined);\n };\n\n const { place = {}, calendar = [], occupation, promocode } = value;\n const { testId } = others;\n const dataSource = getDataSource({ type, ...store });\n const { place: { id: ids = [], isHotel } = {} } = value || {};\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n const isCompacted = (compacted && isMobile) || (compacted && !isMobile && !focus);\n\n return (\n <>\n {isCompacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n <View\n role=\"finder\"\n ref={ref}\n row={!isMobile}\n testId={others.testId}\n className={styles(style.finder, layout && style[layout], others.className)}\n >\n {dataSource.places && (\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n className={{ backgroundColor: 'red', maxWidth: 128 }}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n value={place.value}\n onChange={(place, event) => {\n handleChange(VIEW.PLACE, place, event);\n assistant();\n }}\n onSubmit={isMobile ? assistant : undefined}\n testId={testId ? `${testId}-places` : undefined}\n />\n </Field>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n </Field>\n\n <FieldOccupation\n compacted={isCompacted}\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n compacted={isCompacted}\n placeholder={dataSource.promo?.placeholder}\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={() => setFocus(VIEW.PROMOCODE)}\n onLeave={() => setFocus(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isCompacted && (\n <Button\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.button}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {text || dataSource.cta?.placeholder || translate(L10N.ACTION_BOOK)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_shared__","_helpers2","_Occupation","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","_dataSource$promo","_dataSource$cta","assisted","compacted","layout","text","onChange","onSubmit","others","isMobile","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","finder","storeFinder","forwarder","locale","type","store","useStore","error","setError","useState","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","disabledDates","place","callback","calendar","handleSubmit","nextValue","Event","subscribe","EVENT","FINDER","unsubscribe","handleScroll","scrollY","window","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","firstError","keys","filter","forwarderUrl","getForwarderUrl","location","href","assistant","VIEW","PLACE","CALENDAR","OCCUPATION","includes","promocode","testId","dataSource","getDataSource","id","ids","isHotel","hotel","idHotel","isCompacted","createElement","Fragment","Compact","onExpand","View","role","row","className","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","backgroundColor","maxWidth","Places","autoColumn","event","getCalendarCaption","centered","LABEL_WHEN","Calendar","parseCalendarProps","variants","onError","onValid","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","FieldPromocode","promo","PROMOCODE","onEnter","onLeave","Button","large","wide","button","cta","ACTION_BOOK","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { prepareRoom } from '../__shared__/Occupation/helpers';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({ assisted = true, compacted = false, layout, text, onChange = () => {}, onSubmit, ...others }) => {\n const { isMobile } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setUnavailability({ disabledDates: [] });\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const callback = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n Event.subscribe(EVENT.FINDER, callback);\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!compacted) return;\n\n const handleScroll = () => {\n const { scrollY } = window;\n if (scrollY > memoizedScrollY + GAP_SCROLL || scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = scrollY;\n setFocus(undefined);\n }\n };\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setFocus(undefined);\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (focus === VIEW.CALENDAR && !visited.occupation) setFocus(VIEW.OCCUPATION);\n else if (!compacted || (assisted && [VIEW.CALENDAR, VIEW.PLACE].includes(focus))) setFocus(undefined);\n };\n\n const { place = {}, calendar = [], occupation, promocode } = value;\n const { testId } = others;\n const dataSource = getDataSource({ type, ...store });\n const { place: { id: ids = [], isHotel } = {} } = value || {};\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n const isCompacted = (compacted && isMobile) || (compacted && !isMobile && !focus);\n\n return (\n <>\n {isCompacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n <View\n role=\"finder\"\n ref={ref}\n row={!isMobile}\n testId={others.testId}\n className={styles(style.finder, layout && style[layout], others.className)}\n >\n {dataSource.places && (\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n className={{ backgroundColor: 'red', maxWidth: 128 }}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n text={compacted ? text : undefined}\n value={place.value}\n onChange={(place, event) => {\n handleChange(VIEW.PLACE, place, event);\n assisted && assistant();\n }}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={testId ? `${testId}-places` : undefined}\n />\n </Field>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n compacted={isCompacted}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n </Field>\n\n <FieldOccupation\n compacted={isCompacted}\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n compacted={isCompacted}\n placeholder={dataSource.promo?.placeholder}\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={() => setFocus(VIEW.PROMOCODE)}\n onLeave={() => setFocus(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isCompacted && (\n <Button\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.button}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {text || dataSource.cta?.placeholder || translate(L10N.ACTION_BOOK)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ const Places = _ref => {
|
|
|
18
18
|
let {
|
|
19
19
|
autoColumn = true,
|
|
20
20
|
dataSource = [],
|
|
21
|
+
text,
|
|
21
22
|
value,
|
|
22
23
|
onChange = () => {},
|
|
23
24
|
onSubmit,
|
|
@@ -76,7 +77,7 @@ const Places = _ref => {
|
|
|
76
77
|
className: [style.button, style.submit],
|
|
77
78
|
onPress: onSubmit,
|
|
78
79
|
testId: testId ? "".concat(testId, "-submit") : undefined
|
|
79
|
-
}, translate(_Places.L10N.ACTION_NEXT))));
|
|
80
|
+
}, text || translate(_Places.L10N.ACTION_NEXT))));
|
|
80
81
|
};
|
|
81
82
|
exports.Places = Places;
|
|
82
83
|
Places.displayName = 'Mirai:Core:Finder:Places';
|
|
@@ -89,6 +90,7 @@ Places.propTypes = {
|
|
|
89
90
|
title: _propTypes.default.string.isRequired,
|
|
90
91
|
value: _propTypes.default.number.isRequired
|
|
91
92
|
})),
|
|
93
|
+
text: _propTypes.default.string,
|
|
92
94
|
value: _propTypes.default.number,
|
|
93
95
|
onChange: _propTypes.default.func,
|
|
94
96
|
onSubmit: _propTypes.default.func
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Places.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Places","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Places","_ref","autoColumn","dataSource","value","onChange","onSubmit","others","device","useDevice","translate","useLocale","columns","setColumns","useState","useEffect","isMobile","calcColumns","undefined","testId","createElement","View","role","className","container","ScrollView","scrollIndicator","snap","tag","styles","scrollview","concat","map","item","arguments","length","index","isHotel","level","title","itemValue","Pressable","key","selected","onPress","Text","action","bold","repeat","footer","Button","disabled","button","submit","L10N","ACTION_NEXT","exports","displayName","propTypes","PropTypes","bool","arrayOf","shape","id","string","isRequired","number","func"],"sources":["../../../../../src/components/Finder/components/Places/Places.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Button, Pressable, styles, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { calcColumns } from './helpers';\nimport { L10N } from './Places.l10n';\nimport * as style from './Places.module.css';\n\nconst Places = ({ autoColumn = true, dataSource = [], value, onChange = () => {}, onSubmit, ...others }) => {\n const device = useDevice();\n const { translate } = useLocale();\n\n const [columns, setColumns] = useState();\n\n useEffect(() => {\n const { isMobile } = device;\n\n if (!isMobile && autoColumn) setColumns(autoColumn ? calcColumns({ dataSource, device }) : undefined);\n }, [autoColumn, device, dataSource]);\n\n const { testId } = others;\n\n return (\n <View role=\"places\" className={style.container}>\n {/* <Text>Filter</Text> */}\n <ScrollView\n scrollIndicator\n snap\n tag=\"ul\"\n className={styles(style.scrollview, columns && style.columns, columns && style[`columns${columns}`])}\n testId={testId}\n >\n {dataSource.map((item = {}, index) => {\n const { isHotel, level, title, value: itemValue } = item;\n\n return (\n <Pressable\n key={index}\n tag=\"li\"\n className={styles(style.item, itemValue === value && style.selected)}\n onPress={() => onChange(item)}\n testId={testId ? `${testId}-item-${index}` : undefined}\n >\n <Text action={level !== 0} bold={!isHotel} className={style.title}>\n {'\\u00A0'.repeat(level)}\n {title}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n\n {onSubmit && (\n <View className={style.footer}>\n <Button\n disabled={!value}\n className={[style.button, style.submit]}\n onPress={onSubmit}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nPlaces.displayName = 'Mirai:Core:Finder:Places';\n\nPlaces.propTypes = {\n autoColumn: PropTypes.bool,\n dataSource: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.arrayOf(PropTypes.string).isRequired,\n isHotel: PropTypes.bool,\n level: PropTypes.number,\n title: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }),\n ),\n value: PropTypes.number,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Places };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAC,uBAAA,CAAAL,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAH,uBAAA,CAAAL,OAAA;AAA6C,SAAAS,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,SAAAL,wBAAAK,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,SAAAf,uBAAA2B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAE7C,MAAMC,MAAM,GAAGC,IAAA,
|
|
1
|
+
{"version":3,"file":"Places.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Places","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Places","_ref","autoColumn","dataSource","text","value","onChange","onSubmit","others","device","useDevice","translate","useLocale","columns","setColumns","useState","useEffect","isMobile","calcColumns","undefined","testId","createElement","View","role","className","container","ScrollView","scrollIndicator","snap","tag","styles","scrollview","concat","map","item","arguments","length","index","isHotel","level","title","itemValue","Pressable","key","selected","onPress","Text","action","bold","repeat","footer","Button","disabled","button","submit","L10N","ACTION_NEXT","exports","displayName","propTypes","PropTypes","bool","arrayOf","shape","id","string","isRequired","number","func"],"sources":["../../../../../src/components/Finder/components/Places/Places.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Button, Pressable, styles, ScrollView, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { calcColumns } from './helpers';\nimport { L10N } from './Places.l10n';\nimport * as style from './Places.module.css';\n\nconst Places = ({ autoColumn = true, dataSource = [], text, value, onChange = () => {}, onSubmit, ...others }) => {\n const device = useDevice();\n const { translate } = useLocale();\n\n const [columns, setColumns] = useState();\n\n useEffect(() => {\n const { isMobile } = device;\n\n if (!isMobile && autoColumn) setColumns(autoColumn ? calcColumns({ dataSource, device }) : undefined);\n }, [autoColumn, device, dataSource]);\n\n const { testId } = others;\n\n return (\n <View role=\"places\" className={style.container}>\n {/* <Text>Filter</Text> */}\n <ScrollView\n scrollIndicator\n snap\n tag=\"ul\"\n className={styles(style.scrollview, columns && style.columns, columns && style[`columns${columns}`])}\n testId={testId}\n >\n {dataSource.map((item = {}, index) => {\n const { isHotel, level, title, value: itemValue } = item;\n\n return (\n <Pressable\n key={index}\n tag=\"li\"\n className={styles(style.item, itemValue === value && style.selected)}\n onPress={() => onChange(item)}\n testId={testId ? `${testId}-item-${index}` : undefined}\n >\n <Text action={level !== 0} bold={!isHotel} className={style.title}>\n {'\\u00A0'.repeat(level)}\n {title}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n\n {onSubmit && (\n <View className={style.footer}>\n <Button\n disabled={!value}\n className={[style.button, style.submit]}\n onPress={onSubmit}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {text || translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nPlaces.displayName = 'Mirai:Core:Finder:Places';\n\nPlaces.propTypes = {\n autoColumn: PropTypes.bool,\n dataSource: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.arrayOf(PropTypes.string).isRequired,\n isHotel: PropTypes.bool,\n level: PropTypes.number,\n title: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n }),\n ),\n text: PropTypes.string,\n value: PropTypes.number,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Places };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_Core","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","isHotel","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","idchain","origin","commissionCode","hsri","urlParams","miraiId","uid","type","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","chainSelectorValue","checkin","dateFormat","format","hotelIds","join","idtokenprovider","TYPE","CHAIN","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { TYPE } from '../../../Core.constants';\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], isHotel, value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: {\n hotel: { id } = {},\n id: idchain,\n origin: { commissionCode: hsri = '' } = {},\n urlParams: { miraiId, uid },\n } = {},\n type,\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n const params = {\n chainSelectorValue: value,\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n ...(value && !isHotel ? { hotelIds: ids.join(',') } : { idtokenprovider: hotelId }),\n ...(type === TYPE.CHAIN ? { idchain } : undefined),\n clientCode,\n currency,\n hsri,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n uid,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEO,MAAMG,eAAe,GAAG,SAAAA,CAAA,EAepB;EAAA,IAfqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAC5CC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MACLC,KAAK,EAAE;QAAEd;MAAG,CAAC,GAAG,CAAC,CAAC;MAClBA,EAAE,EAAEe,OAAO;MACXC,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAC1CC,SAAS,EAAE;QAAEC,OAAO;QAAEC;MAAI;
|
|
1
|
+
{"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_Core","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","isHotel","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","idchain","origin","commissionCode","hsri","urlParams","miraiId","uid","type","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","chainSelectorValue","checkin","dateFormat","format","hotelIds","join","idtokenprovider","TYPE","CHAIN","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { TYPE } from '../../../Core.constants';\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], isHotel, value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: {\n hotel: { id } = {},\n id: idchain,\n origin: { commissionCode: hsri = '' } = {},\n urlParams: { miraiId, uid } = {},\n } = {},\n type,\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n const params = {\n chainSelectorValue: value,\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n ...(value && !isHotel ? { hotelIds: ids.join(',') } : { idtokenprovider: hotelId }),\n ...(type === TYPE.CHAIN ? { idchain } : undefined),\n clientCode,\n currency,\n hsri,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n uid,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEO,MAAMG,eAAe,GAAG,SAAAA,CAAA,EAepB;EAAA,IAfqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAC5CC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MACLC,KAAK,EAAE;QAAEd;MAAG,CAAC,GAAG,CAAC,CAAC;MAClBA,EAAE,EAAEe,OAAO;MACXC,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAC1CC,SAAS,EAAE;QAAEC,OAAO;QAAEC;MAAI,CAAC,GAAG,CAAC;IACjC,CAAC,GAAG,CAAC,CAAC;IACNC;EACF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,MAAMG,WAAW,GAAG9B,OAAO,YAAY+B,IAAI,GAAG/B,OAAO,GAAG,IAAAgC,iBAAS,EAAChC,OAAO,CAAC;EAC1E,MAAMiC,YAAY,GAAGhC,QAAQ,YAAY8B,IAAI,GAAG9B,QAAQ,GAAG,IAAA+B,iBAAS,EAAC/B,QAAQ,CAAC;EAC9E,MAAMiC,OAAO,GAAG7B,GAAG,CAACuB,MAAM,KAAK,CAAC,GAAGvB,GAAG,CAAC,CAAC,CAAC,GAAGD,EAAE;EAC9C,MAAM+B,MAAM,GAAG;IACbC,kBAAkB,EAAE7B,KAAK;IACzB8B,OAAO,EAAE,IAAAC,kBAAU,EAACR,WAAW,EAAE;MAAES,MAAM,EAAE;IAAa,CAAC,CAAC;IAC1D,IAAIhC,KAAK,IAAI,CAACD,OAAO,GAAG;MAAEkC,QAAQ,EAAEnC,GAAG,CAACoC,IAAI,CAAC,GAAG;IAAE,CAAC,GAAG;MAAEC,eAAe,EAAER;IAAQ,CAAC,CAAC;IACnF,IAAIR,IAAI,KAAKiB,UAAI,CAACC,KAAK,GAAG;MAAEzB;IAAQ,CAAC,GAAGU,SAAS,CAAC;IAClDpB,UAAU;IACVG,QAAQ;IACRU,IAAI;IACJuB,IAAI,EAAEnC,MAAM,CAACoC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1BtB,OAAO;IACPuB,MAAM,EAAE,IAAAC,gBAAQ,EAAClB,WAAW,EAAEG,YAAY,CAAC,CAACgB,IAAI;IAChDC,OAAO,EAAE,IAAAC,uBAAc,EAACjD,UAAU,CAAC;IACnCwB,IAAI;IACJD;IACA;IACA;IACA;IACA;IACA;EACF,CAAC;EAED,UAAA2B,MAAA,CAAUpC,GAAG,EAAAoC,MAAA,CAAG,IAAAC,oBAAW,EAAClB,MAAM,CAAC;AACrC,CAAC;AAACmB,OAAA,CAAAxD,eAAA,GAAAA,eAAA"}
|
|
@@ -43,7 +43,6 @@ const Unavailability = _ref => {
|
|
|
43
43
|
translate
|
|
44
44
|
} = (0, _locale.useLocale)();
|
|
45
45
|
const {
|
|
46
|
-
set,
|
|
47
46
|
value: store
|
|
48
47
|
} = (0, _dataSources.useStore)();
|
|
49
48
|
(0, _react.useEffect)(() => {
|
|
@@ -53,7 +52,6 @@ const Unavailability = _ref => {
|
|
|
53
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
54
53
|
}, []);
|
|
55
54
|
const {
|
|
56
|
-
club = {},
|
|
57
55
|
currency,
|
|
58
56
|
finder = {},
|
|
59
57
|
hotel: {
|
|
@@ -62,7 +60,7 @@ const Unavailability = _ref => {
|
|
|
62
60
|
} = {}
|
|
63
61
|
} = store;
|
|
64
62
|
const handleCalendar = (from, to) => {
|
|
65
|
-
|
|
63
|
+
_dataSources.Event.publish(_helpers2.EVENT.FINDER, {
|
|
66
64
|
finder: {
|
|
67
65
|
...finder,
|
|
68
66
|
calendar: [from, to]
|
|
@@ -71,7 +69,7 @@ const Unavailability = _ref => {
|
|
|
71
69
|
};
|
|
72
70
|
const handleOccupation = function () {
|
|
73
71
|
let rooms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
74
|
-
|
|
72
|
+
_dataSources.Event.publish(_helpers2.EVENT.FINDER, {
|
|
75
73
|
finder: {
|
|
76
74
|
...finder,
|
|
77
75
|
occupation: rooms.map(function () {
|
|
@@ -241,13 +239,19 @@ const Unavailability = _ref => {
|
|
|
241
239
|
action: true,
|
|
242
240
|
capitalize: true
|
|
243
241
|
}, name), occupation.map(function () {
|
|
244
|
-
|
|
245
|
-
let
|
|
242
|
+
var _item$ages;
|
|
243
|
+
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
244
|
+
let itemIndex = arguments.length > 1 ? arguments[1] : undefined;
|
|
246
245
|
return /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
247
|
-
key: "occupation:".concat(index, ":room:").concat(roomIndex, ":").concat(
|
|
246
|
+
key: "occupation:".concat(index, ":room:").concat(roomIndex, ":").concat(itemIndex),
|
|
248
247
|
lighten: true,
|
|
249
248
|
small: true
|
|
250
|
-
}, (0, _helpers2.getOccupationLabel)(
|
|
249
|
+
}, "".concat((0, _helpers2.getOccupationLabel)({
|
|
250
|
+
...item,
|
|
251
|
+
ages: []
|
|
252
|
+
}, translate), " ").concat(item.type === _helpers2.OCCUPATION_TYPE.CHILD ? "(".concat(translate(_Rates2.L10N.LABEL_YEARS_OLD, {
|
|
253
|
+
amount: (_item$ages = item.ages) === null || _item$ages === void 0 ? void 0 : _item$ages.sort().join('-')
|
|
254
|
+
}), ")") : ''));
|
|
251
255
|
}));
|
|
252
256
|
})), renderPrice({
|
|
253
257
|
price,
|
|
@@ -257,7 +261,9 @@ const Unavailability = _ref => {
|
|
|
257
261
|
})), hasSuggestions && hotels.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
258
262
|
bold: true,
|
|
259
263
|
headline: true
|
|
260
|
-
},
|
|
264
|
+
}, translate(_Rates2.L10N.LABEL_ALTERNATIVE_HOTEL_SUGGESTIONS, {
|
|
265
|
+
value: hotels.length
|
|
266
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
261
267
|
row: !isMobile,
|
|
262
268
|
className: style.items
|
|
263
269
|
}, hotels.map((item, index) => /*#__PURE__*/_react.default.createElement(_components.CardHotel, _extends({
|