@mirai/core 0.3.65 → 0.3.67

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/Core.js +4 -0
  2. package/build/Core.js.map +1 -1
  3. package/build/components/Deals/Deals.js +4 -4
  4. package/build/components/Deals/Deals.js.map +1 -1
  5. package/build/components/Deals/Deals.module.css +6 -0
  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 +22 -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
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.Skeleton.js","names":["_ui","require","_react","_interopRequireDefault","_shared__","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_default","isMobile","useDevice","props","color","section","borderBottom","gap","padding","field","wide","style","action","height","createElement","Fragment","View","row","justifyContent","Skeleton","alignItems","flexWrap","Array","from","map","_","index","boxSizing","flex","flexBasis","overflow","borderRadius","headline","level","small","width","exports"],"sources":["../../../src/components/Rates/Rates.Skeleton.jsx"],"sourcesContent":["import { useDevice, View } from '@mirai/ui';\nimport React from 'react';\n\nimport { Skeleton } from '../__shared__';\n\nexport default () => {\n const { isMobile } = useDevice();\n\n const props = { color: 'base' };\n const section = { borderBottom: 'solid 1px var(--mirai-ui-content-background)', gap: '0.5rem', padding: '1rem' };\n const field = { wide: true, style: { action: true, height: '3.5rem', padding: '0 0.5rem' } };\n\n return (\n <>\n <View row={!isMobile} style={{ gap: '1rem', justifyContent: 'space-between', padding: '1rem 0' }}>\n <View />\n\n <View row style={{ gap: '1rem' }}>\n <Skeleton {...props} {...field}>\n {!isMobile ? 'Club discount (info)' : null}\n </Skeleton>\n {!isMobile && (\n <Skeleton {...props} {...field}>\n Euro\n </Skeleton>\n )}\n </View>\n </View>\n\n <View row style={{ alignItems: 'stretch', flexWrap: 'wrap', gap: '1rem', justifyContent: 'space-between' }}>\n {Array.from({ length: isMobile ? 1 : 3 }).map((_, index) => (\n <Skeleton\n key={index}\n {...props}\n style={{\n boxSizing: 'border-box',\n flex: 1,\n flexBasis: `calc(33.33% - calc(calc(var(--mirai-ui-space-M) * 2) / 3))`,\n overflow: 'hidden',\n }}\n >\n <Skeleton color=\"border\" style={{ borderRadius: 0, height: '13rem' }} />\n\n <View style={{ height: '42rem' }}>\n <View style={{ ...section }}>\n <Skeleton style={{ height: '3rem' }} />\n <Skeleton headline level={2}>\n Room name\n </Skeleton>\n <Skeleton action>Free wifi internet</Skeleton>\n <Skeleton action>Television</Skeleton>\n <Skeleton action>Mini-bar</Skeleton>\n <Skeleton action>Heating</Skeleton>\n <Skeleton action>More Info +</Skeleton>\n </View>\n\n <View style={{ ...section }}>\n <Skeleton action>Cancellation type</Skeleton>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Free cancelation</Skeleton>\n <Skeleton action>$0.00</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Free cancelation until apr 10</Skeleton>\n <Skeleton action>$19.95</Skeleton>\n </View>\n </View>\n\n <View style={{ ...section }}>\n <Skeleton action>Extras</Skeleton>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Only room</Skeleton>\n <Skeleton action>$0.00</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Breakfast included</Skeleton>\n <Skeleton action>$19.95</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>All included</Skeleton>\n <Skeleton action>$39.95</Skeleton>\n </View>\n </View>\n\n <View row style={{ alignItems: 'flex-end', justifyContent: 'space-between', padding: '1rem' }}>\n <View style={{ gap: '0.5rem' }}>\n <Skeleton small>5% off</Skeleton>\n <Skeleton headline level={2}>\n $199.50\n </Skeleton>\n <Skeleton small>$19.95 per unit & night</Skeleton>\n <Skeleton small>Includes taxes and fees</Skeleton>\n <Skeleton small>Price details +</Skeleton>\n </View>\n\n <Skeleton action style={{ height: '3rem', width: '8rem' }}>\n Select\n </Skeleton>\n </View>\n </View>\n </Skeleton>\n ))}\n </View>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Rates.Skeleton.js","names":["_ui","require","_react","_interopRequireDefault","_shared__","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_default","isMobile","isDesktop","width","useDevice","isTablet","props","color","section","borderBottom","gap","padding","field","wide","style","action","height","createElement","Fragment","View","row","justifyContent","Skeleton","alignItems","flexWrap","Array","from","map","_","index","boxSizing","flex","flexBasis","undefined","overflow","borderRadius","headline","level","small","exports"],"sources":["../../../src/components/Rates/Rates.Skeleton.jsx"],"sourcesContent":["import { useDevice, View } from '@mirai/ui';\nimport React from 'react';\n\nimport { Skeleton } from '../__shared__';\n\nexport default () => {\n const { isMobile, isDesktop, width } = useDevice();\n\n const isTablet = !isMobile && width <= 1179;\n const props = { color: 'base' };\n const section = { borderBottom: 'solid 1px var(--mirai-ui-content-background)', gap: '0.5rem', padding: '1rem' };\n const field = { wide: true, style: { action: true, height: '3.5rem', padding: '0 0.5rem' } };\n\n return (\n <>\n <View row={!isMobile} style={{ gap: '1rem', justifyContent: 'space-between', padding: '1rem 0' }}>\n <View />\n\n <View row style={{ gap: '1rem' }}>\n <Skeleton {...props} {...field}>\n {!isMobile ? 'Club discount (info)' : null}\n </Skeleton>\n {!isMobile && (\n <Skeleton {...props} {...field}>\n Euro\n </Skeleton>\n )}\n </View>\n </View>\n\n <View row style={{ alignItems: 'stretch', flexWrap: 'wrap', gap: '1rem', justifyContent: 'space-between' }}>\n {Array.from({ length: isMobile ? 1 : isTablet ? 2 : 3 }).map((_, index) => (\n <Skeleton\n key={index}\n {...props}\n style={{\n boxSizing: 'border-box',\n flex: 1,\n flexBasis: isTablet\n ? 'calc(50% - calc(var(--mirai-ui-space-M) / 2))'\n : isDesktop\n ? `calc(33.33% - calc(calc(var(--mirai-ui-space-M) * 2) / 3))`\n : undefined,\n overflow: 'hidden',\n }}\n >\n <Skeleton color=\"border\" style={{ borderRadius: 0, height: '13rem' }} />\n\n <View style={{ height: '42rem' }}>\n <View style={{ ...section }}>\n <Skeleton style={{ height: '3rem' }} />\n <Skeleton headline level={2}>\n Room name\n </Skeleton>\n <Skeleton action>Free wifi internet</Skeleton>\n <Skeleton action>Television</Skeleton>\n <Skeleton action>Mini-bar</Skeleton>\n <Skeleton action>Heating</Skeleton>\n <Skeleton action>More Info +</Skeleton>\n </View>\n\n <View style={{ ...section }}>\n <Skeleton action>Cancellation type</Skeleton>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Free cancelation</Skeleton>\n <Skeleton action>$0.00</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Free cancelation until apr 10</Skeleton>\n <Skeleton action>$19.95</Skeleton>\n </View>\n </View>\n\n <View style={{ ...section }}>\n <Skeleton action>Extras</Skeleton>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Only room</Skeleton>\n <Skeleton action>$0.00</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>Breakfast included</Skeleton>\n <Skeleton action>$19.95</Skeleton>\n </View>\n <View row style={{ justifyContent: 'space-between' }}>\n <Skeleton action>All included</Skeleton>\n <Skeleton action>$39.95</Skeleton>\n </View>\n </View>\n\n <View row style={{ alignItems: 'flex-end', justifyContent: 'space-between', padding: '1rem' }}>\n <View style={{ gap: '0.5rem' }}>\n <Skeleton small>5% off</Skeleton>\n <Skeleton headline level={2}>\n $199.50\n </Skeleton>\n <Skeleton small>$19.95 per unit & night</Skeleton>\n <Skeleton small>Includes taxes and fees</Skeleton>\n <Skeleton small>Price details +</Skeleton>\n </View>\n\n <Skeleton action style={{ height: '3rem', width: '8rem' }}>\n Select\n </Skeleton>\n </View>\n </View>\n </Skeleton>\n ))}\n </View>\n </>\n );\n};\n"],"mappings":"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"}
@@ -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
@@ -59,6 +68,7 @@ const Preview = _ref => {
59
68
  }),
60
69
  width: sliderWidth,
61
70
  onChange: setSliderIndex,
71
+ onCounter: onMoreInfo,
62
72
  className: style.slider
63
73
  }), (url3D || urlVideo) && sliderIndex === 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
64
74
  row: true,
@@ -92,10 +102,15 @@ const Preview = _ref => {
92
102
  level: 2,
93
103
  value: _helpers.ICON.THREE_D
94
104
  })))), /*#__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, {
105
+ row: true,
106
+ className: [style.offset, style.spaceBetween, style.anchor]
107
+ }, /*#__PURE__*/_react.default.createElement(_components.Features, others), availability <= warningAvailability && /*#__PURE__*/_react.default.createElement(_ui.Text, {
108
+ bold: true,
109
+ small: true,
110
+ className: style.availability
111
+ }, translate(_Item.L10N.LABEL_REMAINING_ITEMS, {
112
+ amount: availability
113
+ }))), /*#__PURE__*/_react.default.createElement(_ui.View, {
99
114
  className: [style.offset, style.gap, style.anchor]
100
115
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
101
116
  bold: true,
@@ -125,6 +140,7 @@ const Preview = _ref => {
125
140
  exports.Preview = Preview;
126
141
  Preview.displayName = 'Mirai:Core:Rates:Item.Preview';
127
142
  Preview.propTypes = {
143
+ availability: _propTypes.default.number,
128
144
  cancellations: _propTypes.default.arrayOf(_propTypes.default.any),
129
145
  images: _propTypes.default.arrayOf(_propTypes.default.shape({
130
146
  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","onCounter","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 onCounter={onMoreInfo}\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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"}