@mirai/core 0.3.64 → 0.3.66
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/components/Checkout/Checkout.l10n.js +1 -1
- package/build/components/Checkout/Checkout.l10n.js.map +1 -1
- package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +18 -6
- package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Details.test.js.snap +3 -1
- package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Summary.test.js.snap +12 -4
- package/build/components/Rates/Rates.Footer.js +32 -48
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.Header.js +8 -4
- package/build/components/Rates/Rates.Header.js.map +1 -1
- package/build/components/Rates/Rates.RoomSelector.js +0 -3
- package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
- package/build/components/Rates/Rates.Skeleton.js +6 -3
- package/build/components/Rates/Rates.Skeleton.js.map +1 -1
- package/build/components/Rates/Rates.js +53 -25
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.module.css +33 -13
- package/build/components/Rates/components/Item/Item.Preview.js +21 -6
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Summary.js +20 -26
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
- package/build/components/Rates/components/Item/Item.module.css +9 -15
- package/build/components/Rates/components/Item/components/Features/Features.js +15 -18
- package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
- package/build/components/Rates/components/Item/components/Features/Features.module.css +0 -6
- package/build/components/Rates/components/Item/components/{Discount/Discount.js → PriceDetails/PriceDetails.js} +23 -18
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -0
- package/build/components/Rates/components/Item/components/{Discount/Discount.module.css → PriceDetails/PriceDetails.module.css} +5 -6
- package/build/components/Rates/components/Item/components/PriceDetails/index.js +17 -0
- package/build/components/Rates/components/Item/components/PriceDetails/index.js.map +1 -0
- package/build/components/Rates/components/Item/components/index.js +11 -11
- package/build/components/Rates/components/Item/components/index.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/ModalExtras.js +176 -0
- package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -0
- package/build/components/Rates/components/ModalExtras/ModalExtras.l10n.js +18 -0
- package/build/components/Rates/components/ModalExtras/ModalExtras.l10n.js.map +1 -0
- package/build/components/Rates/components/ModalExtras/ModalExtras.module.css +74 -0
- package/build/components/Rates/components/{Item/components/Discount → ModalExtras}/index.js +4 -4
- package/build/components/Rates/components/ModalExtras/index.js.map +1 -0
- package/build/components/Rates/components/index.js +11 -0
- package/build/components/Rates/components/index.js.map +1 -1
- package/package.json +1 -1
- package/build/components/Rates/components/Item/components/Discount/Discount.js.map +0 -1
- package/build/components/Rates/components/Item/components/Discount/index.js.map +0 -1
|
@@ -48,6 +48,7 @@ const Rates = _ref => {
|
|
|
48
48
|
finder: {
|
|
49
49
|
occupation = []
|
|
50
50
|
} = {},
|
|
51
|
+
forwarder,
|
|
51
52
|
hotel = {},
|
|
52
53
|
language,
|
|
53
54
|
locale,
|
|
@@ -58,6 +59,7 @@ const Rates = _ref => {
|
|
|
58
59
|
const [cart, setCart] = (0, _react.useState)([]);
|
|
59
60
|
const [compact, setCompact] = (0, _react.useState)(true);
|
|
60
61
|
const [dataSource, setDataSource] = (0, _react.useState)();
|
|
62
|
+
const [extras, setExtras] = (0, _react.useState)();
|
|
61
63
|
const [fetching, setFetching] = (0, _react.useState)(undefined);
|
|
62
64
|
const [filter, setFilter] = (0, _react.useState)({
|
|
63
65
|
clubDiscount: discount
|
|
@@ -67,10 +69,6 @@ const Rates = _ref => {
|
|
|
67
69
|
const [itemUrl, setItemUrl] = (0, _react.useState)();
|
|
68
70
|
const [responseError, setResponseError] = (0, _react.useState)();
|
|
69
71
|
const [room, setRoom] = (0, _react.useState)();
|
|
70
|
-
const storage = new _dataSources.Storage({
|
|
71
|
-
adapter: _dataSources.LocalAdapter,
|
|
72
|
-
cache: _Rates.RATES_STORAGE_CACHE
|
|
73
|
-
});
|
|
74
72
|
(0, _react.useEffect)(() => {
|
|
75
73
|
if (skeleton) return setFetching(true);
|
|
76
74
|
const handleScroll = () => setCompact(true);
|
|
@@ -80,16 +78,12 @@ const Rates = _ref => {
|
|
|
80
78
|
}, []);
|
|
81
79
|
(0, _react.useEffect)(() => {
|
|
82
80
|
if (!urlParams || !dataSource) return;
|
|
83
|
-
|
|
84
|
-
// ! Should know if didnt expire the storage
|
|
85
|
-
// const storedCart = storage.get(key(urlParams));
|
|
86
|
-
// if (storedCart) setCart(storedCart.map((item) => (item !== null ? item : undefined)));
|
|
87
81
|
if (dataSource !== null && dataSource !== void 0 && dataSource.externalLogoff && club !== null && club !== void 0 && club.id) document.location.href = "".concat(process.env.SERVICE_USER, "/").concat(_Rates.EXPIRATION_ENDPOINT, "?idClub=").concat(club.id, "&lang=").concat(language);
|
|
88
|
-
|
|
82
|
+
|
|
89
83
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
90
84
|
}, [dataSource]);
|
|
91
85
|
(0, _react.useEffect)(() => {
|
|
92
|
-
if (multiRoom
|
|
86
|
+
if (multiRoom) {
|
|
93
87
|
const {
|
|
94
88
|
current: {
|
|
95
89
|
offsetHeight = 0,
|
|
@@ -121,17 +115,13 @@ const Rates = _ref => {
|
|
|
121
115
|
session
|
|
122
116
|
};
|
|
123
117
|
if (room !== undefined) nextParams.parties = (0, _helpers2.parseToParties)([occupation[room]]);
|
|
124
|
-
|
|
118
|
+
if (!multiRoom || multiRoom && room !== undefined) {
|
|
119
|
+
setDataSource(await _services.ServiceRates.get(nextParams).catch(setResponseError));
|
|
120
|
+
} else if (multiRoom && room === undefined) {
|
|
121
|
+
setRoom(0);
|
|
122
|
+
}
|
|
125
123
|
setFetching(false);
|
|
126
124
|
};
|
|
127
|
-
const key = dataSource => "".concat(_Rates.RATES_STORAGE_KEY, ":").concat((0, _helpers2.generateId)(JSON.stringify(dataSource)));
|
|
128
|
-
const handleChange = board => {
|
|
129
|
-
const nextCart = [...cart];
|
|
130
|
-
nextCart[room || 0] = board;
|
|
131
|
-
setCart(nextCart);
|
|
132
|
-
storage.set(key(urlParams), nextCart);
|
|
133
|
-
if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);
|
|
134
|
-
};
|
|
135
125
|
const handleChangeCurrency = async nextCurrency => {
|
|
136
126
|
await fetch(nextCurrency, undefined, undefined, room);
|
|
137
127
|
setCart([]);
|
|
@@ -143,6 +133,14 @@ const Rates = _ref => {
|
|
|
143
133
|
setFilter(nextFilter);
|
|
144
134
|
if (nextFilter.clubDiscount !== filter.clubDiscount) await fetch(currency, nextFilter.clubDiscount, undefined, room);
|
|
145
135
|
};
|
|
136
|
+
const handleSelect = board => {
|
|
137
|
+
const nextCart = [...cart];
|
|
138
|
+
nextCart[room || 0] = board;
|
|
139
|
+
setCart(nextCart);
|
|
140
|
+
setExtras();
|
|
141
|
+
if (!multiRoom && !!board) handleSubmit(nextCart);
|
|
142
|
+
if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);
|
|
143
|
+
};
|
|
146
144
|
const handleFinderSubmit = values => {
|
|
147
145
|
setCompact(true);
|
|
148
146
|
setDataSource(undefined);
|
|
@@ -159,6 +157,29 @@ const Rates = _ref => {
|
|
|
159
157
|
setRoom(undefined);
|
|
160
158
|
fetch(currency, filter.clubDiscount, params);
|
|
161
159
|
};
|
|
160
|
+
const handleSubmit = cart => {
|
|
161
|
+
// ! TODO: Determine if we have extras for current cart
|
|
162
|
+
setTimeout(async () => {
|
|
163
|
+
// const extras = await ServiceRates.extras(cart);
|
|
164
|
+
// setExtras([]);
|
|
165
|
+
handleCheckout(cart, extras);
|
|
166
|
+
}, 1000);
|
|
167
|
+
};
|
|
168
|
+
const handleCheckout = function () {
|
|
169
|
+
let cart = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
170
|
+
let extras = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
171
|
+
const {
|
|
172
|
+
clubDiscount
|
|
173
|
+
} = filter;
|
|
174
|
+
document.location.href = (0, _helpers.getForwarderUrl)({
|
|
175
|
+
cart,
|
|
176
|
+
clubDiscount,
|
|
177
|
+
currency,
|
|
178
|
+
extras,
|
|
179
|
+
forwarder,
|
|
180
|
+
urlParams
|
|
181
|
+
});
|
|
182
|
+
};
|
|
162
183
|
const multiRoom = (occupation === null || occupation === void 0 ? void 0 : occupation.length) > 1;
|
|
163
184
|
const response = dataSource !== undefined;
|
|
164
185
|
const roomSelectorProps = {
|
|
@@ -208,9 +229,9 @@ const Rates = _ref => {
|
|
|
208
229
|
multiRoom,
|
|
209
230
|
taxes: dataSource.taxes,
|
|
210
231
|
cart: cart[room || 0],
|
|
211
|
-
onChange: handleChange,
|
|
212
232
|
onMoreInfo: () => setItemInfo(item),
|
|
213
233
|
onRateInfo: rate => setItemRateInfo(rate),
|
|
234
|
+
onSelect: handleSelect,
|
|
214
235
|
onViewUrl: info => setItemUrl(info)
|
|
215
236
|
}));
|
|
216
237
|
}))) : responseError ? /*#__PURE__*/_react.default.createElement(_ui.Notification, {
|
|
@@ -219,14 +240,13 @@ const Rates = _ref => {
|
|
|
219
240
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
220
241
|
align: "center",
|
|
221
242
|
markdown: false
|
|
222
|
-
}, JSON.stringify(responseError))) : /*#__PURE__*/_react.default.createElement(_Rates6.default, null)), /*#__PURE__*/_react.default.createElement(_Rates2.Footer, {
|
|
243
|
+
}, JSON.stringify(responseError))) : /*#__PURE__*/_react.default.createElement(_Rates6.default, null)), multiRoom && /*#__PURE__*/_react.default.createElement(_Rates2.Footer, {
|
|
223
244
|
cart,
|
|
224
245
|
dataSource,
|
|
225
|
-
|
|
226
|
-
multiRoom,
|
|
246
|
+
extras,
|
|
227
247
|
occupation,
|
|
228
|
-
|
|
229
|
-
})), /*#__PURE__*/_react.default.createElement(_components.ModalItemInfo, _extends({}, itemInfo, {
|
|
248
|
+
onSubmit: () => handleSubmit(cart)
|
|
249
|
+
})), response && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.ModalItemInfo, _extends({}, itemInfo, {
|
|
230
250
|
visible: !!itemInfo,
|
|
231
251
|
onClose: () => setItemInfo()
|
|
232
252
|
})), /*#__PURE__*/_react.default.createElement(_components.ModalItemRateInfo, _extends({}, itemRateInfo, {
|
|
@@ -235,6 +255,14 @@ const Rates = _ref => {
|
|
|
235
255
|
})), /*#__PURE__*/_react.default.createElement(_components.ModalItemUrl, _extends({}, itemUrl, {
|
|
236
256
|
visible: !!itemUrl,
|
|
237
257
|
onClose: () => setItemUrl()
|
|
258
|
+
})), /*#__PURE__*/_react.default.createElement(_components.ModalExtras
|
|
259
|
+
// extras={extras} // ! TODO: Only enable when extras is working
|
|
260
|
+
, {
|
|
261
|
+
cart,
|
|
262
|
+
taxes: dataSource.taxes,
|
|
263
|
+
visible: !!extras,
|
|
264
|
+
onCancel: () => multiRoom ? setExtras() : handleSelect(),
|
|
265
|
+
onSubmit: extras => handleCheckout(cart, extras)
|
|
238
266
|
})));
|
|
239
267
|
};
|
|
240
268
|
exports.Rates = Rates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","style","_Rates5","_Rates6","_services","_Finder","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Rates","_ref","skeleton","others","isMobile","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","occupation","hotel","language","locale","session","urlParams","useStore","cart","setCart","useState","compact","setCompact","dataSource","setDataSource","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","responseError","setResponseError","room","setRoom","storage","Storage","adapter","LocalAdapter","cache","RATES_STORAGE_CACHE","useEffect","handleScroll","window","addEventListener","removeEventListener","externalLogoff","id","document","location","href","concat","process","env","SERVICE_USER","EXPIRATION_ENDPOINT","multiRoom","current","offsetHeight","offsetTop","documentElement","scrollTo","top","behavior","fetch","params","nextParams","parties","parseToParties","ServiceRates","catch","RATES_STORAGE_KEY","generateId","JSON","stringify","handleChange","board","nextCart","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","sticky","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","container","wrapper","content","Header","onChange","onCurrency","row","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","onViewUrl","info","Notification","error","large","Text","align","markdown","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","exports","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Notification, Progress, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Item, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getFinderParams } from './helpers';\nimport { EXPIRATION_ENDPOINT, RATES_STORAGE_CACHE, RATES_STORAGE_KEY } from './Rates.constants';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { generateId, parseToParties, toUrlParams } from '../helpers';\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder: { occupation = [] } = {},\n hotel = {},\n language,\n locale,\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [compact, setCompact] = useState(true);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filter, setFilter] = useState({ clubDiscount: discount });\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n const storage = new Storage({ adapter: LocalAdapter, cache: RATES_STORAGE_CACHE });\n\n useEffect(() => {\n if (skeleton) return setFetching(true);\n\n const handleScroll = () => setCompact(true);\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!urlParams || !dataSource) return;\n\n // ! Should know if didnt expire the storage\n // const storedCart = storage.get(key(urlParams));\n // if (storedCart) setCart(storedCart.map((item) => (item !== null ? item : undefined)));\n if (dataSource?.externalLogoff && club?.id)\n document.location.href = `${process.env.SERVICE_USER}/${EXPIRATION_ENDPOINT}?idClub=${club.id}&lang=${language}`;\n\n if (room == undefined && occupation.length > 1) setRoom(0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n if (multiRoom && room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n setDataSource();\n }\n fetch(currency, undefined, undefined, room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, room, session]);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams, room) => {\n if (skeleton) return;\n\n setFetching(true);\n\n setResponseError();\n const nextParams = { ...params, club, clubDiscount, currency, locale, session };\n if (room !== undefined) nextParams.parties = parseToParties([occupation[room]]);\n setDataSource(await ServiceRates.get(nextParams).catch(setResponseError));\n setFetching(false);\n };\n\n const key = (dataSource) => `${RATES_STORAGE_KEY}:${generateId(JSON.stringify(dataSource))}`;\n\n const handleChange = (board) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board;\n\n setCart(nextCart);\n storage.set(key(urlParams), nextCart);\n\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency, undefined, undefined, room);\n setCart([]);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount)\n await fetch(currency, nextFilter.clubDiscount, undefined, room);\n };\n\n const handleFinderSubmit = (values) => {\n setCompact(true);\n setDataSource(undefined);\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n\n history.replaceState({}, '', toUrlParams(params));\n // ! TODO: Restart the process?\n setCart([]);\n setRoom(undefined);\n fetch(currency, filter.clubDiscount, params);\n };\n\n const multiRoom = occupation?.length > 1;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\n <>\n <View ref={refRoomSelector} className={styles(style.finder, !multiRoom && style.sticky)}>\n <Finder\n assisted={false}\n compact={compact}\n text={translate(L10N.ACTION_SEARCH)}\n onExpand={() => setCompact(false)}\n onSubmit={handleFinderSubmit}\n />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && <RoomSelector {...roomSelectorProps} />}\n\n <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && (\n <Header\n {...{ dataSource, occupation }}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n className={multiRoom ? style.sticky : undefined}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <>\n <View row={!isMobile} className={style.items}>\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, multiRoom, taxes: dataSource.taxes }}\n cart={cart[room || 0]}\n onChange={handleChange}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n </View>\n </>\n ) : responseError ? (\n <Notification error large>\n <Text align=\"center\" markdown={false}>\n {JSON.stringify(responseError)}\n </Text>\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer {...{ cart, dataSource, filter, multiRoom, occupation }} onChange={handleChange} />\n </View>\n\n <ModalItemInfo {...itemInfo} visible={!!itemInfo} onClose={() => setItemInfo()} />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n </>\n );\n};\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","style","_Rates5","_Rates6","_services","_Finder","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","Rates","_ref","skeleton","others","isMobile","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","occupation","forwarder","hotel","language","locale","session","urlParams","useStore","cart","setCart","useState","compact","setCompact","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","responseError","setResponseError","room","setRoom","useEffect","handleScroll","window","addEventListener","removeEventListener","externalLogoff","id","document","location","href","concat","process","env","SERVICE_USER","EXPIRATION_ENDPOINT","multiRoom","current","offsetHeight","offsetTop","documentElement","scrollTo","top","behavior","fetch","params","nextParams","parties","parseToParties","ServiceRates","catch","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleSelect","board","nextCart","handleSubmit","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","setTimeout","handleCheckout","getForwarderUrl","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","sticky","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","container","wrapper","content","Header","onChange","onCurrency","row","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","onSelect","onViewUrl","info","Notification","error","large","Text","align","markdown","JSON","stringify","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","exports","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Notification, Progress, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getFinderParams, getForwarderUrl } from './helpers';\nimport { EXPIRATION_ENDPOINT } from './Rates.constants';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { parseToParties, toUrlParams } from '../helpers';\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n set,\n value: {\n club: { discount, ...club } = {},\n currency,\n finder: { occupation = [] } = {},\n forwarder,\n hotel = {},\n language,\n locale,\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [compact, setCompact] = useState(true);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filter, setFilter] = useState({ clubDiscount: discount });\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n useEffect(() => {\n if (skeleton) return setFetching(true);\n\n const handleScroll = () => setCompact(true);\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!urlParams || !dataSource) return;\n\n if (dataSource?.externalLogoff && club?.id)\n document.location.href = `${process.env.SERVICE_USER}/${EXPIRATION_ENDPOINT}?idClub=${club.id}&lang=${language}`;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n if (multiRoom) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n setDataSource();\n }\n fetch(currency, undefined, undefined, room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, room, session]);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams, room) => {\n if (skeleton) return;\n\n setFetching(true);\n setResponseError();\n const nextParams = { ...params, club, clubDiscount, currency, locale, session };\n if (room !== undefined) nextParams.parties = parseToParties([occupation[room]]);\n\n if (!multiRoom || (multiRoom && room !== undefined)) {\n setDataSource(await ServiceRates.get(nextParams).catch(setResponseError));\n } else if (multiRoom && room === undefined) {\n setRoom(0);\n }\n setFetching(false);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency, undefined, undefined, room);\n setCart([]);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount)\n await fetch(currency, nextFilter.clubDiscount, undefined, room);\n };\n\n const handleSelect = (board) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board;\n\n setCart(nextCart);\n setExtras();\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n };\n\n const handleFinderSubmit = (values) => {\n setCompact(true);\n setDataSource(undefined);\n const params = getFinderParams({ ...urlParams, ...values, currency, locale, hotel });\n\n history.replaceState({}, '', toUrlParams(params));\n // ! TODO: Restart the process?\n setCart([]);\n setRoom(undefined);\n fetch(currency, filter.clubDiscount, params);\n };\n\n const handleSubmit = (cart) => {\n // ! TODO: Determine if we have extras for current cart\n setTimeout(async () => {\n // const extras = await ServiceRates.extras(cart);\n // setExtras([]);\n handleCheckout(cart, extras);\n }, 1000);\n };\n\n const handleCheckout = (cart = [], extras = []) => {\n const { clubDiscount } = filter;\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, extras, forwarder, urlParams });\n };\n\n const multiRoom = occupation?.length > 1;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\n <>\n <View ref={refRoomSelector} className={styles(style.finder, !multiRoom && style.sticky)}>\n <Finder\n assisted={false}\n compact={compact}\n text={translate(L10N.ACTION_SEARCH)}\n onExpand={() => setCompact(false)}\n onSubmit={handleFinderSubmit}\n />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && <RoomSelector {...roomSelectorProps} />}\n\n <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && (\n <Header\n {...{ dataSource, occupation }}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n className={multiRoom ? style.sticky : undefined}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <>\n <View row={!isMobile} className={style.items}>\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, multiRoom, taxes: dataSource.taxes }}\n cart={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n </View>\n </>\n ) : responseError ? (\n <Notification error large>\n <Text align=\"center\" markdown={false}>\n {JSON.stringify(responseError)}\n </Text>\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n\n {multiRoom && <Footer {...{ cart, dataSource, extras, occupation }} onSubmit={() => handleSubmit(cart)} />}\n </View>\n\n {response && (\n <>\n <ModalItemInfo {...itemInfo} visible={!!itemInfo} onClose={() => setItemInfo()} />\n <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n // extras={extras} // ! TODO: Only enable when extras is working\n {...{ cart, taxes: dataSource.taxes }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n </>\n )}\n </>\n );\n};\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\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,WAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AACA,IAAAa,KAAA,GAAAP,uBAAA,CAAAN,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA;AACA,IAAAe,OAAA,GAAAX,sBAAA,CAAAJ,OAAA;AACA,IAAAgB,SAAA,GAAAhB,OAAA;AACA,IAAAiB,OAAA,GAAAjB,OAAA;AACA,IAAAkB,SAAA,GAAAlB,OAAA;AAAyD,SAAAmB,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,SAAAd,wBAAAc,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,SAAAxB,uBAAAoC,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;AAEzD,MAAMK,KAAK,GAAGC,IAAA,IAA6B;EAAA,IAA5B;IAAEC,QAAQ;IAAE,GAAGC;EAAO,CAAC,GAAAF,IAAA;EACpC,MAAM;IAAEG;EAAS,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAChC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,CAAC;EAChC,MAAM;IACJpB,GAAG;IACHqB,KAAK,EAAE;MACLC,IAAI,EAAE;QAAEC,QAAQ;QAAE,GAAGD;MAAK,CAAC,GAAG,CAAC,CAAC;MAChCE,QAAQ;MACRC,MAAM,EAAE;QAAEC,UAAU,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAChCC,SAAS;MACTC,KAAK,GAAG,CAAC,CAAC;MACVC,QAAQ;MACRC,MAAM;MACNC,OAAO;MACPC;IACF;EACF,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,IAAI,CAAC;EAC5C,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAJ,eAAQ,EAAC,CAAC;EAC9C,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAN,eAAQ,EAAC,CAAC;EACtC,MAAM,CAACO,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAR,eAAQ,EAACS,SAAS,CAAC;EACnD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAX,eAAQ,EAAC;IAAEY,YAAY,EAAEzB;EAAS,CAAC,CAAC;EAChE,MAAM,CAAC0B,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAd,eAAQ,EAAC,CAAC;EAC1C,MAAM,CAACe,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAhB,eAAQ,EAAC,CAAC;EAClD,MAAM,CAACiB,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAlB,eAAQ,EAAC,CAAC;EACxC,MAAM,CAACmB,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAApB,eAAQ,EAAC,CAAC;EACpD,MAAM,CAACqB,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAtB,eAAQ,EAAC,CAAC;EAElC,IAAAuB,gBAAS,EAAC,MAAM;IACd,IAAI9C,QAAQ,EAAE,OAAO+B,WAAW,CAAC,IAAI,CAAC;IAEtC,MAAMgB,YAAY,GAAGA,CAAA,KAAMtB,UAAU,CAAC,IAAI,CAAC;IAC3CuB,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;IAE/C,OAAO,MAAMC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAC/D;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC3B,SAAS,IAAI,CAACO,UAAU,EAAE;IAE/B,IAAIA,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEyB,cAAc,IAAI1C,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE2C,EAAE,EACxCC,QAAQ,CAACC,QAAQ,CAACC,IAAI,MAAAC,MAAA,CAAMC,OAAO,CAACC,GAAG,CAACC,YAAY,OAAAH,MAAA,CAAII,0BAAmB,cAAAJ,MAAA,CAAW/C,IAAI,CAAC2C,EAAE,YAAAI,MAAA,CAASxC,QAAQ,CAAE;;IAElH;EACF,CAAC,EAAE,CAACU,UAAU,CAAC,CAAC;EAEhB,IAAAoB,gBAAS,EAAC,MAAM;IACd,IAAIe,SAAS,EAAE;MACb,MAAM;QAAEC,OAAO,EAAE;UAAEC,YAAY,GAAG,CAAC;UAAEC,SAAS,GAAG;QAAE,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG1D,eAAe,IAAI,CAAC,CAAC;MACnF+C,QAAQ,CAACY,eAAe,CAACC,QAAQ,CAAC;QAAEC,GAAG,EAAEH,SAAS,IAAI9D,QAAQ,GAAG6D,YAAY,GAAG,CAAC,CAAC;QAAEK,QAAQ,EAAE;MAAS,CAAC,CAAC;MACzGzC,aAAa,CAAC,CAAC;IACjB;IACA0C,KAAK,CAAC1D,QAAQ,EAAEqB,SAAS,EAAEA,SAAS,EAAEY,IAAI,CAAC;IAC3C;EACF,CAAC,EAAE,CAAC3B,MAAM,EAAE2B,IAAI,EAAE1B,OAAO,CAAC,CAAC;EAE3B,MAAMmD,KAAK,GAAG,eAAAA,CAAO1D,QAAQ,EAAmE;IAAA,IAAjEwB,YAAY,GAAA1C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuC,SAAA,GAAAvC,SAAA,MAAGwC,MAAM,CAACE,YAAY;IAAA,IAAEmC,MAAM,GAAA7E,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuC,SAAA,GAAAvC,SAAA,MAAG0B,SAAS;IAAA,IAAEyB,IAAI,GAAAnD,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAuC,SAAA;IACzF,IAAIhC,QAAQ,EAAE;IAEd+B,WAAW,CAAC,IAAI,CAAC;IACjBY,gBAAgB,CAAC,CAAC;IAClB,MAAM4B,UAAU,GAAG;MAAE,GAAGD,MAAM;MAAE7D,IAAI;MAAE0B,YAAY;MAAExB,QAAQ;MAAEM,MAAM;MAAEC;IAAQ,CAAC;IAC/E,IAAI0B,IAAI,KAAKZ,SAAS,EAAEuC,UAAU,CAACC,OAAO,GAAG,IAAAC,wBAAc,EAAC,CAAC5D,UAAU,CAAC+B,IAAI,CAAC,CAAC,CAAC;IAE/E,IAAI,CAACiB,SAAS,IAAKA,SAAS,IAAIjB,IAAI,KAAKZ,SAAU,EAAE;MACnDL,aAAa,CAAC,MAAM+C,sBAAY,CAACnG,GAAG,CAACgG,UAAU,CAAC,CAACI,KAAK,CAAChC,gBAAgB,CAAC,CAAC;IAC3E,CAAC,MAAM,IAAIkB,SAAS,IAAIjB,IAAI,KAAKZ,SAAS,EAAE;MAC1Ca,OAAO,CAAC,CAAC,CAAC;IACZ;IACAd,WAAW,CAAC,KAAK,CAAC;EACpB,CAAC;EAED,MAAM6C,oBAAoB,GAAG,MAAOC,YAAY,IAAK;IACnD,MAAMR,KAAK,CAACQ,YAAY,EAAE7C,SAAS,EAAEA,SAAS,EAAEY,IAAI,CAAC;IACrDtB,OAAO,CAAC,EAAE,CAAC;IACXnC,GAAG,CAAC;MAAEwB,QAAQ,EAAEkE;IAAa,CAAC,CAAC;EACjC,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAOC,UAAU,IAAK;IAC/C7C,SAAS,CAAC6C,UAAU,CAAC;IACrB,IAAIA,UAAU,CAAC5C,YAAY,KAAKF,MAAM,CAACE,YAAY,EACjD,MAAMkC,KAAK,CAAC1D,QAAQ,EAAEoE,UAAU,CAAC5C,YAAY,EAAEH,SAAS,EAAEY,IAAI,CAAC;EACnE,CAAC;EAED,MAAMoC,YAAY,GAAIC,KAAK,IAAK;IAC9B,MAAMC,QAAQ,GAAG,CAAC,GAAG7D,IAAI,CAAC;IAC1B6D,QAAQ,CAACtC,IAAI,IAAI,CAAC,CAAC,GAAGqC,KAAK;IAE3B3D,OAAO,CAAC4D,QAAQ,CAAC;IACjBrD,SAAS,CAAC,CAAC;IAEX,IAAI,CAACgC,SAAS,IAAI,CAAC,CAACoB,KAAK,EAAEE,YAAY,CAACD,QAAQ,CAAC;IACjD,IAAIrB,SAAS,IAAIoB,KAAK,IAAIrC,IAAI,GAAG/B,UAAU,CAACnB,MAAM,GAAG,CAAC,EAAE,OAAOmD,OAAO,CAACD,IAAI,GAAG,CAAC,CAAC;EAClF,CAAC;EAED,MAAMwC,kBAAkB,GAAIC,MAAM,IAAK;IACrC5D,UAAU,CAAC,IAAI,CAAC;IAChBE,aAAa,CAACK,SAAS,CAAC;IACxB,MAAMsC,MAAM,GAAG,IAAAgB,wBAAe,EAAC;MAAE,GAAGnE,SAAS;MAAE,GAAGkE,MAAM;MAAE1E,QAAQ;MAAEM,MAAM;MAAEF;IAAM,CAAC,CAAC;IAEpFwE,OAAO,CAACC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAAC,qBAAW,EAACnB,MAAM,CAAC,CAAC;IACjD;IACAhD,OAAO,CAAC,EAAE,CAAC;IACXuB,OAAO,CAACb,SAAS,CAAC;IAClBqC,KAAK,CAAC1D,QAAQ,EAAEsB,MAAM,CAACE,YAAY,EAAEmC,MAAM,CAAC;EAC9C,CAAC;EAED,MAAMa,YAAY,GAAI9D,IAAI,IAAK;IAC7B;IACAqE,UAAU,CAAC,YAAY;MACrB;MACA;MACAC,cAAc,CAACtE,IAAI,EAAEO,MAAM,CAAC;IAC9B,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAED,MAAM+D,cAAc,GAAG,SAAAA,CAAA,EAA4B;IAAA,IAA3BtE,IAAI,GAAA5B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuC,SAAA,GAAAvC,SAAA,MAAG,EAAE;IAAA,IAAEmC,MAAM,GAAAnC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuC,SAAA,GAAAvC,SAAA,MAAG,EAAE;IAC5C,MAAM;MAAE0C;IAAa,CAAC,GAAGF,MAAM;IAC/BoB,QAAQ,CAACC,QAAQ,CAACC,IAAI,GAAG,IAAAqC,wBAAe,EAAC;MAAEvE,IAAI;MAAEc,YAAY;MAAExB,QAAQ;MAAEiB,MAAM;MAAEd,SAAS;MAAEK;IAAU,CAAC,CAAC;EAC1G,CAAC;EAED,MAAM0C,SAAS,GAAG,CAAAhD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnB,MAAM,IAAG,CAAC;EACxC,MAAMmG,QAAQ,GAAGnE,UAAU,KAAKM,SAAS;EACzC,MAAM8D,iBAAiB,GAAG;IAAEzE,IAAI;IAAER,UAAU;IAAE+B,IAAI;IAAEmD,OAAO,EAAElD;EAAQ,CAAC;EAEtE,oBACE5F,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAA/I,MAAA,CAAAoB,OAAA,CAAA4H,QAAA,qBACEhJ,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI;IAACC,GAAG,EAAE7F,eAAgB;IAAC8F,SAAS,EAAE,IAAAC,UAAM,EAAC5I,KAAK,CAACmD,MAAM,EAAE,CAACiD,SAAS,IAAIpG,KAAK,CAAC6I,MAAM;EAAE,gBACtFrJ,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAACnI,OAAA,CAAA0I,MAAM;IACLC,QAAQ,EAAE,KAAM;IAChBhF,OAAO,EAAEA,OAAQ;IACjBiF,IAAI,EAAErG,SAAS,CAACsG,YAAI,CAACC,aAAa,CAAE;IACpCC,QAAQ,EAAEA,CAAA,KAAMnF,UAAU,CAAC,KAAK,CAAE;IAClCoF,QAAQ,EAAEzB;EAAmB,CAC9B,CACG,CAAC,eAEPnI,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAAgK,QAAQ;IAACC,aAAa;IAACC,OAAO,EAAElF,QAAQ,IAAI,CAACY,aAAc;IAAC0D,SAAS,EAAE3I,KAAK,CAACwJ;EAAS,CAAE,CAAC,EAEzF/G,QAAQ,iBAAIjD,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAACtI,OAAA,CAAAwJ,YAAY,EAAKpB,iBAAoB,CAAC,eAEpD7I,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI,EAAA7G,QAAA,KAAKY,MAAM;IAAEkH,IAAI,EAAC,OAAO;IAACf,SAAS,EAAE,IAAAC,UAAM,EAAC5I,KAAK,CAAC2J,SAAS,EAAEnH,MAAM,CAACmG,SAAS;EAAE,iBAClFnJ,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI;IAACE,SAAS,EAAE,CAAC3I,KAAK,CAAC4J,OAAO,EAAE5J,KAAK,CAAC6J,OAAO;EAAE,GAC7CzB,QAAQ,iBACP5I,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAACzI,OAAA,CAAAgK,MAAM;IACC7F,UAAU;IAAEb,UAAU;IAC5BL,KAAK,EAAEyB,MAAO;IACduF,QAAQ,EAAE1C,kBAAmB;IAC7B2C,UAAU,EAAE7C,oBAAqB;IACjCwB,SAAS,EAAEvC,SAAS,GAAGpG,KAAK,CAAC6I,MAAM,GAAGtE;EAAU,GAE/C,CAAC9B,QAAQ,iBAAIjD,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAACtI,OAAA,CAAAwJ,YAAY,EAAKpB,iBAAoB,CAC9C,CACT,EAEAD,QAAQ,gBACP5I,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAA/I,MAAA,CAAAoB,OAAA,CAAA4H,QAAA,qBACEhJ,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI;IAACwB,GAAG,EAAE,CAACxH,QAAS;IAACkG,SAAS,EAAE3I,KAAK,CAACkK;EAAM,GAC1CjG,UAAU,CAACiG,KAAK,CAACC,GAAG,CAAC,CAAAC,KAAA,EAAkBC,KAAK;IAAA,IAAtB;MAAE1E,EAAE;MAAE,GAAG2E;IAAK,CAAC,GAAAF,KAAA;IAAA,oBACpC5K,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC7I,WAAA,CAAA6K,IAAI,EAAA3I,QAAA;MACHO,GAAG,EAAEwD,EAAE,IAAI0E,KAAM;MACX1E;IAAE,GAAK2E,IAAI;MAAE9F,MAAM;MAAE4B,SAAS;MAAEoE,KAAK,EAAEvG,UAAU,CAACuG,KAAK;MAC7D5G,IAAI,EAAEA,IAAI,CAACuB,IAAI,IAAI,CAAC,CAAE;MACtBsF,UAAU,EAAEA,CAAA,KAAM7F,WAAW,CAAC0F,IAAI,CAAE;MACpCI,UAAU,EAAGC,IAAI,IAAK7F,eAAe,CAAC6F,IAAI,CAAE;MAC5CC,QAAQ,EAAErD,YAAa;MACvBsD,SAAS,EAAGC,IAAI,IAAK9F,UAAU,CAAC8F,IAAI;IAAE,EACvC,CAAC;EAAA,CACH,CACG,CACN,CAAC,GACD7F,aAAa,gBACfzF,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAA0L,YAAY;IAACC,KAAK;IAACC,KAAK;EAAA,gBACvBzL,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAClJ,GAAA,CAAA6L,IAAI;IAACC,KAAK,EAAC,QAAQ;IAACC,QAAQ,EAAE;EAAM,GAClCC,IAAI,CAACC,SAAS,CAACrG,aAAa,CACzB,CACM,CAAC,gBAEfzF,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAACrI,OAAA,CAAAU,OAAQ,MAAE,CAET,CAAC,EAENwF,SAAS,iBAAI5G,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC1I,OAAA,CAAA0L,MAAM;IAAO3H,IAAI;IAAEK,UAAU;IAAEE,MAAM;IAAEf,UAAU;IAAIgG,QAAQ,EAAEA,CAAA,KAAM1B,YAAY,CAAC9D,IAAI;EAAE,CAAE,CACrG,CAAC,EAENwE,QAAQ,iBACP5I,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAA/I,MAAA,CAAAoB,OAAA,CAAA4H,QAAA,qBACEhJ,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC7I,WAAA,CAAA8L,aAAa,EAAA5J,QAAA,KAAK+C,QAAQ;IAAE4E,OAAO,EAAE,CAAC,CAAC5E,QAAS;IAAC8G,OAAO,EAAEA,CAAA,KAAM7G,WAAW,CAAC;EAAE,EAAE,CAAC,eAClFpF,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC7I,WAAA,CAAAgM,iBAAiB,EAAA9J,QAAA,KAAKiD,YAAY;IAAE0E,OAAO,EAAE,CAAC,CAAC1E,YAAa;IAAC4G,OAAO,EAAEA,CAAA,KAAM3G,eAAe,CAAC;EAAE,EAAE,CAAC,eAClGtF,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC7I,WAAA,CAAAiM,YAAY,EAAA/J,QAAA,KAAKmD,OAAO;IAAEwE,OAAO,EAAE,CAAC,CAACxE,OAAQ;IAAC0G,OAAO,EAAEA,CAAA,KAAMzG,UAAU,CAAC;EAAE,EAAE,CAAC,eAC9ExF,MAAA,CAAAoB,OAAA,CAAA2H,aAAA,CAAC7I,WAAA,CAAAkM;EACC;EAAA;IACMhI,IAAI;IAAE4G,KAAK,EAAEvG,UAAU,CAACuG,KAAK;IACnCjB,OAAO,EAAE,CAAC,CAACpF,MAAO;IAClB0H,QAAQ,EAAEA,CAAA,KAAOzF,SAAS,GAAGhC,SAAS,CAAC,CAAC,GAAGmD,YAAY,CAAC,CAAG;IAC3D6B,QAAQ,EAAGjF,MAAM,IAAK+D,cAAc,CAACtE,IAAI,EAAEO,MAAM;EAAE,CACpD,CACD,CAEJ,CAAC;AAEP,CAAC;AAAC2H,OAAA,CAAAzJ,KAAA,GAAAA,KAAA;AAEFA,KAAK,CAAC0J,SAAS,GAAG;EAChBxJ,QAAQ,EAAEyJ,kBAAS,CAACC;AACtB,CAAC"}
|
|
@@ -93,21 +93,23 @@ body {
|
|
|
93
93
|
color: transparent;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
.header .tooltip {
|
|
97
|
+
max-width: calc(var(--mirai-ui-breakpoint-S) * 0.8);
|
|
98
|
+
padding: var(--mirai-ui-space-S);
|
|
99
|
+
gap: var(--mirai-ui-space-XS);
|
|
100
|
+
}
|
|
101
|
+
|
|
96
102
|
.header .tooltip [data-role='text'] {
|
|
97
103
|
color: var(--mirai-ui-tooltip-color);
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
.header .action {
|
|
106
|
+
.header .tooltip .action {
|
|
101
107
|
display: inline;
|
|
102
108
|
font-size: inherit;
|
|
103
109
|
pointer-events: auto;
|
|
104
110
|
overflow: auto;
|
|
105
111
|
}
|
|
106
112
|
|
|
107
|
-
.header .action:hover {
|
|
108
|
-
color: var(--mirai-ui-tooltip-color);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
113
|
.tag {
|
|
112
114
|
align-items: center;
|
|
113
115
|
background-color: var(--mirai-ui-base);
|
|
@@ -120,7 +122,8 @@ body {
|
|
|
120
122
|
padding-right: var(--mirai-ui-input-text-padding-x);
|
|
121
123
|
}
|
|
122
124
|
|
|
123
|
-
.tag > [data-role]
|
|
125
|
+
.tag > [data-role],
|
|
126
|
+
.tag > * > [data-role] {
|
|
124
127
|
color: var(--mirai-ui-content-light);
|
|
125
128
|
}
|
|
126
129
|
|
|
@@ -128,7 +131,7 @@ body {
|
|
|
128
131
|
background-color: var(--mirai-ui-accent);
|
|
129
132
|
}
|
|
130
133
|
|
|
131
|
-
.tag.active
|
|
134
|
+
.tag.active [data-role] {
|
|
132
135
|
color: var(--mirai-ui-base);
|
|
133
136
|
}
|
|
134
137
|
|
|
@@ -141,10 +144,15 @@ body {
|
|
|
141
144
|
border-color: var(--mirai-ui-accent);
|
|
142
145
|
}
|
|
143
146
|
|
|
144
|
-
.tag.highlight > [data-role]
|
|
147
|
+
.tag.highlight > [data-role],
|
|
148
|
+
.tag.highlight > * > [data-role] {
|
|
145
149
|
color: var(--mirai-ui-accent);
|
|
146
150
|
}
|
|
147
151
|
|
|
152
|
+
.tag.clubDiscount > * {
|
|
153
|
+
gap: var(--mirai-ui-space-XS);
|
|
154
|
+
}
|
|
155
|
+
|
|
148
156
|
.tag.room {
|
|
149
157
|
min-width: fit-content;
|
|
150
158
|
}
|
|
@@ -190,10 +198,13 @@ body {
|
|
|
190
198
|
}
|
|
191
199
|
|
|
192
200
|
.cartItem .room {
|
|
201
|
+
align-items: center;
|
|
193
202
|
background-color: var(--mirai-ui-content-border);
|
|
194
203
|
border-radius: calc(var(--mirai-ui-border-radius) / 2);
|
|
204
|
+
gap: calc(var(--mirai-ui-space-XS) / 2);
|
|
195
205
|
height: var(--mirai-ui-space-L);
|
|
196
206
|
line-height: var(--mirai-ui-space-L);
|
|
207
|
+
min-width: var(--mirai-ui-space-XL);
|
|
197
208
|
padding: 0 var(--mirai-ui-space-XS);
|
|
198
209
|
}
|
|
199
210
|
|
|
@@ -269,6 +280,20 @@ body {
|
|
|
269
280
|
}
|
|
270
281
|
}
|
|
271
282
|
|
|
283
|
+
/* M */
|
|
284
|
+
@media only screen and (min-width: 431px) and (max-width: 1179px) {
|
|
285
|
+
.items > * {
|
|
286
|
+
flex-basis: calc(50% - calc(var(--mirai-ui-space-M) / 2));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/* L */
|
|
291
|
+
@media only screen and (min-width: 1180px) {
|
|
292
|
+
.items > * {
|
|
293
|
+
flex-basis: calc(33.33% - calc(calc(var(--mirai-ui-space-M) * 2) / 3));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
272
297
|
/* M & L */
|
|
273
298
|
@media only screen and (min-width: 431px) {
|
|
274
299
|
.container {
|
|
@@ -288,7 +313,6 @@ body {
|
|
|
288
313
|
|
|
289
314
|
.items > * {
|
|
290
315
|
box-sizing: border-box;
|
|
291
|
-
flex-basis: calc(33.33% - calc(calc(var(--mirai-ui-space-M) * 2) / 3));
|
|
292
316
|
}
|
|
293
317
|
|
|
294
318
|
/* -- <Footer> ---------------------------------------------------------------------------------------------------- */
|
|
@@ -303,8 +327,4 @@ body {
|
|
|
303
327
|
.footer .summary {
|
|
304
328
|
padding: var(--mirai-ui-space-M) 0;
|
|
305
329
|
}
|
|
306
|
-
|
|
307
|
-
.footer .buttons {
|
|
308
|
-
gap: var(--mirai-ui-space-M);
|
|
309
|
-
}
|
|
310
330
|
}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Preview = void 0;
|
|
7
|
+
var _dataSources = require("@mirai/data-sources");
|
|
7
8
|
var _locale = require("@mirai/locale");
|
|
8
9
|
var _ui = require("@mirai/ui");
|
|
9
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -18,6 +19,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
19
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
20
|
const Preview = _ref => {
|
|
20
21
|
let {
|
|
22
|
+
availability = 0,
|
|
21
23
|
cancellations = [],
|
|
22
24
|
images = [],
|
|
23
25
|
media: {
|
|
@@ -39,11 +41,18 @@ const Preview = _ref => {
|
|
|
39
41
|
translate
|
|
40
42
|
} = (0, _locale.useLocale)();
|
|
41
43
|
const ref = (0, _react.useRef)(null);
|
|
44
|
+
const {
|
|
45
|
+
value: {
|
|
46
|
+
hotel: {
|
|
47
|
+
warningAvailability = 9999
|
|
48
|
+
}
|
|
49
|
+
} = {}
|
|
50
|
+
} = (0, _dataSources.useStore)();
|
|
42
51
|
const [sliderIndex, setSliderIndex] = (0, _react.useState)(0);
|
|
43
|
-
const [sliderWidth, setSliderWidth] = (0, _react.useState)(
|
|
52
|
+
const [sliderWidth, setSliderWidth] = (0, _react.useState)(360);
|
|
44
53
|
(0, _react.useEffect)(() => {
|
|
45
54
|
var _ref$current;
|
|
46
|
-
if (ref.current) setSliderWidth((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth);
|
|
55
|
+
if (ref.current) setSliderWidth(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.clientWidth) - 2);
|
|
47
56
|
}, [width]);
|
|
48
57
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
49
58
|
ref: ref
|
|
@@ -92,10 +101,15 @@ const Preview = _ref => {
|
|
|
92
101
|
level: 2,
|
|
93
102
|
value: _helpers.ICON.THREE_D
|
|
94
103
|
})))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
row: true,
|
|
105
|
+
className: [style.offset, style.spaceBetween, style.anchor]
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_components.Features, others), availability <= warningAvailability && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
107
|
+
bold: true,
|
|
108
|
+
small: true,
|
|
109
|
+
className: style.availability
|
|
110
|
+
}, translate(_Item.L10N.LABEL_REMAINING_ITEMS, {
|
|
111
|
+
amount: availability
|
|
112
|
+
}))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
99
113
|
className: [style.offset, style.gap, style.anchor]
|
|
100
114
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
101
115
|
bold: true,
|
|
@@ -125,6 +139,7 @@ const Preview = _ref => {
|
|
|
125
139
|
exports.Preview = Preview;
|
|
126
140
|
Preview.displayName = 'Mirai:Core:Rates:Item.Preview';
|
|
127
141
|
Preview.propTypes = {
|
|
142
|
+
availability: _propTypes.default.number,
|
|
128
143
|
cancellations: _propTypes.default.arrayOf(_propTypes.default.any),
|
|
129
144
|
images: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
130
145
|
alt: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.Preview.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_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","Preview","_ref","cancellations","images","media","url3D","urlVideo","name","title","selectedBoard","onMoreInfo","onRateInfo","onViewUrl","others","isMobile","width","useDevice","translate","useLocale","ref","useRef","sliderIndex","setSliderIndex","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","createElement","View","className","slider","Slider","height","map","_ref2","large","onChange","row","buttons","Button","rounded","squared","tooltip","L10N","LABEL_VIEW_VIDEO","transparent","onPress","url","button","Icon","headline","level","value","ICON","PLAY","LABEL_3D_VIEW","THREE_D","offset","anchor","Features","_box","gap","Text","bold","Amenities","highlight","preview","Pressable","cancellation","action","INFO","caption","small","Action","inline","concat","ACTION_MORE_INFO","exports","displayName","propTypes","PropTypes","arrayOf","any","shape","alt","string","thumbnail","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Pressable, Slider, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useEffect, useState } from 'react';\n\nimport { Amenities, Features } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nconst Preview = ({\n cancellations = [],\n images = [],\n media: { url3D, urlVideo } = {},\n name: title,\n selectedBoard = {},\n onMoreInfo,\n onRateInfo,\n onViewUrl = () => {},\n ...others\n}) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [sliderWidth, setSliderWidth] = useState(320);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth);\n }, [width]);\n\n return (\n <View ref={ref}>\n <View className={style.slider}>\n <Slider\n height={210}\n images={images.map(({ large }) => large)}\n width={sliderWidth}\n onChange={setSliderIndex}\n className={style.slider}\n />\n\n {(url3D || urlVideo) && sliderIndex === 0 && (\n <View row className={style.buttons}>\n {urlVideo && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_VIEW_VIDEO)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_VIEW_VIDEO), url: urlVideo })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.PLAY} />\n </Button>\n )}\n\n {url3D && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_3D_VIEW)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_3D_VIEW), url: url3D })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.THREE_D} />\n </Button>\n )}\n </View>\n )}\n </View>\n\n <View className={[style.offset, style.anchor]}>\n <Features _box {...others} />\n </View>\n\n <View className={[style.offset, style.gap, style.anchor]}>\n <Text bold headline={!isMobile} level={3}>\n {title}\n </Text>\n\n <Amenities highlight preview {...others} />\n\n {cancellations.length === 1 && (\n <View>\n <Pressable\n onPress={() => onRateInfo({ ...selectedBoard, cancellation: cancellations[0] })}\n className={style.row}\n >\n <Text action>{cancellations[0].name}</Text>\n <Icon value={ICON.INFO} />\n </Pressable>\n {cancellations[0].caption && <Text small>{cancellations[0].caption}</Text>}\n </View>\n )}\n\n <Action inline small={isMobile} onPress={onMoreInfo}>\n {`${translate(L10N.ACTION_MORE_INFO)} >`}\n </Action>\n </View>\n </View>\n );\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item.Preview';\n\nPreview.propTypes = {\n cancellations: PropTypes.arrayOf(PropTypes.any),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n selectedBoard: PropTypes.shape({}),\n onMoreInfo: PropTypes.func,\n onRateInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nexport { Preview };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Item.Preview.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_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","Preview","_ref","availability","cancellations","images","media","url3D","urlVideo","name","title","selectedBoard","onMoreInfo","onRateInfo","onViewUrl","others","isMobile","width","useDevice","translate","useLocale","ref","useRef","value","hotel","warningAvailability","useStore","sliderIndex","setSliderIndex","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","createElement","View","className","slider","Slider","height","map","_ref2","large","onChange","row","buttons","Button","rounded","squared","tooltip","L10N","LABEL_VIEW_VIDEO","transparent","onPress","url","button","Icon","headline","level","ICON","PLAY","LABEL_3D_VIEW","THREE_D","offset","spaceBetween","anchor","Features","Text","bold","small","LABEL_REMAINING_ITEMS","amount","gap","Amenities","highlight","preview","Pressable","cancellation","action","INFO","caption","Action","inline","concat","ACTION_MORE_INFO","exports","displayName","propTypes","PropTypes","number","arrayOf","any","shape","alt","string","thumbnail","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Preview.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Pressable, Slider, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useEffect, useState } from 'react';\n\nimport { Amenities, Features } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\n\nconst Preview = ({\n availability = 0,\n cancellations = [],\n images = [],\n media: { url3D, urlVideo } = {},\n name: title,\n selectedBoard = {},\n onMoreInfo,\n onRateInfo,\n onViewUrl = () => {},\n ...others\n}) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const ref = useRef(null);\n const { value: { hotel: { warningAvailability = 9999 } } = {} } = useStore();\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [sliderWidth, setSliderWidth] = useState(360);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 2);\n }, [width]);\n\n return (\n <View ref={ref}>\n <View className={style.slider}>\n <Slider\n height={210}\n images={images.map(({ large }) => large)}\n width={sliderWidth}\n onChange={setSliderIndex}\n className={style.slider}\n />\n\n {(url3D || urlVideo) && sliderIndex === 0 && (\n <View row className={style.buttons}>\n {urlVideo && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_VIEW_VIDEO)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_VIEW_VIDEO), url: urlVideo })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.PLAY} />\n </Button>\n )}\n\n {url3D && (\n <Button\n rounded\n squared\n tooltip={translate(L10N.LABEL_3D_VIEW)}\n transparent\n onPress={() => onViewUrl({ title: translate(L10N.LABEL_3D_VIEW), url: url3D })}\n className={style.button}\n >\n <Icon headline level={2} value={ICON.THREE_D} />\n </Button>\n )}\n </View>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.anchor]}>\n <Features {...others} />\n\n {availability <= warningAvailability && (\n <Text bold small className={style.availability}>\n {translate(L10N.LABEL_REMAINING_ITEMS, { amount: availability })}\n </Text>\n )}\n </View>\n\n <View className={[style.offset, style.gap, style.anchor]}>\n <Text bold headline={!isMobile} level={3}>\n {title}\n </Text>\n\n <Amenities highlight preview {...others} />\n\n {cancellations.length === 1 && (\n <View>\n <Pressable\n onPress={() => onRateInfo({ ...selectedBoard, cancellation: cancellations[0] })}\n className={style.row}\n >\n <Text action>{cancellations[0].name}</Text>\n <Icon value={ICON.INFO} />\n </Pressable>\n {cancellations[0].caption && <Text small>{cancellations[0].caption}</Text>}\n </View>\n )}\n\n <Action inline small={isMobile} onPress={onMoreInfo}>\n {`${translate(L10N.ACTION_MORE_INFO)} >`}\n </Action>\n </View>\n </View>\n );\n};\n\nPreview.displayName = 'Mirai:Core:Rates:Item.Preview';\n\nPreview.propTypes = {\n availability: PropTypes.number,\n cancellations: PropTypes.arrayOf(PropTypes.any),\n images: PropTypes.arrayOf(\n PropTypes.shape({\n alt: PropTypes.string,\n large: PropTypes.string,\n thumbnail: PropTypes.string,\n }),\n ),\n media: PropTypes.shape({\n url3D: PropTypes.string,\n urlVideo: PropTypes.string,\n }),\n name: PropTypes.string,\n selectedBoard: PropTypes.shape({}),\n onMoreInfo: PropTypes.func,\n onRateInfo: PropTypes.func,\n onViewUrl: PropTypes.func,\n};\n\nexport { Preview };\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var _dataSources = require("@mirai/data-sources");
|
|
|
8
8
|
var _locale = require("@mirai/locale");
|
|
9
9
|
var _ui = require("@mirai/ui");
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _react =
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _components = require("./components");
|
|
13
13
|
var _Item = require("./Item.l10n");
|
|
14
14
|
var style = _interopRequireWildcard(require("./Item.module.css"));
|
|
@@ -19,13 +19,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
20
20
|
const Summary = _ref => {
|
|
21
21
|
let {
|
|
22
|
-
availability = 0,
|
|
23
22
|
multiRoom = false,
|
|
24
23
|
name: roomName,
|
|
25
24
|
selected = {},
|
|
26
25
|
selectedBoard = {},
|
|
27
26
|
taxes,
|
|
28
|
-
|
|
27
|
+
onSelect
|
|
29
28
|
} = _ref;
|
|
30
29
|
const {
|
|
31
30
|
isMobile
|
|
@@ -35,12 +34,11 @@ const Summary = _ref => {
|
|
|
35
34
|
} = (0, _locale.useLocale)();
|
|
36
35
|
const {
|
|
37
36
|
value: {
|
|
38
|
-
currency
|
|
39
|
-
hotel: {
|
|
40
|
-
warningAvailability = 9999
|
|
41
|
-
}
|
|
37
|
+
currency
|
|
42
38
|
} = {}
|
|
43
39
|
} = (0, _dataSources.useStore)();
|
|
40
|
+
const [busy, setBusy] = (0, _react.useState)(false);
|
|
41
|
+
(0, _react.useEffect)(() => Object.keys(selected).length === 0 && setBusy(false), [selected]);
|
|
44
42
|
const {
|
|
45
43
|
basePrice,
|
|
46
44
|
cancellationId,
|
|
@@ -57,7 +55,8 @@ const Summary = _ref => {
|
|
|
57
55
|
} = selectedBoard;
|
|
58
56
|
const isSelected = selected.id === id;
|
|
59
57
|
const handlePress = () => {
|
|
60
|
-
|
|
58
|
+
if (!multiRoom) setBusy(true);
|
|
59
|
+
onSelect(!isSelected ? {
|
|
61
60
|
basePrice,
|
|
62
61
|
cancellationId,
|
|
63
62
|
id,
|
|
@@ -75,23 +74,15 @@ const Summary = _ref => {
|
|
|
75
74
|
});
|
|
76
75
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
77
76
|
className: [style.offset, style.summary]
|
|
78
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
79
|
-
row: true,
|
|
80
|
-
className: style.spaceBetween
|
|
81
77
|
}, discountPercentage > 0 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
78
|
+
accent: true,
|
|
82
79
|
bold: true,
|
|
83
|
-
small: true
|
|
84
|
-
className: style.discount
|
|
80
|
+
small: true
|
|
85
81
|
}, hasDiscountClub && "".concat(translate(_Item.L10N.LABEL_CLUB_MEMBERS), " "), translate(_Item.L10N.LABEL_DISCOUNT, {
|
|
86
82
|
value: "".concat(discountPercentage, "%")
|
|
87
|
-
})),
|
|
88
|
-
small: true,
|
|
89
|
-
className: style.availability
|
|
90
|
-
}, translate(_Item.L10N.LABEL_REMAINING_ITEMS, {
|
|
91
|
-
amount: availability
|
|
92
|
-
}))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
83
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
93
84
|
row: true,
|
|
94
|
-
className:
|
|
85
|
+
className: [style.gap, style.content]
|
|
95
86
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
96
87
|
row: true,
|
|
97
88
|
className: style.price
|
|
@@ -119,23 +110,26 @@ const Summary = _ref => {
|
|
|
119
110
|
lighten: true,
|
|
120
111
|
small: !isMobile,
|
|
121
112
|
tiny: isMobile
|
|
122
|
-
}, translate(taxes ? _Item.L10N.LABEL_EXCLUDES_TAXES_FEES : _Item.L10N.LABEL_INCLUDES_TAXES_FEES)), discountPercentage > 0 && /*#__PURE__*/_react.default.createElement(_components.
|
|
113
|
+
}, translate(taxes ? _Item.L10N.LABEL_EXCLUDES_TAXES_FEES : _Item.L10N.LABEL_INCLUDES_TAXES_FEES)), discountPercentage > 0 && /*#__PURE__*/_react.default.createElement(_components.PriceDetails, _extends({}, selectedBoard, {
|
|
114
|
+
taxes,
|
|
123
115
|
className: style.priceDetails
|
|
124
|
-
}))), /*#__PURE__*/_react.default.createElement(_ui.Button
|
|
116
|
+
}))), /*#__PURE__*/_react.default.createElement(_ui.Button
|
|
117
|
+
//
|
|
118
|
+
, {
|
|
119
|
+
busy: busy,
|
|
125
120
|
large: !isMobile,
|
|
126
|
-
secondary: isSelected,
|
|
121
|
+
secondary: multiRoom && isSelected,
|
|
127
122
|
onPress: handlePress
|
|
128
|
-
}, translate(isSelected ? _Item.L10N.LABEL_DESELECT :
|
|
123
|
+
}, translate(multiRoom ? isSelected ? _Item.L10N.LABEL_DESELECT : _Item.L10N.LABEL_SELECT : _Item.L10N.ACTION_RESERVE)))));
|
|
129
124
|
};
|
|
130
125
|
exports.Summary = Summary;
|
|
131
126
|
Summary.displayName = 'Mirai:Core:Rates:Item.Summary';
|
|
132
127
|
Summary.propTypes = {
|
|
133
|
-
availability: _propTypes.default.number,
|
|
134
128
|
multiRoom: _propTypes.default.bool,
|
|
135
129
|
name: _propTypes.default.string,
|
|
136
130
|
selected: _propTypes.default.shape({}),
|
|
137
131
|
selectedBoard: _propTypes.default.shape({}),
|
|
138
132
|
taxes: _propTypes.default.string,
|
|
139
|
-
|
|
133
|
+
onSelect: _propTypes.default.func
|
|
140
134
|
};
|
|
141
135
|
//# sourceMappingURL=Item.Summary.js.map
|