@mirai/core 0.4.178 → 0.4.180

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.
@@ -23,6 +23,7 @@ var _components2 = require("../Item/components");
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ let currentCurrency;
26
27
  let memoizeForm;
27
28
  let timeoutRange;
28
29
  const Filters = _ref => {
@@ -76,7 +77,6 @@ const Filters = _ref => {
76
77
  const nextForm = memoizeForm || {
77
78
  ..._Filters4.DEFAULT_FORM,
78
79
  clubDiscount: !session && discount !== undefined ? !!discount : undefined,
79
- currency,
80
80
  offer: idoffers ? !!idoffers : undefined,
81
81
  promocode: promocode ? !!promocode : undefined,
82
82
  roomType: roomTypeId ? !!roomTypeId : undefined
@@ -86,11 +86,11 @@ const Filters = _ref => {
86
86
  // eslint-disable-next-line react-hooks/exhaustive-deps
87
87
  }, []);
88
88
  (0, _react.useEffect)(() => {
89
- if (!form.priceRange || form.currency === currency) return;
89
+ if (!form.priceRange || currentCurrency !== undefined && currentCurrency === currency) return;
90
+ currentCurrency = currency;
90
91
  const nextForm = {
91
92
  ...form,
92
- priceRange: undefined,
93
- currency
93
+ priceRange: undefined
94
94
  };
95
95
  setForm(nextForm);
96
96
  setCounter((0, _helpers.countFilters)(nextForm));
@@ -101,16 +101,29 @@ const Filters = _ref => {
101
101
  // eslint-disable-next-line react-hooks/exhaustive-deps
102
102
  }, [currency]);
103
103
  (0, _react.useEffect)(() => {
104
- const callback = clubDiscount => {
105
- const nextForm = {
106
- ...form,
107
- clubDiscount
108
- };
104
+ const setNextState = nextForm => {
109
105
  setForm(nextForm);
110
106
  setCounter((0, _helpers.countFilters)(nextForm));
111
107
  };
112
- _dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_CLUB, callback);
113
- return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_CLUB, callback);
108
+ const setClubDiscount = clubDiscount => setNextState({
109
+ ...form,
110
+ clubDiscount
111
+ });
112
+ const setClubPromocode = _ref2 => {
113
+ let {
114
+ promocode
115
+ } = _ref2;
116
+ return setNextState({
117
+ ...form,
118
+ promocode
119
+ });
120
+ };
121
+ _dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_CLUB, setClubDiscount);
122
+ _dataSources.Event.subscribe(_helpers2.EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);
123
+ return () => {
124
+ _dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_CLUB, setClubDiscount);
125
+ _dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);
126
+ };
114
127
  }, [form]);
