@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.
Files changed (43) hide show
  1. package/build/components/Checkout/Checkout.l10n.js +1 -1
  2. package/build/components/Checkout/Checkout.l10n.js.map +1 -1
  3. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +18 -6
  4. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Details.test.js.snap +3 -1
  5. package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Summary.test.js.snap +12 -4
  6. package/build/components/Rates/Rates.Footer.js +32 -48
  7. package/build/components/Rates/Rates.Footer.js.map +1 -1
  8. package/build/components/Rates/Rates.Header.js +8 -4
  9. package/build/components/Rates/Rates.Header.js.map +1 -1
  10. package/build/components/Rates/Rates.RoomSelector.js +0 -3
  11. package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
  12. package/build/components/Rates/Rates.Skeleton.js +6 -3
  13. package/build/components/Rates/Rates.Skeleton.js.map +1 -1
  14. package/build/components/Rates/Rates.js +53 -25
  15. package/build/components/Rates/Rates.js.map +1 -1
  16. package/build/components/Rates/Rates.module.css +33 -13
  17. package/build/components/Rates/components/Item/Item.Preview.js +21 -6
  18. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  19. package/build/components/Rates/components/Item/Item.Summary.js +20 -26
  20. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
  21. package/build/components/Rates/components/Item/Item.module.css +9 -15
  22. package/build/components/Rates/components/Item/components/Features/Features.js +15 -18
  23. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  24. package/build/components/Rates/components/Item/components/Features/Features.module.css +0 -6
  25. package/build/components/Rates/components/Item/components/{Discount/Discount.js → PriceDetails/PriceDetails.js} +23 -18
  26. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -0
  27. package/build/components/Rates/components/Item/components/{Discount/Discount.module.css → PriceDetails/PriceDetails.module.css} +5 -6
  28. package/build/components/Rates/components/Item/components/PriceDetails/index.js +17 -0
  29. package/build/components/Rates/components/Item/components/PriceDetails/index.js.map +1 -0
  30. package/build/components/Rates/components/Item/components/index.js +11 -11
  31. package/build/components/Rates/components/Item/components/index.js.map +1 -1
  32. package/build/components/Rates/components/ModalExtras/ModalExtras.js +176 -0
  33. package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -0
  34. package/build/components/Rates/components/ModalExtras/ModalExtras.l10n.js +18 -0
  35. package/build/components/Rates/components/ModalExtras/ModalExtras.l10n.js.map +1 -0
  36. package/build/components/Rates/components/ModalExtras/ModalExtras.module.css +74 -0
  37. package/build/components/Rates/components/{Item/components/Discount → ModalExtras}/index.js +4 -4
  38. package/build/components/Rates/components/ModalExtras/index.js.map +1 -0
  39. package/build/components/Rates/components/index.js +11 -0
  40. package/build/components/Rates/components/index.js.map +1 -1
  41. package/package.json +1 -1
  42. package/build/components/Rates/components/Item/components/Discount/Discount.js.map +0 -1
  43. 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
- if (room == undefined && occupation.length > 1) setRoom(0);
82
+
89
83
  // eslint-disable-next-line react-hooks/exhaustive-deps
90
84
  }, [dataSource]);
91
85
  (0, _react.useEffect)(() => {
92
- if (multiRoom && room > 0) {
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
- setDataSource(await _services.ServiceRates.get(nextParams).catch(setResponseError));
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
- filter,
226
- multiRoom,
246
+ extras,
227
247
  occupation,
228
- onChange: handleChange
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":"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"}
@@ -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 > [data-role] {
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)(320);
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
- className: [style.offset, style.anchor]
96
- }, /*#__PURE__*/_react.default.createElement(_components.Features, _extends({
97
- _box: true
98
- }, others))), /*#__PURE__*/_react.default.createElement(_ui.View, {
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 = _interopRequireDefault(require("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
- onChange
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
- onChange(!isSelected ? {
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
- })), availability <= warningAvailability && /*#__PURE__*/_react.default.createElement(_ui.Text, {
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: (style.gap, style.content)
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.Discount, _extends({}, selectedBoard, {
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 : multiRoom ? _Item.L10N.LABEL_SELECT : _Item.L10N.LABEL_SELECT)))));
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
- onChange: _propTypes.default.func
133
+ onSelect: _propTypes.default.func
140
134
  };
141
135
  //# sourceMappingURL=Item.Summary.js.map