@mirai/core 0.4.256 → 0.4.258
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js +11 -15
- package/build/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js.map +1 -1
- package/build/components/Chat/components/ButtonDispatcher/helpers/determinePosition.js +41 -0
- package/build/components/Chat/components/ButtonDispatcher/helpers/determinePosition.js.map +1 -0
- package/build/components/Chat/components/ButtonDispatcher/helpers/index.js +17 -0
- package/build/components/Chat/components/ButtonDispatcher/helpers/index.js.map +1 -0
- package/build/components/Rates/hooks/useRates.js +1 -0
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,7 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _ButtonDispatcher = require("./ButtonDispatcher.l10n");
|
|
13
13
|
var style = _interopRequireWildcard(require("./ButtonDispatcher.module.css"));
|
|
14
|
-
var _helpers = require("
|
|
14
|
+
var _helpers = require("./helpers");
|
|
15
|
+
var _helpers2 = require("../../../helpers");
|
|
15
16
|
var _Chat = require("../../Chat.constants");
|
|
16
17
|
var _Avatar = require("../Avatar");
|
|
17
18
|
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); }
|
|
@@ -22,12 +23,9 @@ let focused = false;
|
|
|
22
23
|
const ButtonDispatcher = _ref => {
|
|
23
24
|
let {
|
|
24
25
|
config: {
|
|
25
|
-
bottom,
|
|
26
26
|
image,
|
|
27
|
-
left = false,
|
|
28
27
|
name = _Chat.DEFAULT_NAME,
|
|
29
|
-
|
|
30
|
-
top = false
|
|
28
|
+
...config
|
|
31
29
|
} = {},
|
|
32
30
|
ready = false,
|
|
33
31
|
visible,
|
|
@@ -55,8 +53,8 @@ const ButtonDispatcher = _ref => {
|
|
|
55
53
|
} = _ref2;
|
|
56
54
|
setHide(modalVisible);
|
|
57
55
|
};
|
|
58
|
-
_dataSources.Event.subscribe(
|
|
59
|
-
return () => _dataSources.Event.unsubscribe(
|
|
56
|
+
_dataSources.Event.subscribe(_helpers2.EVENT.MODAL_VISIBLE, callback);
|
|
57
|
+
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.MODAL_VISIBLE, callback);
|
|
60
58
|
}, []);
|
|
61
59
|
(0, _react.useEffect)(() => {
|
|
62
60
|
if (!ready || focused) return;
|
|
@@ -81,14 +79,12 @@ const ButtonDispatcher = _ref => {
|
|
|
81
79
|
(0, _react.useEffect)(() => {
|
|
82
80
|
if (focus) focused = true;
|
|
83
81
|
}, [focus]);
|
|
82
|
+
const position = (0, _helpers.determinePosition)(config, {
|
|
83
|
+
isMobile
|
|
84
|
+
});
|
|
84
85
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
85
|
-
className: (0, _ui.styles)(style.buttonDispatcher,
|
|
86
|
-
style:
|
|
87
|
-
top: top >= 1 ? top : undefined,
|
|
88
|
-
bottom: bottom >= 1 ? bottom : undefined,
|
|
89
|
-
left: left >= 1 ? left : undefined,
|
|
90
|
-
right: right >= 1 ? right : undefined
|
|
91
|
-
}
|
|
86
|
+
className: (0, _ui.styles)(style.buttonDispatcher, ready && !visible && !hide && style.visible, ...position.className),
|
|
87
|
+
style: position.style
|
|
92
88
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
93
89
|
row: true,
|
|
94
90
|
className: (0, _ui.styles)(style.welcome, focus && !visible && style.visible)
|
|
@@ -109,7 +105,7 @@ const ButtonDispatcher = _ref => {
|
|
|
109
105
|
transparent: true,
|
|
110
106
|
onPress: () => setFocus(false)
|
|
111
107
|
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
112
|
-
value:
|
|
108
|
+
value: _helpers2.ICON.CLOSE
|
|
113
109
|
}))), /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
|
|
114
110
|
onEnter: () => setFocus(true),
|
|
115
111
|
onLeave: () => setFocus(false),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonDispatcher.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_ButtonDispatcher","style","_helpers","_Chat","_Avatar","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DELAY_WELCOME","focused","ButtonDispatcher","_ref","config","bottom","image","left","name","DEFAULT_NAME","right","top","ready","visible","onPress","isMobile","useDevice","translate","useLocale","value","session","firstName","useStore","focus","setFocus","useState","hide","setHide","useEffect","callback","_ref2","modalVisible","Event","subscribe","EVENT","MODAL_VISIBLE","unsubscribe","inactivityTimer","resetTimer","clearTimeout","setTimeout","document","addEventListener","current","removeEventListener","createElement","View","className","styles","buttonDispatcher","undefined","row","welcome","Text","bold","brand","headline","hi","concat","L10N","LABEL_HI","markdown","medium","LABEL_GREETINGS","Button","icon","small","squared","transparent","Icon","ICON","CLOSE","Pressable","onEnter","onLeave","Avatar","disabled","avatar","exports","displayName","propTypes","PropTypes","shape","oneOfType","bool","number","string","func"],"sources":["../../../../../src/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './ButtonDispatcher.l10n';\nimport * as style from './ButtonDispatcher.module.css';\nimport { EVENT, ICON } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\nimport { Avatar } from '../Avatar';\n\nconst DELAY_WELCOME = 10000;\nlet focused = false;\n\nconst ButtonDispatcher = ({\n config: { bottom, image, left = false, name = DEFAULT_NAME, right, top = false } = {},\n ready = false,\n visible,\n onPress,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { session: { firstName } = {} },\n } = useStore();\n\n const [focus, setFocus] = useState(false);\n const [hide, setHide] = useState(false);\n\n useEffect(() => {\n const callback = ({ visible: modalVisible }) => {\n setHide(modalVisible);\n };\n\n Event.subscribe(EVENT.MODAL_VISIBLE, callback);\n return () => Event.unsubscribe(EVENT.MODAL_VISIBLE, callback);\n }, []);\n\n useEffect(() => {\n if (!ready || focused) return;\n let inactivityTimer;\n\n const resetTimer = () => {\n clearTimeout(inactivityTimer);\n if (focused) return;\n inactivityTimer = setTimeout(() => {\n setFocus(true);\n clearTimeout(inactivityTimer);\n }, DELAY_WELCOME);\n };\n\n document.addEventListener('mousemove', resetTimer);\n document.addEventListener('scroll', resetTimer);\n\n resetTimer();\n\n return () => {\n clearTimeout(inactivityTimer.current);\n document.removeEventListener('mousemove', resetTimer);\n document.removeEventListener('scroll', resetTimer);\n };\n }, [ready]);\n\n useEffect(() => {\n if (focus) focused = true;\n }, [focus]);\n\n return (\n <View\n className={styles(\n style.buttonDispatcher,\n left ? style.left : style.right,\n top ? style.top : style.bottom,\n ready && !visible && !hide && style.visible,\n )}\n style={{\n top: top >= 1 ? top : undefined,\n bottom: bottom >= 1 ? bottom : undefined,\n left: left >= 1 ? left : undefined,\n right: right >= 1 ? right : undefined,\n }}\n >\n <View row className={styles(style.welcome, focus && !visible && style.visible)}>\n <View>\n <Text bold brand headline className={style.hi}>\n {`✦ ${translate(L10N.LABEL_HI)}${firstName ? `, ${firstName}` : ''}`}\n </Text>\n <Text markdown={false} medium>\n {translate(L10N.LABEL_GREETINGS, { name })}\n </Text>\n </View>\n {isMobile && (\n <Button icon=\"close\" small squared transparent onPress={() => setFocus(false)}>\n <Icon value={ICON.CLOSE} />\n </Button>\n )}\n </View>\n\n <Pressable onEnter={() => setFocus(true)} onLeave={() => setFocus(false)} onPress={onPress}>\n <Avatar disabled={visible} image={image} className={style.avatar} />\n </Pressable>\n </View>\n );\n};\n\nButtonDispatcher.displayName = 'Mirai:Core:Chat:ButtonDispatcher';\n\nButtonDispatcher.propTypes = {\n config: PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n image: PropTypes.string,\n left: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n name: PropTypes.string,\n right: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n top: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n }),\n ready: PropTypes.bool,\n visible: PropTypes.bool,\n onPress: PropTypes.func,\n};\n\nexport { ButtonDispatcher };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ButtonDispatcher.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_ButtonDispatcher","style","_helpers","_helpers2","_Chat","_Avatar","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DELAY_WELCOME","focused","ButtonDispatcher","_ref","config","image","name","DEFAULT_NAME","ready","visible","onPress","isMobile","useDevice","translate","useLocale","value","session","firstName","useStore","focus","setFocus","useState","hide","setHide","useEffect","callback","_ref2","modalVisible","Event","subscribe","EVENT","MODAL_VISIBLE","unsubscribe","inactivityTimer","resetTimer","clearTimeout","setTimeout","document","addEventListener","current","removeEventListener","position","determinePosition","createElement","View","className","styles","buttonDispatcher","row","welcome","Text","bold","brand","headline","hi","concat","L10N","LABEL_HI","markdown","medium","LABEL_GREETINGS","Button","icon","small","squared","transparent","Icon","ICON","CLOSE","Pressable","onEnter","onLeave","Avatar","disabled","avatar","exports","displayName","propTypes","PropTypes","shape","bottom","oneOfType","bool","number","string","left","right","top","func"],"sources":["../../../../../src/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './ButtonDispatcher.l10n';\nimport * as style from './ButtonDispatcher.module.css';\nimport { determinePosition } from './helpers';\nimport { EVENT, ICON } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\nimport { Avatar } from '../Avatar';\n\nconst DELAY_WELCOME = 10000;\nlet focused = false;\n\nconst ButtonDispatcher = ({\n config: { image, name = DEFAULT_NAME, ...config } = {},\n ready = false,\n visible,\n onPress,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { session: { firstName } = {} },\n } = useStore();\n\n const [focus, setFocus] = useState(false);\n const [hide, setHide] = useState(false);\n\n useEffect(() => {\n const callback = ({ visible: modalVisible }) => {\n setHide(modalVisible);\n };\n\n Event.subscribe(EVENT.MODAL_VISIBLE, callback);\n return () => Event.unsubscribe(EVENT.MODAL_VISIBLE, callback);\n }, []);\n\n useEffect(() => {\n if (!ready || focused) return;\n let inactivityTimer;\n\n const resetTimer = () => {\n clearTimeout(inactivityTimer);\n if (focused) return;\n inactivityTimer = setTimeout(() => {\n setFocus(true);\n clearTimeout(inactivityTimer);\n }, DELAY_WELCOME);\n };\n\n document.addEventListener('mousemove', resetTimer);\n document.addEventListener('scroll', resetTimer);\n\n resetTimer();\n\n return () => {\n clearTimeout(inactivityTimer.current);\n document.removeEventListener('mousemove', resetTimer);\n document.removeEventListener('scroll', resetTimer);\n };\n }, [ready]);\n\n useEffect(() => {\n if (focus) focused = true;\n }, [focus]);\n\n const position = determinePosition(config, { isMobile });\n\n return (\n <View\n className={styles(style.buttonDispatcher, ready && !visible && !hide && style.visible, ...position.className)}\n style={position.style}\n >\n <View row className={styles(style.welcome, focus && !visible && style.visible)}>\n <View>\n <Text bold brand headline className={style.hi}>\n {`✦ ${translate(L10N.LABEL_HI)}${firstName ? `, ${firstName}` : ''}`}\n </Text>\n <Text markdown={false} medium>\n {translate(L10N.LABEL_GREETINGS, { name })}\n </Text>\n </View>\n {isMobile && (\n <Button icon=\"close\" small squared transparent onPress={() => setFocus(false)}>\n <Icon value={ICON.CLOSE} />\n </Button>\n )}\n </View>\n\n <Pressable onEnter={() => setFocus(true)} onLeave={() => setFocus(false)} onPress={onPress}>\n <Avatar disabled={visible} image={image} className={style.avatar} />\n </Pressable>\n </View>\n );\n};\n\nButtonDispatcher.displayName = 'Mirai:Core:Chat:ButtonDispatcher';\n\nButtonDispatcher.propTypes = {\n config: PropTypes.shape({\n bottom: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n image: PropTypes.string,\n left: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n name: PropTypes.string,\n right: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n top: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n }),\n ready: PropTypes.bool,\n visible: PropTypes.bool,\n onPress: PropTypes.func,\n};\n\nexport { ButtonDispatcher };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.determinePosition = void 0;
|
|
7
|
+
var style = _interopRequireWildcard(require("../ButtonDispatcher.module.css"));
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
const determinePosition = (_ref, isMobile) => {
|
|
11
|
+
let {
|
|
12
|
+
mobile,
|
|
13
|
+
desktop,
|
|
14
|
+
...config
|
|
15
|
+
} = _ref;
|
|
16
|
+
let base = {
|
|
17
|
+
...config
|
|
18
|
+
};
|
|
19
|
+
if (isMobile && mobile) base = {
|
|
20
|
+
...mobile
|
|
21
|
+
};else if (!isMobile && desktop) base = {
|
|
22
|
+
...desktop
|
|
23
|
+
};
|
|
24
|
+
const {
|
|
25
|
+
bottom,
|
|
26
|
+
left = false,
|
|
27
|
+
right,
|
|
28
|
+
top = false
|
|
29
|
+
} = base;
|
|
30
|
+
return {
|
|
31
|
+
className: [left ? style.left : style.right, top ? style.top : style.bottom],
|
|
32
|
+
style: {
|
|
33
|
+
top: top >= 1 ? top : undefined,
|
|
34
|
+
bottom: bottom >= 1 ? bottom : undefined,
|
|
35
|
+
left: left >= 1 ? left : undefined,
|
|
36
|
+
right: right >= 1 ? right : undefined
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.determinePosition = determinePosition;
|
|
41
|
+
//# sourceMappingURL=determinePosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"determinePosition.js","names":["style","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","determinePosition","_ref","isMobile","mobile","desktop","config","base","bottom","left","right","top","className","undefined","exports"],"sources":["../../../../../../src/components/Chat/components/ButtonDispatcher/helpers/determinePosition.js"],"sourcesContent":["import * as style from '../ButtonDispatcher.module.css';\n\nexport const determinePosition = ({ mobile, desktop, ...config }, isMobile) => {\n let base = { ...config };\n\n if (isMobile && mobile) base = { ...mobile };\n else if (!isMobile && desktop) base = { ...desktop };\n\n const { bottom, left = false, right, top = false } = base;\n\n return {\n className: [left ? style.left : style.right, top ? style.top : style.bottom],\n style: {\n top: top >= 1 ? top : undefined,\n bottom: bottom >= 1 ? bottom : undefined,\n left: left >= 1 ? left : undefined,\n right: right >= 1 ? right : undefined,\n },\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAwD,SAAAC,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,SAAAH,wBAAAG,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;AAEjD,MAAMY,iBAAiB,GAAGA,CAAAC,IAAA,EAAiCC,QAAQ,KAAK;EAAA,IAA7C;IAAEC,MAAM;IAAEC,OAAO;IAAE,GAAGC;EAAO,CAAC,GAAAJ,IAAA;EAC9D,IAAIK,IAAI,GAAG;IAAE,GAAGD;EAAO,CAAC;EAExB,IAAIH,QAAQ,IAAIC,MAAM,EAAEG,IAAI,GAAG;IAAE,GAAGH;EAAO,CAAC,CAAC,KACxC,IAAI,CAACD,QAAQ,IAAIE,OAAO,EAAEE,IAAI,GAAG;IAAE,GAAGF;EAAQ,CAAC;EAEpD,MAAM;IAAEG,MAAM;IAAEC,IAAI,GAAG,KAAK;IAAEC,KAAK;IAAEC,GAAG,GAAG;EAAM,CAAC,GAAGJ,IAAI;EAEzD,OAAO;IACLK,SAAS,EAAE,CAACH,IAAI,GAAGhC,KAAK,CAACgC,IAAI,GAAGhC,KAAK,CAACiC,KAAK,EAAEC,GAAG,GAAGlC,KAAK,CAACkC,GAAG,GAAGlC,KAAK,CAAC+B,MAAM,CAAC;IAC5E/B,KAAK,EAAE;MACLkC,GAAG,EAAEA,GAAG,IAAI,CAAC,GAAGA,GAAG,GAAGE,SAAS;MAC/BL,MAAM,EAAEA,MAAM,IAAI,CAAC,GAAGA,MAAM,GAAGK,SAAS;MACxCJ,IAAI,EAAEA,IAAI,IAAI,CAAC,GAAGA,IAAI,GAAGI,SAAS;MAClCH,KAAK,EAAEA,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAGG;IAC9B;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAAb,iBAAA,GAAAA,iBAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _determinePosition = require("./determinePosition");
|
|
7
|
+
Object.keys(_determinePosition).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _determinePosition[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _determinePosition[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_determinePosition","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../../src/components/Chat/components/ButtonDispatcher/helpers/index.js"],"sourcesContent":["export * from './determinePosition';\n"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -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","debounceFetch","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","fetch","nextOccupation","nextPlace","arguments","currentId","nextId","nextClubDiscount","isHotel","variants","currentVariant","find","toString","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","debounce","actions","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 && debounceFetch({ 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 debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch({ 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 ({\n nextRoom,\n nextOccupation = occupation,\n nextPlace = place,\n nextPromocode = finder.promocode,\n } = {}) => {\n if (skeleton) return;\n\n const { id: [currentId] = [] } = place || {};\n const { id: [nextId] = [] } = nextPlace || {};\n let nextClubDiscount;\n if (nextPlace?.isHotel && currentId !== nextId) {\n const { variants = [] } = club;\n const currentVariant = variants.find(({ id = '' } = {}) => id.toString() === nextId.toString());\n nextClubDiscount = currentVariant?.discount;\n if (currentVariant && nextClubDiscount !== clubDiscount) {\n Event.publish(EVENT.RATES_FILTER_CLUB, nextClubDiscount);\n\n return;\n }\n }\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 const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAEA,IAAIU,SAAS,GAAG,CAAC;AAEV,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAM;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EACxC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IACJC,GAAG;IACHC,KAAK,EAAE;MACLC,IAAI,GAAG,CAAC,CAAC;MACTC,QAAQ;MACRC,MAAM,GAAG,CAAC,CAAC;MACXC,KAAK,GAAG,CAAC,CAAC;MACVC,EAAE;MACFC,QAAQ;MACRC,MAAM;MACNC,KAAK,EAAE;QAAEC,IAAI,EAAEC,SAAS,GAAG,EAAE;QAAEC;MAAK,CAAC,GAAG,CAAC,CAAC;MAC1CC,UAAU,EAAE;QAAEC;MAAS,CAAC,GAAG,CAAC,CAAC;MAC7BC,SAAS;MACTC,OAAO;MACPC,QAAQ,GAAG;IACb;EACF,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EACd,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,CAAC;EAEhC,MAAM,CAACV,IAAI,EAAEW,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAACpB,IAAI,CAACuB,QAAQ,CAAC;EAC/D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAL,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAM,CAACM,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAP,eAAQ,EAAC,CAAC;EAC9C,MAAM,CAACQ,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAT,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAM,CAACU,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAX,eAAQ,EAAC,CAAC;EAC5C,MAAM,CAACY,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAb,eAAQ,EAAC,CAAC;EACpD,MAAM,CAACc,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAf,eAAQ,EAAC,CAAC;EAClC,MAAM,CAACgB,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAjB,eAAQ,EAAC,CAAC;EAElD,MAAM;IAAEkB,QAAQ,GAAG,EAAE;IAAE3B,UAAU,GAAG,EAAE;IAAE4B;EAAM,CAAC,GAAGrC,MAAM;EACxD,MAAMsC,MAAM,GAAG9C,MAAM,GAAG,QAAQ,GAAG,gBAAgB;EACnD,MAAM+C,SAAS,GAAG,CAAA9B,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE+B,MAAM,IAAG,CAAC;;EAExC;EACA,IAAAC,gBAAS,EAAC,MAAM5B,QAAQ,IAAIc,WAAW,CAAC,IAAI,CAAC,EAAE,CAACd,QAAQ,CAAC,CAAC;EAE1D,IAAA4B,gBAAS,EAAC,MAAM;IACd,IAAIF,SAAS,EAAE;MACb,IAAIP,IAAI,GAAG,CAAC,EAAE;QACZ,MAAM;UAAEU,OAAO,EAAE;YAAEC,YAAY,GAAG,CAAC;YAAEC,SAAS,GAAG;UAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG7B,eAAe,IAAI,CAAC,CAAC;QACnF8B,MAAM,CAACC,QAAQ,CAAC;UAAEC,GAAG,EAAEH,SAAS,IAAIrD,QAAQ,GAAGoD,YAAY,GAAG,CAAC,CAAC;UAAEK,QAAQ,EAAE;QAAS,CAAC,CAAC;MACzF;MACAvB,aAAa,CAAC,CAAC;IACjB;IAEAO,IAAI,KAAKiB,SAAS,IAAIC,aAAa,CAAC;MAAEC,QAAQ,EAAEnB;IAAK,CAAC,CAAC;IACvD;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMW,QAAQ,GAAG,MAAOC,IAAI,IAAK;MAC/BjC,eAAe,CAAC,OAAOiC,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGJ,SAAS,CAAC;MAC5D3B,QAAQ,IAAIC,WAAW,CAAC,KAAK,CAAC;IAChC,CAAC;IACD+B,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;IAElD,OAAO,MAAME,kBAAK,CAACI,WAAW,CAACF,eAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;IACjE;EACF,CAAC,EAAE,CAAC9B,QAAQ,CAAC,CAAC;EAEd,IAAAmB,gBAAS,EAAC,MAAM;IACd,IAAK,CAACjB,UAAU,KAAK,CAACM,aAAa,IAAI,CAACA,aAAa,CAAC6B,QAAQ,CAAC,IAAK3B,IAAI,EAAE;IAE1EsB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACK,cAAc,EAAE;MAClCC,KAAK,EAAE,CAAC,CAAChC,aAAa;MACtBiC,KAAK,EAAEP,eAAK,CAACK,cAAc;MAC3BG,QAAQ,EAAExC,UAAU,IAAIM;IAC1B,CAAC,CAAC;;IAEF;EACF,CAAC,EAAE,CAACN,UAAU,EAAEM,aAAa,CAAC,CAAC;EAE/B,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAI,CAACjB,UAAU,IAAI,CAACjB,SAAS,CAACiC,MAAM,EAAE;IAEtC,IAAAyB,kBAAQ,EAAC;MAAE3D,IAAI;MAAEkB,UAAU;MAAEjB;IAAU,CAAC,CAAC,CACtC2D,IAAI,CAAEC,KAAK,IAAK;MACf,IAAI,CAACA,KAAK,EAAE,OAAOb,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;QAAElE,EAAE,EAAE;MAAmB,CAAC,CAAC;MAE3E,IAAIM,IAAI,EAAE;QACR8C,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;UAChCC,QAAQ,EAAE,IAAI;UACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACC,4BAA4B,EAAE;YAC3DC,UAAU,EAAEC,sBAAe,CAAChE,SAAS,CAAC+D,UAAU,CAAC,IAAI/D,SAAS,CAAC+D;UACjE,CAAC;QACH,CAAC,CAAC;QACFpB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;UAAElE,EAAE,EAAE;QAAqB,CAAC,CAAC;MAC5D;MAEA2B,YAAY,CAACsC,KAAK,CAAC;MACnBvE,GAAG,CAAC;QAAES,KAAK,EAAE4C;MAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CACD2B,KAAK,CAAC,MAAMhF,GAAG,CAAC;MAAES,KAAK,EAAE4C;IAAU,CAAC,CAAC,CAAC;;IAEzC;EACF,CAAC,EAAE,CAACzB,UAAU,EAAEjB,SAAS,CAAC,CAAC;EAE3B,IAAAkC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACtB,YAAY,IAAI,CAACpB,QAAQ,IAAI,CAACa,OAAO,IAAIsB,YAAY,KAAKe,SAAS,EAAE;IAE1E,CAAC3B,QAAQ,IAAIL,OAAO,CAAC,EAAE,CAAC;IACxBgB,OAAO,CAACgB,SAAS,CAAC;IAClBC,aAAa,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAAC/B,YAAY,EAAEpB,QAAQ,EAAEa,OAAO,EAAEsB,YAAY,CAAC,CAAC;EAEnD,IAAAO,gBAAS,EAAC,MAAM;IACd,IAAI,CAACrC,MAAM,EAAE;IACb8C,aAAa,CAAC;MAAEC,QAAQ,EAAEnB;IAAK,CAAC,CAAC;IACjC;EACF,CAAC,EAAE,CAAC5B,MAAM,CAAC,CAAC;EAEZ,MAAMyE,kBAAkB,GAAGA,CAACC,cAAc,EAAEC,aAAa,KAAK;IAC5D,MAAM;MAAEC,aAAa,GAAG;IAAG,CAAC,GAAGF,cAAc;IAE7C,IAAIE,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACa,mBAAmB,CAAC,IAAIH,aAAa,EAAE;MAC7EzB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACW,gCAAgC,EAAE;UAAEC,SAAS,EAAEL;QAAc,CAAC;MAC/F,CAAC,CAAC;MACFnF,GAAG,CAAC;QAAEI,MAAM,EAAE;UAAEoC,QAAQ;UAAE3B,UAAU;UAAE4B,KAAK;UAAE+C,SAAS,EAAE;QAAG;MAAE,CAAC,CAAC;MAC/D9B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAAC6B,sBAAsB,EAAE;QAAED,SAAS,EAAEnC;MAAU,CAAC,CAAC;IACvE,CAAC,MAAM,IAAI8B,aAAa,KAAK/E,MAAM,CAACoF,SAAS,EAAE;MAC7C9B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAAC6B,sBAAsB,EAAE;QAAED,SAAS,EAAEL;MAAc,CAAC,CAAC;IAC3E;IACA,IAAIC,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACiB,cAAc,CAAC,IAAI3E,SAAS,CAAC4E,UAAU,EAAE;MAC/EjC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACgB,2BAA2B;MAC5D,CAAC,CAAC;IACJ;IACA,IAAIR,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACoB,eAAe,CAAC,IAAI9E,SAAS,CAAC+E,QAAQ,EAAE;MAC9EpC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACmB,4BAA4B;MAC7D,CAAC,CAAC;IACJ;EACF,CAAC;EAED,MAAMC,KAAK,GAAG,eAAAA,CAAA,EAKH;IAAA,IALU;MACnBzC,QAAQ;MACR0C,cAAc,GAAGpF,UAAU;MAC3BqF,SAAS,GAAGzD,KAAK;MACjB0C,aAAa,GAAG/E,MAAM,CAACoF;IACzB,CAAC,GAAAW,SAAA,CAAAvD,MAAA,QAAAuD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;IACJ,IAAIlF,QAAQ,EAAE;IAEd,MAAM;MAAEX,EAAE,EAAE,CAAC8F,SAAS,CAAC,GAAG;IAAG,CAAC,GAAG3D,KAAK,IAAI,CAAC,CAAC;IAC5C,MAAM;MAAEnC,EAAE,EAAE,CAAC+F,MAAM,CAAC,GAAG;IAAG,CAAC,GAAGH,SAAS,IAAI,CAAC,CAAC;IAC7C,IAAII,gBAAgB;IACpB,IAAIJ,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEK,OAAO,IAAIH,SAAS,KAAKC,MAAM,EAAE;MAC9C,MAAM;QAAEG,QAAQ,GAAG;MAAG,CAAC,GAAGtG,IAAI;MAC9B,MAAMuG,cAAc,GAAGD,QAAQ,CAACE,IAAI,CAAC;QAAA,IAAC;UAAEpG,EAAE,GAAG;QAAG,CAAC,GAAA6F,SAAA,CAAAvD,MAAA,QAAAuD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;QAAA,OAAK7F,EAAE,CAACqG,QAAQ,CAAC,CAAC,KAAKN,MAAM,CAACM,QAAQ,CAAC,CAAC;MAAA,EAAC;MAC/FL,gBAAgB,GAAGG,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEhF,QAAQ;MAC3C,IAAIgF,cAAc,IAAIH,gBAAgB,KAAK/E,YAAY,EAAE;QACvDmC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACC,iBAAiB,EAAEyC,gBAAgB,CAAC;QAExD;MACF;IACF;IAEA5C,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACgD,MAAM,EAAE;MAAEpE,QAAQ,EAAEa;IAAU,CAAC,CAAC;IAEpDtB,WAAW,CAAC,IAAI,CAAC;IACjBI,gBAAgB,CAAC,CAAC;IAElB,IAAIpB,SAAS,GAAG,IAAA8F,uBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC;IAC/C,IAAI,CAAChG,SAAS,CAACiG,OAAO,IAAI,CAACjG,SAAS,CAACkG,MAAM,IAAI,CAAClG,SAAS,CAACmG,OAAO,EAAE;MACjEnG,SAAS,GAAG;QAAE,GAAGA,SAAS;QAAE,GAAG,IAAAoG,yBAAe,EAAC;UAAE,GAAG/G,MAAM;UAAEC;QAAM,CAAC;MAAE,CAAC;MACtE,IAAA+G,0BAAgB,EAACrG,SAAS,CAAC;IAC7B;IAEA,MAAMsG,MAAM,GAAG;MACb,GAAGtG,SAAS;MACZ,IAAIb,IAAI,CAACoH,MAAM,GAAG;QAAEpH,IAAI;QAAEqB;MAAa,CAAC,GAAG8B,SAAS,CAAC;MACrD/C,EAAE;MACFE,MAAM;MACNM,QAAQ;MACR4B,MAAM;MACN7B,UAAU,EAAEoF,cAAc;MAC1BxD,KAAK;MACL8E,WAAW,EAAE7G,IAAI,CAAC8G,GAAG,CAAC;QAAA,IAAC;UAAEC;QAAO,CAAC,GAAAtB,SAAA,CAAAvD,MAAA,QAAAuD,SAAA,QAAA9C,SAAA,GAAA8C,SAAA,MAAG,CAAC,CAAC;QAAA,OAAKsB,MAAM;MAAA,EAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAC5D1G,OAAO;MACPsB;IACF,CAAC;IACD,IAAIiB,QAAQ,KAAKF,SAAS,EAAEgE,MAAM,CAACH,OAAO,GAAG,IAAAS,wBAAc,EAAC,CAAC1B,cAAc,CAAC1C,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5F,MAAMqE,aAAa,GAAG,EAAEnI,SAAS;IACjC,MAAMyF,cAAc,GAAG,MAAM2C,sBAAY,CAACC,GAAG,CAACT,MAAM,CAAC,CAACrC,KAAK,CAAC7C,gBAAgB,CAAC;IAC7E,IAAIyF,aAAa,KAAKnI,SAAS,EAAE;IAEjC,IAAIyF,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAE6C,eAAe,EAAE,OAAO,IAAAC,iBAAO,EAAC;MAAE9H,IAAI;MAAEK;IAAS,CAAC,CAAC;IAEvE,IAAI2E,cAAc,EAAE;MAClBD,kBAAkB,CAACC,cAAc,EAAEC,aAAa,CAAC;MAEjD,IAAI,CAAAc,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAErD,MAAM,IAAG,CAAC,IAAIW,QAAQ,KAAKF,SAAS,EAAEhB,OAAO,CAAC,CAAC,CAAC;IACtE;IAEAR,aAAa,CAACqD,cAAc,CAAC;IAC7BnD,WAAW,CAAC,KAAK,CAAC;IAElB,IAAImD,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAE+C,MAAM,EAAEvE,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;MAAElE,EAAE,EAAE;IAAgB,CAAC,CAAC;EACnF,CAAC;EAED,MAAMgD,aAAa,GAAG,IAAA4E,iBAAQ,EAAClC,KAAK,EAAE,EAAE,CAAC;EAEzC,OAAO;IACLmC,OAAO,EAAE;MAAE9G,OAAO;MAAEM,WAAW;MAAEE,aAAa;MAAEI,YAAY;MAAEI,OAAO;MAAEE;IAAgB,CAAC;IACxFG,MAAM;IACNC,SAAS;IACTqD,KAAK,EAAE1C,aAAa;IACpBnC,eAAe;IACfe,aAAa;IACbkG,KAAK,EAAE;MAAE1H,IAAI;MAAEa,YAAY;MAAEG,QAAQ;MAAEE,UAAU;MAAEE,QAAQ;MAAEE,SAAS;MAAEI,IAAI;MAAEE;IAAa;EAC7F,CAAC;AACH,CAAC;AAAC+F,OAAA,CAAA3I,QAAA,GAAAA,QAAA"}
|
|
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","debounceFetch","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","fetch","nextOccupation","nextPlace","arguments","currentId","nextId","nextClubDiscount","isHotel","variants","currentVariant","find","toString","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","debounce","actions","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 && debounceFetch({ 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 debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch({ 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 ({\n nextRoom,\n nextOccupation = occupation,\n nextPlace = place,\n nextPromocode = finder.promocode,\n } = {}) => {\n if (skeleton) return;\n\n const { id: [currentId] = [] } = place || {};\n const { id: [nextId] = [] } = nextPlace || {};\n let nextClubDiscount;\n if (nextPlace?.isHotel && currentId !== nextId) {\n const { variants = [] } = club;\n const currentVariant = variants.find(({ id = '' } = {}) => id.toString() === nextId.toString());\n nextClubDiscount = currentVariant?.discount;\n if (currentVariant && nextClubDiscount !== clubDiscount) {\n Event.publish(EVENT.RATES_FILTER_CLUB, nextClubDiscount);\n\n return;\n }\n }\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 currency,\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 const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
|