@mirai/core 0.3.55 → 0.3.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Core.js +1 -1
- package/build/Core.js.map +1 -1
- package/build/components/Rates/Rates.Footer.js +2 -2
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +1 -1
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +12 -7
- package/build/components/Rates/Rates.js.map +1 -1
- package/package.json +1 -1
package/build/Core.js
CHANGED
package/build/Core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_Core","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","EVENT_INTENT_LOCALE","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","handleIntentLocale","_ref2","fetchDictionary","Event","subscribe","unsubscribe","cached","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref3","desktop","mobile","map","_ref4","index","el","component","props","getGhost","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost } from './helpers';\n\nconst ghosts = {};\n\nconst EVENT_INTENT_LOCALE = 'intentLocale';\n\nconst Core = ({ children, components = [], skeleton }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n const handleIntentLocale = async ({ locale }) => {\n const dictionary = await fetchDictionary(locale);\n if (dictionary) set({ locale });\n };\n\n Event.subscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n return () => Event.unsubscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!skeleton) fetchDictionary(locale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n <Notifications />\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAH,sBAAA,CAAAL,OAAA;AAEA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAAqC,SAAAY,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAhB,uBAAA4B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAErC,MAAMC,MAAM,GAAG,CAAC,CAAC;AAEjB,MAAMC,mBAAmB,GAAG,cAAc;AAE1C,MAAMC,IAAI,GAAGC,IAAA,
|
|
1
|
+
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_Core","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","EVENT_INTENT_LOCALE","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","handleIntentLocale","_ref2","fetchDictionary","Event","subscribe","unsubscribe","cached","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref3","desktop","mobile","map","_ref4","index","el","component","props","getGhost","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost } from './helpers';\n\nconst ghosts = {};\n\nconst EVENT_INTENT_LOCALE = 'intentLocale';\n\nconst Core = ({ children, components = [], skeleton = false }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n const handleIntentLocale = async ({ locale }) => {\n const dictionary = await fetchDictionary(locale);\n if (dictionary) set({ locale });\n };\n\n Event.subscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n return () => Event.unsubscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!skeleton) fetchDictionary(locale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n <Notifications />\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\n"],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ const Footer = _ref => {
|
|
|
86
86
|
amount: options
|
|
87
87
|
})) : null;
|
|
88
88
|
const soloRoom = occupation.length === 1;
|
|
89
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
89
|
+
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
90
90
|
className: (0, _ui.styles)(style.footer, options && style.visible)
|
|
91
91
|
}, (expanded || soloRoom) && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
92
92
|
className: [style.wrapper, style.expanded],
|
|
@@ -151,7 +151,7 @@ const Footer = _ref => {
|
|
|
151
151
|
}, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))), !isMobile && /*#__PURE__*/_react.default.createElement(ViewCart, null), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
152
152
|
large: !isMobile,
|
|
153
153
|
onPress: handlePress
|
|
154
|
-
}, translate(_Rates.L10N.ACTION_NEXT))))
|
|
154
|
+
}, translate(_Rates.L10N.ACTION_NEXT))));
|
|
155
155
|
};
|
|
156
156
|
exports.Footer = Footer;
|
|
157
157
|
Footer.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","dataSource","items","filter","clubDiscount","occupation","selected","taxes","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","expanded","setExpanded","useState","useEffect","keys","length","handlePress","document","location","href","getForwarderUrl","options","values","reduce","_ref2","amount","price","rates","map","name","title","arguments","undefined","rate","flat","ViewCart","soloRoom","createElement","Action","inline","small","onPress","L10N","ACTION_HIDE_CART","ACTION_VIEW_CART","Fragment","View","className","styles","footer","visible","wrapper","wide","entries","_ref3","id","find","row","key","item","Text","bold","concat","description","currencyFormat","Button","transparent","squared","Icon","ICON","CLOSE","line","headline","level","lighten","tiny","LABEL_INCLUDES_TAXES_FEES","large","ACTION_NEXT","exports","propTypes","PropTypes","shape","arrayOf","array","string","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n dataSource: { items = [] } = {},\n filter: { clubDiscount = false } = {},\n occupation = [],\n selected = {},\n taxes,\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ clubDiscount, currency, forwarder, selected, urlParams });\n };\n\n // ! Should know if didnt expire the storage\n const { length: options } = Object.keys(selected);\n const value = Object.values(selected).reduce((value, { amount, price }) => value + amount * price, 0);\n const rates = items.map(({ rates = [], name: title } = {}) => rates.map((rate = {}) => ({ ...rate, title }))).flat();\n\n const ViewCart = () =>\n !soloRoom ? (\n <Action inline small={isMobile} onPress={() => setExpanded(!expanded)}>\n {translate(expanded ? L10N.ACTION_HIDE_CART : L10N.ACTION_VIEW_CART, { amount: options })}\n </Action>\n ) : null;\n\n const soloRoom = occupation.length === 1;\n\n return (\n <>\n <View className={styles(style.footer, options && style.visible)}>\n {(expanded || soloRoom) && (\n <View className={[style.wrapper, style.expanded]} wide>\n {Object.entries(selected).map(([id, { amount, price }]) => {\n const { name, title } = rates.find((rate) => rate.id === id);\n\n return (\n <View row key={id} className={style.item}>\n <Text bold small className={style.amount}>{`${amount}x`}</Text>\n <Text small className={style.description}>{`${title} (${name})`}</Text>\n <Text bold small>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n <Button transparent small squared onPress={() => onChange({ id, amount: 0 })}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n );\n })}\n </View>\n )}\n\n <View row className={style.wrapper}>\n <View className={style.price}>\n <View row wide className={style.line}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value })}\n </Text>\n {isMobile && <ViewCart />}\n </View>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n {!isMobile && <ViewCart />}\n\n <Button large={!isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n </View>\n </>\n );\n};\n\nFooter.propTypes = {\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n occupation: PropTypes.arrayOf(PropTypes.array),\n selected: PropTypes.shape({}),\n taxes: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","dataSource","items","filter","clubDiscount","occupation","selected","taxes","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","expanded","setExpanded","useState","useEffect","keys","length","handlePress","document","location","href","getForwarderUrl","options","values","reduce","_ref2","amount","price","rates","map","name","title","arguments","undefined","rate","flat","ViewCart","soloRoom","createElement","Action","inline","small","onPress","L10N","ACTION_HIDE_CART","ACTION_VIEW_CART","View","className","styles","footer","visible","wrapper","wide","entries","_ref3","id","find","row","key","item","Text","bold","concat","description","currencyFormat","Button","transparent","squared","Icon","ICON","CLOSE","line","headline","level","lighten","tiny","LABEL_INCLUDES_TAXES_FEES","large","ACTION_NEXT","exports","propTypes","PropTypes","shape","arrayOf","array","string","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n dataSource: { items = [] } = {},\n filter: { clubDiscount = false } = {},\n occupation = [],\n selected = {},\n taxes,\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ clubDiscount, currency, forwarder, selected, urlParams });\n };\n\n // ! Should know if didnt expire the storage\n const { length: options } = Object.keys(selected);\n const value = Object.values(selected).reduce((value, { amount, price }) => value + amount * price, 0);\n const rates = items.map(({ rates = [], name: title } = {}) => rates.map((rate = {}) => ({ ...rate, title }))).flat();\n\n const ViewCart = () =>\n !soloRoom ? (\n <Action inline small={isMobile} onPress={() => setExpanded(!expanded)}>\n {translate(expanded ? L10N.ACTION_HIDE_CART : L10N.ACTION_VIEW_CART, { amount: options })}\n </Action>\n ) : null;\n\n const soloRoom = occupation.length === 1;\n\n return (\n <View className={styles(style.footer, options && style.visible)}>\n {(expanded || soloRoom) && (\n <View className={[style.wrapper, style.expanded]} wide>\n {Object.entries(selected).map(([id, { amount, price }]) => {\n const { name, title } = rates.find((rate) => rate.id === id);\n\n return (\n <View row key={id} className={style.item}>\n <Text bold small className={style.amount}>{`${amount}x`}</Text>\n <Text small className={style.description}>{`${title} (${name})`}</Text>\n <Text bold small>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n <Button transparent small squared onPress={() => onChange({ id, amount: 0 })}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n );\n })}\n </View>\n )}\n\n <View row className={style.wrapper}>\n <View className={style.price}>\n <View row wide className={style.line}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value })}\n </Text>\n {isMobile && <ViewCart />}\n </View>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n {!isMobile && <ViewCart />}\n\n <Button large={!isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n </View>\n );\n};\n\nFooter.propTypes = {\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n occupation: PropTypes.arrayOf(PropTypes.array),\n selected: PropTypes.shape({}),\n taxes: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.RATES_STORAGE_KEY = exports.RATES_STORAGE_CACHE = void 0;
|
|
7
|
-
const RATES_STORAGE_CACHE = exports.RATES_STORAGE_CACHE = 1000 * 60 *
|
|
7
|
+
const RATES_STORAGE_CACHE = exports.RATES_STORAGE_CACHE = 1000 * 60 * 5; // 5 minutes
|
|
8
8
|
|
|
9
9
|
const RATES_STORAGE_KEY = exports.RATES_STORAGE_KEY = 'MIRAI:RATES';
|
|
10
10
|
//# sourceMappingURL=Rates.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.constants.js","names":["RATES_STORAGE_CACHE","exports","RATES_STORAGE_KEY"],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":["const RATES_STORAGE_CACHE = 1000 * 60 *
|
|
1
|
+
{"version":3,"file":"Rates.constants.js","names":["RATES_STORAGE_CACHE","exports","RATES_STORAGE_KEY"],"sources":["../../../src/components/Rates/Rates.constants.js"],"sourcesContent":["const RATES_STORAGE_CACHE = 1000 * 60 * 5; // 5 minutes\n\nconst RATES_STORAGE_KEY = 'MIRAI:RATES';\n\nexport { RATES_STORAGE_CACHE, RATES_STORAGE_KEY };\n"],"mappings":";;;;;;AAAA,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;AAE3C,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,aAAa"}
|
|
@@ -7,6 +7,7 @@ exports.Rates = void 0;
|
|
|
7
7
|
var _dataSources = require("@mirai/data-sources");
|
|
8
8
|
var _locale = require("@mirai/locale");
|
|
9
9
|
var _ui = require("@mirai/ui");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _components = require("./components");
|
|
12
13
|
var _helpers = require("./helpers");
|
|
@@ -19,12 +20,13 @@ var _Rates5 = _interopRequireDefault(require("./Rates.Skeleton"));
|
|
|
19
20
|
var _services = require("../../services");
|
|
20
21
|
var _Finder = require("../Finder/Finder");
|
|
21
22
|
var _helpers2 = require("../helpers");
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
26
|
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); }
|
|
26
27
|
const Rates = _ref => {
|
|
27
28
|
let {
|
|
29
|
+
skeleton,
|
|
28
30
|
...others
|
|
29
31
|
} = _ref;
|
|
30
32
|
const {
|
|
@@ -62,19 +64,16 @@ const Rates = _ref => {
|
|
|
62
64
|
cache: _Rates.RATES_STORAGE_CACHE
|
|
63
65
|
});
|
|
64
66
|
(0, _react.useEffect)(() => {
|
|
67
|
+
if (skeleton) return setFetching(true);
|
|
65
68
|
if (urlParams) {
|
|
66
69
|
const nextSelected = storage.get(key(urlParams));
|
|
67
|
-
if (nextSelected) setSelected(
|
|
70
|
+
if (nextSelected) setSelected(nextSelected);
|
|
68
71
|
}
|
|
69
72
|
const handleScroll = () => setCompact(true);
|
|
70
73
|
window.addEventListener('scroll', handleScroll);
|
|
71
74
|
return () => window.removeEventListener('scroll', handleScroll);
|
|
72
75
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
76
|
}, []);
|
|
74
|
-
(0, _react.useEffect)(() => {
|
|
75
|
-
storage.set(key(urlParams), selected);
|
|
76
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
77
|
-
}, [selected]);
|
|
78
77
|
(0, _react.useEffect)(() => {
|
|
79
78
|
fetch(currency);
|
|
80
79
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -82,6 +81,7 @@ const Rates = _ref => {
|
|
|
82
81
|
const fetch = async function (currency) {
|
|
83
82
|
let clubDiscount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : filter.clubDiscount;
|
|
84
83
|
let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : urlParams;
|
|
84
|
+
if (skeleton) return;
|
|
85
85
|
setFetching(true);
|
|
86
86
|
const nextParams = {
|
|
87
87
|
...params,
|
|
@@ -109,6 +109,7 @@ const Rates = _ref => {
|
|
|
109
109
|
...others
|
|
110
110
|
};
|
|
111
111
|
setSelected(next);
|
|
112
|
+
storage.set(key(urlParams), next);
|
|
112
113
|
};
|
|
113
114
|
const handleChangeCurrency = async nextCurrency => {
|
|
114
115
|
await fetch(nextCurrency);
|
|
@@ -174,7 +175,7 @@ const Rates = _ref => {
|
|
|
174
175
|
onRateInfo: rate => setItemRateInfo(rate),
|
|
175
176
|
onViewUrl: info => setItemUrl(info)
|
|
176
177
|
}));
|
|
177
|
-
})) : /*#__PURE__*/_react.default.createElement(_Rates5.default, null)), /*#__PURE__*/_react.default.createElement(_Rates3.Footer, {
|
|
178
|
+
})) : /*#__PURE__*/_react.default.createElement(_Rates5.default, null)), response && /*#__PURE__*/_react.default.createElement(_Rates3.Footer, {
|
|
178
179
|
dataSource,
|
|
179
180
|
filter,
|
|
180
181
|
occupation,
|
|
@@ -193,4 +194,8 @@ const Rates = _ref => {
|
|
|
193
194
|
})));
|
|
194
195
|
};
|
|
195
196
|
exports.Rates = Rates;
|
|
197
|
+
Rates.displayName = 'Mirai:User:Rates';
|
|
198
|
+
Rates.propTypes = {
|
|
199
|
+
skeleton: _propTypes.default.bool
|
|
200
|
+
};
|
|
196
201
|
//# sourceMappingURL=Rates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_ui","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","style","_Rates5","_interopRequireDefault","_services","_Finder","_helpers2","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Rates","_ref","others","translate","useLocale","value","club","discount","currency","finder","occupation","hotel","locale","session","urlParams","useStore","compact","setCompact","useState","dataSource","setDataSource","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","responseError","setResponseError","selected","setSelected","storage","Storage","adapter","LocalAdapter","cache","RATES_STORAGE_CACHE","useEffect","nextSelected","handleScroll","window","addEventListener","removeEventListener","fetch","params","nextParams","ServiceRates","catch","concat","RATES_STORAGE_KEY","generateId","JSON","stringify","handleChange","amount","id","standalone","next","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","response","createElement","Fragment","View","className","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","role","styles","container","Progress","indeterminate","visible","progress","wrapper","content","Filter","onChange","onCurrency","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","onViewUrl","info","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","exports"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Progress, styles, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { Item, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getFinderParams } from './helpers';\nimport { RATES_STORAGE_CACHE, RATES_STORAGE_KEY } from './Rates.constants';\nimport { Filter } from './Rates.Filter';\nimport { Footer } from './Rates.Footer';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport Skeleton from './Rates.Skeleton';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { generateId, toUrlParams } from '../helpers';\n\nconst Rates = ({ ...others }) => {\n const { translate } = useLocale();\n const {\n set,\n value: { club: { discount } = {}, currency, finder: { occupation } = {}, hotel = {}, locale, session, urlParams },\n } = useStore();\n\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 [selected, setSelected] = useState({});\n\n const storage = new Storage({ adapter: LocalAdapter, cache: RATES_STORAGE_CACHE });\n\n useEffect(() => {\n if (urlParams) {\n const nextSelected = storage.get(key(urlParams));\n if (nextSelected) setSelected({});\n }\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 storage.set(key(urlParams), selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n useEffect(() => {\n fetch(currency);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, locale, session]);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams) => {\n setFetching(true);\n const nextParams = { ...params, currency, locale, session, clubDiscount };\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 = ({ amount = 0, id, standalone = false, ...others } = {}) => {\n const next = standalone ? {} : { ...selected };\n if (amount === 0) delete next[id];\n else next[id] = { amount, ...others };\n\n setSelected(next);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount) await fetch(currency, nextFilter.clubDiscount);\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 fetch(currency, filter.clubDiscount, params);\n };\n\n const response = dataSource !== undefined;\n\n return (\n <>\n <View className={style.finder}>\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 <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n <View className={[style.wrapper, style.content]}>\n {response ? (\n <>\n <Filter\n dataSource={dataSource}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n />\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, occupation, selected, taxes: dataSource.taxes }}\n onChange={handleChange}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n </>\n ) : (\n <Skeleton />\n )}\n </View>\n\n <Footer {...{ dataSource, filter, occupation, selected, taxes: dataSource?.taxes }} 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\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","_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","translate","useLocale","value","club","discount","currency","finder","occupation","hotel","locale","session","urlParams","useStore","compact","setCompact","useState","dataSource","setDataSource","fetching","setFetching","undefined","filter","setFilter","clubDiscount","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","responseError","setResponseError","selected","setSelected","storage","Storage","adapter","LocalAdapter","cache","RATES_STORAGE_CACHE","useEffect","nextSelected","handleScroll","window","addEventListener","removeEventListener","fetch","params","nextParams","ServiceRates","catch","concat","RATES_STORAGE_KEY","generateId","JSON","stringify","handleChange","amount","id","standalone","next","handleChangeCurrency","nextCurrency","handleChangeFilter","nextFilter","handleFinderSubmit","values","getFinderParams","history","replaceState","toUrlParams","response","createElement","Fragment","View","className","Finder","assisted","text","L10N","ACTION_SEARCH","onExpand","onSubmit","role","styles","container","Progress","indeterminate","visible","progress","wrapper","content","Filter","onChange","onCurrency","items","map","_ref2","index","item","Item","taxes","onMoreInfo","onRateInfo","rate","onViewUrl","info","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Progress, styles, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { Item, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getFinderParams } from './helpers';\nimport { RATES_STORAGE_CACHE, RATES_STORAGE_KEY } from './Rates.constants';\nimport { Filter } from './Rates.Filter';\nimport { Footer } from './Rates.Footer';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport Skeleton from './Rates.Skeleton';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder/Finder';\nimport { generateId, toUrlParams } from '../helpers';\n\nconst Rates = ({ skeleton, ...others }) => {\n const { translate } = useLocale();\n const {\n set,\n value: { club: { discount } = {}, currency, finder: { occupation } = {}, hotel = {}, locale, session, urlParams },\n } = useStore();\n\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 [selected, setSelected] = useState({});\n\n const storage = new Storage({ adapter: LocalAdapter, cache: RATES_STORAGE_CACHE });\n\n useEffect(() => {\n if (skeleton) return setFetching(true);\n\n if (urlParams) {\n const nextSelected = storage.get(key(urlParams));\n if (nextSelected) setSelected(nextSelected);\n }\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 fetch(currency);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency, locale, session]);\n\n const fetch = async (currency, clubDiscount = filter.clubDiscount, params = urlParams) => {\n if (skeleton) return;\n setFetching(true);\n const nextParams = { ...params, currency, locale, session, clubDiscount };\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 = ({ amount = 0, id, standalone = false, ...others } = {}) => {\n const next = standalone ? {} : { ...selected };\n if (amount === 0) delete next[id];\n else next[id] = { amount, ...others };\n\n setSelected(next);\n storage.set(key(urlParams), next);\n };\n\n const handleChangeCurrency = async (nextCurrency) => {\n await fetch(nextCurrency);\n set({ currency: nextCurrency });\n };\n\n const handleChangeFilter = async (nextFilter) => {\n setFilter(nextFilter);\n if (nextFilter.clubDiscount !== filter.clubDiscount) await fetch(currency, nextFilter.clubDiscount);\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 fetch(currency, filter.clubDiscount, params);\n };\n\n const response = dataSource !== undefined;\n\n return (\n <>\n <View className={style.finder}>\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 <View {...others} role=\"rates\" className={styles(style.container, others.className)}>\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n <View className={[style.wrapper, style.content]}>\n {response ? (\n <>\n <Filter\n dataSource={dataSource}\n value={filter}\n onChange={handleChangeFilter}\n onCurrency={handleChangeCurrency}\n />\n {dataSource.items.map(({ id, ...item }, index) => (\n <Item\n key={id || index}\n {...{ id, ...item, filter, occupation, selected, taxes: dataSource.taxes }}\n onChange={handleChange}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo(rate)}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n </>\n ) : (\n <Skeleton />\n )}\n </View>\n\n {response && (\n <Footer {...{ dataSource, filter, occupation, selected, taxes: dataSource?.taxes }} onChange={handleChange} />\n )}\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.displayName = 'Mirai:User:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|