115
128
  (0, _react.useEffect)(() => {
116
129
  if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);
@@ -321,12 +334,12 @@ const Filters = _ref => {
321
334
  }, translate(_Filters5.L10N.LABEL_ACCOMMODATION_PLAN)), /*#__PURE__*/_react.default.createElement(_ui.View, {
322
335
  row: inlineBoards,
323
336
  className: (0, _ui.styles)(style.boards, inlineBoards && style.inline)
324
- }, filters.boards.map(_ref2 => {
337
+ }, filters.boards.map(_ref3 => {
325
338
  let {
326
339
  id,
327
340
  text,
328
341
  type
329
- } = _ref2;
342
+ } = _ref3;
330
343
  return /*#__PURE__*/_react.default.createElement(_components2.Option, {
331
344
  checked: form.board === type,
332
345
  key: "board:".concat(id),
@@ -356,11 +369,11 @@ const Filters = _ref => {
356
369
  }, translate(_Filters5.L10N.LABEL_AMENITIES)), /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
357
370
  row: true,
358
371
  className: style.amenities
359
- }, filters.amenities.filter(item => item.highlight).map(_ref3 => {
372
+ }, filters.amenities.filter(item => item.highlight).map(_ref4 => {
360
373
  let {
361
374
  id,
362
375
  text
363
- } = _ref3;
376
+ } = _ref4;
364
377
  return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
365
378
  checked: form.amenities.includes(id),
366
379
  id: id,
@@ -376,11 +389,11 @@ const Filters = _ref => {
376
389
  }, translate(_Filters5.L10N.LABEL_OTHERS)), /*#__PURE__*/_react.default.createElement(_ui.View, {
377
390
  row: true,
378
391
  className: style.amenities
379
- }, filters.amenities.filter(item => !item.highlight).map(_ref4 => {
392
+ }, filters.amenities.filter(item => !item.highlight).map(_ref5 => {
380
393
  let {
381
394
  id,
382
395
  text
383
- } = _ref4;
396
+ } = _ref5;
384
397
  return /*#__PURE__*/_react.default.createElement(_Filters.Amenity, {
385
398
  checked: form.amenities.includes(id),
386
399
  id: id,
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref2","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref3","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref4","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n currency,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || form.currency === currency) return;\n\n const nextForm = { ...form, priceRange: undefined, currency };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const callback = (clubDiscount) => {\n const nextForm = { ...form, clubDiscount };\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","currentCurrency","memoizeForm","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","strictSearch","getStrictSearch","setNextState","setClubDiscount","setClubPromocode","_ref2","Event","subscribe","EVENT","RATES_FILTER_CLUB","RATES_FILTER_PROMOCODE","unsubscribe","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","SUBMIT_DELAY","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollIndicator","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","href","small","target","underline","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref3","text","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref4","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref5","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","number","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON, SUBMIT_DELAY } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet currentCurrency;\nlet memoizeForm;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId } = {},\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems, { priceFactor }));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange || (currentCurrency !== undefined && currentCurrency === currency)) return;\n\n currentCurrency = currency;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n onSubmit({ ...nextForm, strictSearch: getStrictSearch(nextForm) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const setNextState = (nextForm) => {\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n const setClubDiscount = (clubDiscount) => setNextState({ ...form, clubDiscount });\n\n const setClubPromocode = ({ promocode }) => setNextState({ ...form, promocode });\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.subscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n\n return () => {\n Event.unsubscribe(EVENT.RATES_FILTER_CLUB, setClubDiscount);\n Event.unsubscribe(EVENT.RATES_FILTER_PROMOCODE, setClubPromocode);\n };\n }, [form]);\n\n useEffect(() => {\n if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(\n () => Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value }),\n SUBMIT_DELAY / 2,\n );\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm({ ...DEFAULT_FORM, clubDiscount: false });\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.RATES_FILTER_CLUB, form.clubDiscount);\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form, { priceFactor }).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items?.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} small target=\"_blank\" underline className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={(field, value) => handleBookingOption(field, value)}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\n dataSource={filters.prices}\n resolution={isMobile || filters.prices.length <= 8 ? 6 : 10}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(value) => handleRange('priceRange', value)}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action onPress={() => setAllAmenities(true)}>{translate(L10N.ACTION_VIEW_MORE)}</Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(value) => handleRange('sizeRange', value)}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
@@ -50,8 +50,7 @@ const Rates = _ref => {
50
50
  value: {
51
51
  finder: {
52
52
  promocode
53
- } = {},
54
- id: instanceId
53
+ } = {}
55
54
  } = {}
56
55
  } = (0, _dataSources.useStore)();
57
56
  const {
@@ -202,7 +201,7 @@ const Rates = _ref => {
202
201
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
203
202
  row: true,
204
203
  className: style.tags
205
- }, instanceId !== '500140' && offerPercentage > 0 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
204
+ }, offerPercentage > 0 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
206
205
  action: !isMobile,
207
206
  medium: true,
208
207
  small: isMobile,
@@ -1 +1 @@
1
- {"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_Rates","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Rates","_ref","availableBoards","availableRates","boards","cancellations","features","columnMode","hideRadio","hideStandaloneBoard","showOffersFirst","showRateIncluded","priceFactor","promocodeForAll","rates","selectedBoard","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","id","instanceId","useStore","cancellationId","rateId","boardId","length","inlineBoards","inlineCancellations","cancellationsFiltered","filter","_ref2","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","undefined","map","_ref3","highlight","name","caption","price","cancellation","Option","key","checked","inline","outlined","onPress","medium","small","optionText","styles","tag","Pressable","Icon","paragraph","ICON","INFO","LABEL_OFFER","_ref4","countdown","description","disabled","included","restrictions","rate","find","board","arguments","confidential","discount","breakdown","isPromocode","type","DISCOUNT_TYPE","PROMOTION","DEAL","percentage","promoPercentage","offerPercentage","RateDetails","tags","LABEL_DISCOUNT","concat","Math","round","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","number","func","onChange","displayName"],"sources":["../../../../../src/components/Rates/components/Item/Item.Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Option, RateDetails, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\nimport { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n hideStandaloneBoard = false,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n priceFactor = 1,\n promocodeForAll,\n rates = [],\n selectedBoard = {},\n onBoard,\n onCancellation,\n onCancellationInfo,\n onRate,\n onOfferInfo,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n\n const { value: { finder: { promocode } = {}, id: instanceId } = {} } = useStore();\n\n const { cancellationId, rateId, id: boardId } = selectedBoard;\n\n const has = {\n cancellations: cancellations.length > 0,\n boards: boards.length > (hideStandaloneBoard ? 1 : 0),\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode ? 3 : 2),\n inlineCancellations: hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode ? 3 : 2),\n rates: availableRates.length > 0,\n };\n\n const cancellationsFiltered = cancellations.filter(\n ({ id }) => !showOffersFirst || (showOffersFirst && (id === cancellationId || !has.rates)),\n );\n\n const renderCancellations = () =>\n has.cancellations && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_CANCELLATION_POLICY)}\n </Text>\n\n {React.createElement(\n has.inlineCancellations ? View : React.Fragment,\n has.inlineCancellations ? { row: true, className: style.inlineOptions } : undefined,\n cancellationsFiltered.map(({ highlight, id, name, caption, price, ...cancellation }) => (\n <Option\n key={id}\n caption={caption}\n checked={id === cancellationId}\n inline={has.inlineCancellations}\n outlined={hideRadio}\n value={!showOffersFirst ? price / priceFactor : undefined}\n onPress={cancellationsFiltered.length > 1 ? () => onCancellation(id) : undefined}\n >\n <Text action={!isMobile} medium={highlight} small={isMobile} className={style.optionText}>\n {highlight ? (\n <Text\n action={!isMobile}\n medium={highlight}\n small={isMobile}\n className={styles(highlight && style.tag)}\n >\n {name}\n </Text>\n ) : (\n name\n )}\n\n <Pressable onPress={() => onCancellationInfo({ ...selectedBoard, cancellation })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n </Text>\n </Option>\n )),\n )}\n </View>\n );\n\n return (\n <>\n {!showOffersFirst && renderCancellations()}\n\n {has.rates && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_OFFER)}\n </Text>\n {rates.map(\n ({ id, cancellationId, countdown, description, disabled, included, name, price, restrictions }) => {\n const rate = rates.find((rate) => rate.id === id);\n const board = availableBoards.filter(({ rateId } = {}) => rateId === id)[0];\n const { confidential, discount: { breakdown = [] } = {} } = board || {};\n const isPromocode =\n promocode &&\n !promocodeForAll &&\n breakdown.find(\n ({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION || (type === DISCOUNT_TYPE.DEAL && confidential),\n );\n const { percentage: promoPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n const { percentage: offerPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.DEAL) || {};\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n included: showRateIncluded ? included : undefined,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo({ ...rate, availableBoards }),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / priceFactor}\n onPress={rates.length > 1 ? () => onRate({ id, cancellationId }) : undefined}\n >\n {rates.length > 0 && (\n <Text medium={hideRadio} action={!isMobile} small={isMobile} className={style.optionText}>\n <View row className={style.tags}>\n {instanceId !== '500140' && offerPercentage > 0 && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${Math.round(offerPercentage)}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo({ ...rate, availableBoards })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n {isPromocode && (\n <Text bold small className={styles(style.tag, style.highlight)}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) &&\n style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${Math.round(promoPercentage)}%` : ''}\n </Text>\n )}\n </Text>\n )}\n </Option>\n );\n },\n )}\n </View>\n )}\n\n {showOffersFirst && renderCancellations()}\n\n {has.boards && (\n <View className={styles(style.offset, style.gap)}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n {React.createElement(\n has.inlineBoards ? View : React.Fragment,\n has.inlineBoards ? { row: true, className: style.inlineOptions } : undefined,\n boards.map((board = {}) => {\n const { disabled, id, increment, name, variants = [] } = board;\n\n return (\n <Option\n key={id}\n checked={id === boardId}\n disabled={disabled}\n inline={has.inlineBoards}\n outlined={hideRadio}\n title={name}\n value={has.boards ? increment / priceFactor : undefined}\n onPress={boards.length > 1 ? () => onBoard(board) : undefined}\n >\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </Option>\n );\n }),\n )}\n </View>\n )}\n\n <View />\n </>\n );\n};\n\nRates.propTypes = {\n availableBoards: PropTypes.arrayOf(PropTypes.any),\n availableRates: PropTypes.arrayOf(PropTypes.any),\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n columnMode: PropTypes.bool,\n hideStandaloneBoard: PropTypes.bool,\n showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n priceFactor: PropTypes.number,\n promocodeForAll: PropTypes.bool,\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n onBoard: PropTypes.func,\n onCancellation: PropTypes.func,\n onCancellationInfo: PropTypes.func,\n onChange: PropTypes.func,\n onOfferInfo: PropTypes.func,\n onRate: PropTypes.func,\n};\n\nRates.displayName = 'Mirai:Core:Rates:Item:Rates';\n\nexport { Rates };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_Rates","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Rates","_ref","availableBoards","availableRates","boards","cancellations","features","columnMode","hideRadio","hideStandaloneBoard","showOffersFirst","showRateIncluded","priceFactor","promocodeForAll","rates","selectedBoard","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","useStore","cancellationId","rateId","id","boardId","length","inlineBoards","inlineCancellations","cancellationsFiltered","filter","_ref2","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","undefined","map","_ref3","highlight","name","caption","price","cancellation","Option","key","checked","inline","outlined","onPress","medium","small","optionText","styles","tag","Pressable","Icon","paragraph","ICON","INFO","LABEL_OFFER","_ref4","countdown","description","disabled","included","restrictions","rate","find","board","arguments","confidential","discount","breakdown","isPromocode","type","DISCOUNT_TYPE","PROMOTION","DEAL","percentage","promoPercentage","offerPercentage","RateDetails","tags","LABEL_DISCOUNT","concat","Math","round","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","number","func","onChange","displayName"],"sources":["../../../../../src/components/Rates/components/Item/Item.Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Option, RateDetails, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\nimport { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n hideStandaloneBoard = false,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n priceFactor = 1,\n promocodeForAll,\n rates = [],\n selectedBoard = {},\n onBoard,\n onCancellation,\n onCancellationInfo,\n onRate,\n onOfferInfo,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n\n const { value: { finder: { promocode } = {} } = {} } = useStore();\n\n const { cancellationId, rateId, id: boardId } = selectedBoard;\n\n const has = {\n cancellations: cancellations.length > 0,\n boards: boards.length > (hideStandaloneBoard ? 1 : 0),\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode ? 3 : 2),\n inlineCancellations: hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode ? 3 : 2),\n rates: availableRates.length > 0,\n };\n\n const cancellationsFiltered = cancellations.filter(\n ({ id }) => !showOffersFirst || (showOffersFirst && (id === cancellationId || !has.rates)),\n );\n\n const renderCancellations = () =>\n has.cancellations && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_CANCELLATION_POLICY)}\n </Text>\n\n {React.createElement(\n has.inlineCancellations ? View : React.Fragment,\n has.inlineCancellations ? { row: true, className: style.inlineOptions } : undefined,\n cancellationsFiltered.map(({ highlight, id, name, caption, price, ...cancellation }) => (\n <Option\n key={id}\n caption={caption}\n checked={id === cancellationId}\n inline={has.inlineCancellations}\n outlined={hideRadio}\n value={!showOffersFirst ? price / priceFactor : undefined}\n onPress={cancellationsFiltered.length > 1 ? () => onCancellation(id) : undefined}\n >\n <Text action={!isMobile} medium={highlight} small={isMobile} className={style.optionText}>\n {highlight ? (\n <Text\n action={!isMobile}\n medium={highlight}\n small={isMobile}\n className={styles(highlight && style.tag)}\n >\n {name}\n </Text>\n ) : (\n name\n )}\n\n <Pressable onPress={() => onCancellationInfo({ ...selectedBoard, cancellation })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n </Text>\n </Option>\n )),\n )}\n </View>\n );\n\n return (\n <>\n {!showOffersFirst && renderCancellations()}\n\n {has.rates && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_OFFER)}\n </Text>\n {rates.map(\n ({ id, cancellationId, countdown, description, disabled, included, name, price, restrictions }) => {\n const rate = rates.find((rate) => rate.id === id);\n const board = availableBoards.filter(({ rateId } = {}) => rateId === id)[0];\n const { confidential, discount: { breakdown = [] } = {} } = board || {};\n const isPromocode =\n promocode &&\n !promocodeForAll &&\n breakdown.find(\n ({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION || (type === DISCOUNT_TYPE.DEAL && confidential),\n );\n const { percentage: promoPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n const { percentage: offerPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.DEAL) || {};\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n included: showRateIncluded ? included : undefined,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo({ ...rate, availableBoards }),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / priceFactor}\n onPress={rates.length > 1 ? () => onRate({ id, cancellationId }) : undefined}\n >\n {rates.length > 0 && (\n <Text medium={hideRadio} action={!isMobile} small={isMobile} className={style.optionText}>\n <View row className={style.tags}>\n {offerPercentage > 0 && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${Math.round(offerPercentage)}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo({ ...rate, availableBoards })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n {isPromocode && (\n <Text bold small className={styles(style.tag, style.highlight)}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) &&\n style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${Math.round(promoPercentage)}%` : ''}\n </Text>\n )}\n </Text>\n )}\n </Option>\n );\n },\n )}\n </View>\n )}\n\n {showOffersFirst && renderCancellations()}\n\n {has.boards && (\n <View className={styles(style.offset, style.gap)}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n {React.createElement(\n has.inlineBoards ? View : React.Fragment,\n has.inlineBoards ? { row: true, className: style.inlineOptions } : undefined,\n boards.map((board = {}) => {\n const { disabled, id, increment, name, variants = [] } = board;\n\n return (\n <Option\n key={id}\n checked={id === boardId}\n disabled={disabled}\n inline={has.inlineBoards}\n outlined={hideRadio}\n title={name}\n value={has.boards ? increment / priceFactor : undefined}\n onPress={boards.length > 1 ? () => onBoard(board) : undefined}\n >\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </Option>\n );\n }),\n )}\n </View>\n )}\n\n <View />\n </>\n );\n};\n\nRates.propTypes = {\n availableBoards: PropTypes.arrayOf(PropTypes.any),\n availableRates: PropTypes.arrayOf(PropTypes.any),\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n columnMode: PropTypes.bool,\n hideStandaloneBoard: PropTypes.bool,\n showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n priceFactor: PropTypes.number,\n promocodeForAll: PropTypes.bool,\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n onBoard: PropTypes.func,\n onCancellation: PropTypes.func,\n onCancellationInfo: PropTypes.func,\n onChange: PropTypes.func,\n onOfferInfo: PropTypes.func,\n onRate: PropTypes.func,\n};\n\nRates.displayName = 'Mirai:Core:Rates:Item:Rates';\n\nexport { Rates };\n"],"mappings":"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"}
@@ -169,6 +169,13 @@ const useRates = () => {
169
169
  promocode: ''
170
170
  }
171
171
  });
172
+ _dataSources.Event.publish(_helpers2.EVENT.RATES_FILTER_PROMOCODE, {
173
+ promocode: undefined
174
+ });
175
+ } else if (nextPromocode !== finder.promocode) {
176
+ _dataSources.Event.publish(_helpers2.EVENT.RATES_FILTER_PROMOCODE, {
177
+ promocode: nextPromocode
178
+ });
172
179
  }
173
180
  if (notifications.includes(_Rates.NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {
174
181
  _dataSources.Event.publish(_helpers2.EVENT.NOTIFICATION, {
@@ -1 +1 @@
1
- {"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","fetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","actions","debounce","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n fetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounce(fetch, 60),\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","fetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","actions","debounce","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n fetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounce(fetch, 60),\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.178",
3
+ "version": "0.4.180",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",