@mirai/core 0.4.200 → 0.4.202

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.
@@ -34,32 +34,63 @@ const BannerLoyalty = _ref => {
34
34
  const {
35
35
  value: {
36
36
  club: {
37
+ active,
37
38
  banner: {
38
- benefits = [],
39
+ benefits: storeBenefits = [],
39
40
  description = {},
40
41
  title,
41
42
  url
42
43
  } = {},
43
- discount
44
+ discount,
45
+ variants
46
+ } = {},
47
+ finder: {
48
+ place
44
49
  } = {},
45
50
  session,
46
51
  skeleton = false
47
52
  }
48
53
  } = (0, _dataSources.useStore)();
54
+ const [benefits, setBenefits] = (0, _react.useState)(storeBenefits);
55
+ const [clubActive, setClubActive] = (0, _react.useState)(active);
56
+ const [clubDiscount, setClubDiscount] = (0, _react.useState)(discount);
49
57
  const [expanded, setExpanded] = (0, _react.useState)(false);
50
58
  const [scrollIndex, setScrollIndex] = (0, _react.useState)(0);
51
- const [clubDiscount, setClubDiscount] = (0, _react.useState)(discount);
52
59
  (0, _react.useEffect)(() => {
53
- const callback = nextClubDiscount => setClubDiscount(nextClubDiscount);
60
+ const callback = nextClubDiscount => setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);
54
61
  _dataSources.Event.subscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
55
62
  return () => _dataSources.Event.unsubscribe(_helpers.EVENT.RATES_FILTER_CLUB, callback);
56
63
  }, []);
64
+ (0, _react.useEffect)(() => setBenefits(storeBenefits), [storeBenefits]);
57
65
  (0, _react.useEffect)(() => {
58
66
  if (!session && title && benefits.length > 0) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
59
67
  id: 'BANNER_LOYALTY:RENDER'
60
68
  });
61
69
  // eslint-disable-next-line react-hooks/exhaustive-deps
62
70
  }, [session]);
71
+ (0, _react.useEffect)(() => {
72
+ if (!place) return;
73
+ const {
74
+ id: [hotelId] = [],
75
+ isHotel
76
+ } = place || {};
77
+ if (hotelId && isHotel && variants) {
78
+ const {
79
+ active,
80
+ banner: {
81
+ benefits: nextBenefits
82
+ } = {}
83
+ } = variants.find(function () {
84
+ let {
85
+ id = ''
86
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
87
+ return id.toString() === hotelId.toString();
88
+ }) || {};
89
+ nextBenefits && setBenefits(nextBenefits);
90
+ setClubActive(active);
91
+ }
92
+ // eslint-disable-next-line react-hooks/exhaustive-deps
93
+ }, [place]);
63
94
  const handleExpanded = () => {
64
95
  if (!expanded) _dataSources.Event.publish(_helpers.EVENT.METRICS, {
65
96
  id: 'BANNER_LOYALTY:EXPAND_BENEFITS'
@@ -97,7 +128,7 @@ const BannerLoyalty = _ref => {
97
128
  };
98
129
  const lastBenefit = scrollIndex === benefits.length - 4;
99
130
  const locale = (0, _helpers.getNormalizedLocale)(stateLocale);
100
- return skeleton && !session ? /*#__PURE__*/_react.default.createElement(_BannerLoyalty3.default, null) : !session && title && benefits.length > 0 ? /*#__PURE__*/_react.default.createElement(_ui.View, {
131
+ return clubActive && skeleton && !session ? /*#__PURE__*/_react.default.createElement(_BannerLoyalty3.default, null) : clubActive && !session && title ? /*#__PURE__*/_react.default.createElement(_ui.View, {
101
132
  testId: others.testId,
102
133
  className: [style.container, others.className]
103
134
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
@@ -139,7 +170,7 @@ const BannerLoyalty = _ref => {
139
170
  onPress: handleExpanded
140
171
  }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
141
172
  value: expanded ? _helpers.ICON.EXPAND_LESS : _helpers.ICON.EXPAND_MORE
142
- })) : /*#__PURE__*/_react.default.createElement(Filter, null)), (!isMobile || expanded) && /*#__PURE__*/_react.default.createElement(_ui.View, {
173
+ })) : clubDiscount !== undefined && /*#__PURE__*/_react.default.createElement(Filter, null)), (!isMobile || expanded) && benefits.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.View, {
143
174
  row: true,
144
175
  wide: true
145
176
  }, !isMobile && scrollIndex !== 0 && /*#__PURE__*/_react.default.createElement(_ui.Button, _extends({}, buttonProps, {
@@ -174,7 +205,7 @@ const BannerLoyalty = _ref => {
174
205
  onPress: () => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)
175
206
  }), /*#__PURE__*/_react.default.createElement(_ui.Icon, {
176
207
  value: lastBenefit ? _helpers.ICON.REPLAY : _helpers.ICON.RIGHT
177
- }))), isMobile && /*#__PURE__*/_react.default.createElement(Filter, null)) : null;
208
+ }))), isMobile && clubDiscount !== undefined && /*#__PURE__*/_react.default.createElement(Filter, null)) : null;
178
209
  };
179
210
  exports.BannerLoyalty = BannerLoyalty;
180
211
  BannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';
@@ -1 +1 @@
1
- {"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","BannerLoyalty","_ref","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","value","club","banner","benefits","description","title","url","discount","session","skeleton","useStore","expanded","setExpanded","useState","scrollIndex","setScrollIndex","clubDiscount","setClubDiscount","useEffect","callback","nextClubDiscount","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","publish","METRICS","id","handleExpanded","handlePressBenefit","index","handlePressFilter","Filter","createElement","View","row","className","filter","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","BENEFIT_MIN_WIDTH","list","map","icon","undefined","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: {\n club: { banner: { benefits = [], description = {}, title, url } = {}, discount } = {},\n session,\n skeleton = false,\n },\n } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n const [clubDiscount, setClubDiscount] = useState(discount);\n\n useEffect(() => {\n const callback = (nextClubDiscount) => setClubDiscount(nextClubDiscount);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => {\n if (!session && title && benefits.length > 0) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:RENDER' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n const handleExpanded = () => {\n if (!expanded) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:EXPAND_BENEFITS' });\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:BUTTON_BENEFITS' });\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:CLUBDISCOUNT', value });\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch checked={clubDiscount} name={`switch`} onChange={handlePressFilter} />\n </View>\n );\n\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return skeleton && !session ? (\n <Skeleton />\n ) : !session && title && benefits.length > 0 ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action\n action={isDesktop}\n bold\n small={!isDesktop}\n href={url}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action\n action={isDesktop}\n small={!isDesktop}\n href={clubConditions}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile ? { horizontal: !isMobile, scrollTo: scrollIndex * BENEFIT_MIN_WIDTH } : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":"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"}
1
+ {"version":3,"file":"BannerLoyalty.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_BannerLoyalty","_BannerLoyalty2","style","_BannerLoyalty3","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","BannerLoyalty","_ref","clubConditions","others","isDesktop","isMobile","useDevice","locale","stateLocale","translate","useLocale","value","club","active","banner","benefits","storeBenefits","description","title","url","discount","variants","finder","place","session","skeleton","useStore","setBenefits","useState","clubActive","setClubActive","clubDiscount","setClubDiscount","expanded","setExpanded","scrollIndex","setScrollIndex","useEffect","callback","nextClubDiscount","undefined","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","publish","METRICS","id","hotelId","isHotel","nextBenefits","find","toString","handleExpanded","handlePressBenefit","index","handlePressFilter","Filter","createElement","View","row","className","filter","Text","action","medium","L10N","LABEL_ONLY_MEMBERS","Switch","checked","name","onChange","buttonProps","secondary","squared","rounded","lastBenefit","getNormalizedLocale","testId","container","highlight","bold","brand","headline","level","DEFAULT_LOCALE","small","Fragment","Action","href","underline","textInline","ACTION_MORE_INFO","LABEL_CLUB_CONDITIONS","conditions","ACTION_CLUB_VIEW_CONDITIONS","Button","transparent","onPress","Icon","ICON","EXPAND_LESS","EXPAND_MORE","wide","LEFT","React","ScrollView","horizontal","scrollTo","BENEFIT_MIN_WIDTH","list","map","icon","accent","AMENITY","REPLAY","RIGHT","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/BannerLoyalty/BannerLoyalty.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, ScrollView, Switch, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_LOCALE, BENEFIT_MIN_WIDTH } from './BannerLoyalty.constants';\nimport { L10N } from './BannerLoyalty.l10n';\nimport * as style from './BannerLoyalty.module.css';\nimport Skeleton from './BannerLoyalty.skeleton';\nimport { EVENT, getNormalizedLocale, ICON } from '../helpers';\n\nconst BannerLoyalty = ({ clubConditions, ...others }) => {\n const { isDesktop, isMobile } = useDevice();\n const { locale: stateLocale, translate } = useLocale();\n const {\n value: {\n club: {\n active,\n banner: { benefits: storeBenefits = [], description = {}, title, url } = {},\n discount,\n variants,\n } = {},\n finder: { place } = {},\n session,\n skeleton = false,\n },\n } = useStore();\n\n const [benefits, setBenefits] = useState(storeBenefits);\n const [clubActive, setClubActive] = useState(active);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [expanded, setExpanded] = useState(false);\n const [scrollIndex, setScrollIndex] = useState(0);\n\n useEffect(() => {\n const callback = (nextClubDiscount) =>\n setClubDiscount(typeof nextClubDiscount !== 'object' ? nextClubDiscount : undefined);\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, []);\n\n useEffect(() => setBenefits(storeBenefits), [storeBenefits]);\n\n useEffect(() => {\n if (!session && title && benefits.length > 0) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:RENDER' });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useEffect(() => {\n if (!place) return;\n\n const { id: [hotelId] = [], isHotel } = place || {};\n\n if (hotelId && isHotel && variants) {\n const { active, banner: { benefits: nextBenefits } = {} } =\n variants.find(({ id = '' } = {}) => id.toString() === hotelId.toString()) || {};\n nextBenefits && setBenefits(nextBenefits);\n setClubActive(active);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [place]);\n\n const handleExpanded = () => {\n if (!expanded) Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:EXPAND_BENEFITS' });\n setExpanded(!expanded);\n };\n\n const handlePressBenefit = (index) => {\n setScrollIndex(index);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:BUTTON_BENEFITS' });\n };\n\n const handlePressFilter = (value) => {\n Event.publish(EVENT.RATES_FILTER_CLUB, value);\n Event.publish(EVENT.METRICS, { id: 'BANNER_LOYALTY:CLUBDISCOUNT', value });\n };\n\n const Filter = () => (\n <View row className={style.filter}>\n <Text action medium>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n <Switch checked={clubDiscount} name={`switch`} onChange={handlePressFilter} />\n </View>\n );\n\n const buttonProps = { secondary: true, squared: true, rounded: true };\n const lastBenefit = scrollIndex === benefits.length - 4;\n const locale = getNormalizedLocale(stateLocale);\n\n return clubActive && skeleton && !session ? (\n <Skeleton />\n ) : clubActive && !session && title ? (\n <View testId={others.testId} className={[style.container, others.className]}>\n <View row className={style.highlight}>\n <View>\n <Text bold brand headline level={isDesktop ? 2 : 3} className={style.title}>\n {title[locale] || title[DEFAULT_LOCALE]}\n </Text>\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n {url && (\n <>\n {' '}\n <Action\n action={isDesktop}\n bold\n small={!isDesktop}\n href={url}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n )}\n </Text>\n {clubConditions && (\n <Text action={isDesktop} small={!isDesktop}>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action\n action={isDesktop}\n small={!isDesktop}\n href={clubConditions}\n target=\"_blank\"\n underline\n className={style.textInline}\n >\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n )}\n </View>\n\n {isMobile ? (\n <Button small squared transparent onPress={handleExpanded}>\n <Icon value={expanded ? ICON.EXPAND_LESS : ICON.EXPAND_MORE} />\n </Button>\n ) : (\n clubDiscount !== undefined && <Filter />\n )}\n </View>\n\n {(!isMobile || expanded) && benefits.length > 0 && (\n <View row wide>\n {!isMobile && scrollIndex !== 0 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(scrollIndex - 1)}>\n <Icon value={ICON.LEFT} />\n </Button>\n )}\n\n {React.createElement(\n isMobile ? View : ScrollView,\n {\n ...(!isMobile ? { horizontal: !isMobile, scrollTo: scrollIndex * BENEFIT_MIN_WIDTH } : {}),\n className: style.list,\n },\n benefits.map(({ description = {}, icon } = {}, index) => (\n <View row key={index}>\n <Icon accent headline level={!isDesktop ? 3 : 2} value={ICON[icon] || ICON.AMENITY} />\n <Text action={isDesktop} small={!isDesktop}>\n {description[locale] || description[DEFAULT_LOCALE]}\n </Text>\n </View>\n )),\n )}\n\n {!isMobile && benefits.length > 4 && (\n <Button {...buttonProps} onPress={() => handlePressBenefit(lastBenefit ? 0 : scrollIndex + 1)}>\n <Icon value={lastBenefit ? ICON.REPLAY : ICON.RIGHT} />\n </Button>\n )}\n </View>\n )}\n\n {isMobile && clubDiscount !== undefined && <Filter />}\n </View>\n ) : null;\n};\n\nBannerLoyalty.displayName = 'Mirai:Core:BannerLoyalty';\n\nBannerLoyalty.propTypes = {\n clubConditions: PropTypes.string,\n};\n\nexport { BannerLoyalty };\n"],"mappings":"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"}
@@ -23,15 +23,20 @@ let focused = false;
23
23
  const ButtonAvatar = _ref => {
24
24
  let {
25
25
  config: {
26
+ bottom,
27
+ image,
28
+ left = false,
26
29
  name = _Chat.DEFAULT_NAME,
27
- image
30
+ right,
31
+ top = false
28
32
  } = {},
29
33
  ready = false,
30
34
  visible,
31
35
  onPress
32
36
  } = _ref;
33
- const [focus, setFocus] = (0, _react.useState)(false);
34
- const [hide, setHide] = (0, _react.useState)(false);
37
+ const {
38
+ isMobile
39
+ } = (0, _ui.useDevice)();
35
40
  const {
36
41
  translate
37
42
  } = (0, _locale.useLocale)();
@@ -42,12 +47,14 @@ const ButtonAvatar = _ref => {
42
47
  } = {}
43
48
  }
44
49
  } = (0, _dataSources.useStore)();
50
+ const [focus, setFocus] = (0, _react.useState)(false);
51
+ const [hide, setHide] = (0, _react.useState)(false);
45
52
  (0, _react.useEffect)(() => {
46
53
  const callback = _ref2 => {
47
54
  let {
48
55
  visible: modalVisible
49
56
  } = _ref2;
50
- return setHide(modalVisible);
57
+ setHide(modalVisible);
51
58
  };
52
59
  _dataSources.Event.subscribe(_helpers2.EVENT.MODAL_VISIBLE, callback);
53
60
  return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.MODAL_VISIBLE, callback);
@@ -77,8 +84,15 @@ const ButtonAvatar = _ref => {
77
84
  if (focus) focused = true;
78
85
  }, [focus]);
79
86
  return /*#__PURE__*/_react.default.createElement(_ui.View, {
80
- className: (0, _ui.styles)(style.buttonAvatar, ready && !visible && !hide && style.visible)
87
+ className: (0, _ui.styles)(style.buttonAvatar, left ? style.left : style.right, top ? style.top : style.bottom, ready && !visible && !hide && style.visible),
88
+ style: {
89
+ top: top >= 1 ? top : undefined,
90
+ bottom: bottom >= 1 ? bottom : undefined,
91
+ left: left >= 1 ? left : undefined,
92
+ right: right >= 1 ? right : undefined
93
+ }
81
94
  }, /*#__PURE__*/_react.default.createElement(_ui.View, {
95
+ row: true,
82
96
  className: (0, _ui.styles)(style.welcome, focus && !visible && style.visible)
83
97
  }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
84
98
  action: true,
@@ -87,6 +101,15 @@ const ButtonAvatar = _ref => {
87
101
  }, translate(firstName ? _Chat2.L10N.LABEL_GREETINGS_SESSION : _Chat2.L10N.LABEL_GREETINGS, {
88
102
  firstName,
89
103
  name
104
+ })), isMobile && /*#__PURE__*/_react.default.createElement(_ui.Button, {
105
+ icon: "close",
106
+ small: true,
107
+ squared: true,
108
+ transparent: true,
109
+ onPress: () => setFocus(false)
110
+ }, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
111
+ value: _helpers2.ICON.CLOSE,
112
+ className: style.icon
90
113
  }))), /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
91
114
  onEnter: () => setFocus(true),
92
115
  onLeave: () => setFocus(false),
@@ -101,8 +124,12 @@ exports.ButtonAvatar = ButtonAvatar;
101
124
  ButtonAvatar.displayName = 'Mirai:Core:Chat.ButtonAvatar';
102
125
  ButtonAvatar.propTypes = {
103
126
  config: _propTypes.default.shape({
104
- name: _propTypes.default.arrayOf(_propTypes.default.string),
105
- string: _propTypes.default.arrayOf(_propTypes.default.string)
127
+ bottom: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number]),
128
+ image: _propTypes.default.string,
129
+ left: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number]),
130
+ name: _propTypes.default.string,
131
+ right: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number]),
132
+ top: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.number])
106
133
  }),
107
134
  ready: _propTypes.default.bool,
108
135
  visible: _propTypes.default.bool,
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.ButtonAvatar.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_helpers","_helpers2","_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","ButtonAvatar","_ref","config","name","DEFAULT_NAME","image","ready","visible","onPress","focus","setFocus","useState","hide","setHide","translate","useLocale","value","session","firstName","useStore","useEffect","callback","_ref2","modalVisible","Event","subscribe","EVENT","MODAL_VISIBLE","unsubscribe","inactivityTimer","resetTimer","clearTimeout","setTimeout","audioNotification","document","addEventListener","current","removeEventListener","createElement","View","className","styles","buttonAvatar","welcome","Text","action","markdown","medium","L10N","LABEL_GREETINGS_SESSION","LABEL_GREETINGS","Pressable","onEnter","onLeave","Avatar","disabled","avatar","exports","displayName","propTypes","PropTypes","shape","arrayOf","string","bool","func"],"sources":["../../../src/components/Chat/Chat.ButtonAvatar.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Pressable, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { DEFAULT_NAME } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { Avatar } from './components';\nimport { audioNotification } from './helpers';\nimport { EVENT } from '../helpers';\n\nconst DELAY_WELCOME = 10000;\nlet focused = false;\n\nconst ButtonAvatar = ({ config: { name = DEFAULT_NAME, image } = {}, ready = false, visible, onPress }) => {\n const [focus, setFocus] = useState(false);\n const [hide, setHide] = useState(false);\n const { translate } = useLocale();\n const {\n value: { session: { firstName } = {} },\n } = useStore();\n\n useEffect(() => {\n const callback = ({ visible: modalVisible }) => setHide(modalVisible);\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 audioNotification();\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 className={styles(style.buttonAvatar, ready && !visible && !hide && style.visible)}>\n <View className={styles(style.welcome, focus && !visible && style.visible)}>\n <Text action markdown={false} medium>\n {translate(firstName ? L10N.LABEL_GREETINGS_SESSION : L10N.LABEL_GREETINGS, { firstName, name })}\n </Text>\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\nButtonAvatar.displayName = 'Mirai:Core:Chat.ButtonAvatar';\n\nButtonAvatar.propTypes = {\n config: PropTypes.shape({\n name: PropTypes.arrayOf(PropTypes.string),\n string: PropTypes.arrayOf(PropTypes.string),\n }),\n ready: PropTypes.bool,\n visible: PropTypes.bool,\n onPress: PropTypes.func,\n};\n\nexport { ButtonAvatar };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAC,uBAAA,CAAAN,OAAA;AAEA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAH,uBAAA,CAAAN,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AAAmC,SAAAa,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,SAAAR,wBAAAQ,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,SAAAlB,uBAAA8B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAEnC,MAAMC,aAAa,GAAG,KAAK;AAC3B,IAAIC,OAAO,GAAG,KAAK;AAEnB,MAAMC,YAAY,GAAGC,IAAA,IAAsF;EAAA,IAArF;IAAEC,MAAM,EAAE;MAAEC,IAAI,GAAGC,kBAAY;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IAAEC,KAAK,GAAG,KAAK;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAAP,IAAA;EACpG,MAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACzC,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM;IAAEG;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IACJC,KAAK,EAAE;MAAEC,OAAO,EAAE;QAAEC;MAAU,CAAC,GAAG,CAAC;IAAE;EACvC,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGC,KAAA;MAAA,IAAC;QAAEf,OAAO,EAAEgB;MAAa,CAAC,GAAAD,KAAA;MAAA,OAAKT,OAAO,CAACU,YAAY,CAAC;IAAA;IAErEC,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,aAAa,EAAEN,QAAQ,CAAC;IAC9C,OAAO,MAAMG,kBAAK,CAACI,WAAW,CAACF,eAAK,CAACC,aAAa,EAAEN,QAAQ,CAAC;EAC/D,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACd,KAAK,IAAIP,OAAO,EAAE;IACvB,IAAI8B,eAAe;IAEnB,MAAMC,UAAU,GAAGA,CAAA,KAAM;MACvBC,YAAY,CAACF,eAAe,CAAC;MAC7B,IAAI9B,OAAO,EAAE;MACb8B,eAAe,GAAGG,UAAU,CAAC,MAAM;QACjCtB,QAAQ,CAAC,IAAI,CAAC;QACd,IAAAuB,0BAAiB,EAAC,CAAC;QACnBF,YAAY,CAACF,eAAe,CAAC;MAC/B,CAAC,EAAE/B,aAAa,CAAC;IACnB,CAAC;IAEDoC,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEL,UAAU,CAAC;IAClDI,QAAQ,CAACC,gBAAgB,CAAC,QAAQ,EAAEL,UAAU,CAAC;IAE/CA,UAAU,CAAC,CAAC;IAEZ,OAAO,MAAM;MACXC,YAAY,CAACF,eAAe,CAACO,OAAO,CAAC;MACrCF,QAAQ,CAACG,mBAAmB,CAAC,WAAW,EAAEP,UAAU,CAAC;MACrDI,QAAQ,CAACG,mBAAmB,CAAC,QAAQ,EAAEP,UAAU,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACxB,KAAK,CAAC,CAAC;EAEX,IAAAc,gBAAS,EAAC,MAAM;IACd,IAAIX,KAAK,EAAEV,OAAO,GAAG,IAAI;EAC3B,CAAC,EAAE,CAACU,KAAK,CAAC,CAAC;EAEX,oBACEzC,MAAA,CAAAc,OAAA,CAAAwD,aAAA,CAACzE,GAAA,CAAA0E,IAAI;IAACC,SAAS,EAAE,IAAAC,UAAM,EAACrE,KAAK,CAACsE,YAAY,EAAEpC,KAAK,IAAI,CAACC,OAAO,IAAI,CAACK,IAAI,IAAIxC,KAAK,CAACmC,OAAO;EAAE,gBACvFvC,MAAA,CAAAc,OAAA,CAAAwD,aAAA,CAACzE,GAAA,CAAA0E,IAAI;IAACC,SAAS,EAAE,IAAAC,UAAM,EAACrE,KAAK,CAACuE,OAAO,EAAElC,KAAK,IAAI,CAACF,OAAO,IAAInC,KAAK,CAACmC,OAAO;EAAE,gBACzEvC,MAAA,CAAAc,OAAA,CAAAwD,aAAA,CAACzE,GAAA,CAAA+E,IAAI;IAACC,MAAM;IAACC,QAAQ,EAAE,KAAM;IAACC,MAAM;EAAA,GACjCjC,SAAS,CAACI,SAAS,GAAG8B,WAAI,CAACC,uBAAuB,GAAGD,WAAI,CAACE,eAAe,EAAE;IAAEhC,SAAS;IAAEf;EAAK,CAAC,CAC3F,CACF,CAAC,eAEPnC,MAAA,CAAAc,OAAA,CAAAwD,aAAA,CAACzE,GAAA,CAAAsF,SAAS;IAACC,OAAO,EAAEA,CAAA,KAAM1C,QAAQ,CAAC,IAAI,CAAE;IAAC2C,OAAO,EAAEA,CAAA,KAAM3C,QAAQ,CAAC,KAAK,CAAE;IAACF,OAAO,EAAEA;EAAQ,gBACzFxC,MAAA,CAAAc,OAAA,CAAAwD,aAAA,CAACjE,WAAA,CAAAiF,MAAM;IAACC,QAAQ,EAAEhD,OAAQ;IAACF,KAAK,EAAEA,KAAM;IAACmC,SAAS,EAAEpE,KAAK,CAACoF;EAAO,CAAE,CAC1D,CACP,CAAC;AAEX,CAAC;AAACC,OAAA,CAAAzD,YAAA,GAAAA,YAAA;AAEFA,YAAY,CAAC0D,WAAW,GAAG,8BAA8B;AAEzD1D,YAAY,CAAC2D,SAAS,GAAG;EACvBzD,MAAM,EAAE0D,kBAAS,CAACC,KAAK,CAAC;IACtB1D,IAAI,EAAEyD,kBAAS,CAACE,OAAO,CAACF,kBAAS,CAACG,MAAM,CAAC;IACzCA,MAAM,EAAEH,kBAAS,CAACE,OAAO,CAACF,kBAAS,CAACG,MAAM;EAC5C,CAAC,CAAC;EACFzD,KAAK,EAAEsD,kBAAS,CAACI,IAAI;EACrBzD,OAAO,EAAEqD,kBAAS,CAACI,IAAI;EACvBxD,OAAO,EAAEoD,kBAAS,CAACK;AACrB,CAAC"}
1
+ {"version":3,"file":"Chat.ButtonAvatar.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_helpers","_helpers2","_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","ButtonAvatar","_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","audioNotification","document","addEventListener","current","removeEventListener","createElement","View","className","styles","buttonAvatar","undefined","row","welcome","Text","action","markdown","medium","L10N","LABEL_GREETINGS_SESSION","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/Chat.ButtonAvatar.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 { DEFAULT_NAME } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { Avatar } from './components';\nimport { audioNotification } from './helpers';\nimport { EVENT, ICON } from '../helpers';\n\nconst DELAY_WELCOME = 10000;\nlet focused = false;\n\nconst ButtonAvatar = ({\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 audioNotification();\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.buttonAvatar,\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 <Text action markdown={false} medium>\n {translate(firstName ? L10N.LABEL_GREETINGS_SESSION : L10N.LABEL_GREETINGS, { firstName, name })}\n </Text>\n {isMobile && (\n <Button icon=\"close\" small squared transparent onPress={() => setFocus(false)}>\n <Icon value={ICON.CLOSE} className={style.icon} />\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\nButtonAvatar.displayName = 'Mirai:Core:Chat.ButtonAvatar';\n\nButtonAvatar.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 { ButtonAvatar };\n"],"mappings":"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"}
@@ -19,8 +19,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
  const Header = _ref => {
20
20
  let {
21
21
  config: {
22
- name = _Chat.DEFAULT_NAME,
23
- image
22
+ image,
23
+ name = _Chat.DEFAULT_NAME
24
24
  } = {},
25
25
  form: {
26
26
  dates: [checkin, checkout] = [],
@@ -130,8 +130,8 @@ exports.Header = Header;
130
130
  Header.displayName = 'Mirai:Core:Chat.Header';
131
131
  Header.propTypes = {
132
132
  config: _propTypes.default.shape({
133
- name: _propTypes.default.arrayOf(_propTypes.default.string),
134
- string: _propTypes.default.arrayOf(_propTypes.default.string)
133
+ image: _propTypes.default.string,
134
+ name: _propTypes.default.string
135
135
  }),
136
136
  form: _propTypes.default.shape({
137
137
  dates: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.Header.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_Chat","_Chat2","style","_interopRequireWildcard","_components","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Header","_ref","config","name","DEFAULT_NAME","image","form","dates","checkin","checkout","occupation","online","onClose","dateFormat","translate","useLocale","hasDates","hasOccupation","length","createElement","View","className","styles","header","row","content","Avatar","small","wide","Text","bold","concat","L10N","LABEL_ASSISTANT","bullet","offline","light","LABEL_ONLINE","LABEL_OFFLINE","Button","squared","tooltip","ACTION_CLOSE","transparent","onPress","Icon","value","ICON","CLOSE","parseDate","undefined","filter","date","map","index","key","field","CALENDAR","capitalize","weekday","day","month","headline","anchor","PEOPLE","amount","ages","arguments","join","LABEL_WHO","exports","displayName","propTypes","PropTypes","shape","arrayOf","string","any","bool","visible","func"],"sources":["../../../src/components/Chat/Chat.Header.js"],"sourcesContent":["import { parseDate, useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { DEFAULT_NAME } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { Avatar } from './components';\nimport { ICON } from '../helpers';\n\nconst Header = ({\n config: { name = DEFAULT_NAME, image } = {},\n form: { dates: [checkin, checkout] = [], occupation: [occupation = []] = [] } = {},\n online,\n onClose,\n}) => {\n const { dateFormat, translate } = useLocale();\n\n // ! TODO: Change <Finder> with <Chat> values\n // const { set, value: { finder: storeFinder } = {} } = useStore();\n\n // useEffect(() => {\n // if (!visible) return;\n // const nextFinder = {};\n\n // if (checkin) nextFinder.calendar = [parseDate(checkin), parseDate(checkout)];\n // if (occupation.length > 0) nextFinder.occupation = [occupation];\n\n // if (JSON.stringify(storeFinder) !== JSON.stringify({ ...storeFinder, ...nextFinder })) {\n // console.log('<Chat.Header>::effect', { storeFinder, nextFinder });\n // set({ finder: { ...storeFinder, ...nextFinder } });\n // }\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [checkin, storeFinder, occupation, visible]);\n\n const hasDates = !!checkin;\n const hasOccupation = occupation.length > 0;\n\n return (\n <View className={styles(style.header, hasDates || hasOccupation)}>\n <View row className={style.content}>\n <Avatar {...{ image }} small />\n <View wide>\n <Text bold>{`${name} - ${translate(L10N.LABEL_ASSISTANT)}`}</Text>\n <View row>\n <View className={styles(style.bullet, online ? style.online : style.offline)} />\n <Text small light>\n {translate(online ? L10N.LABEL_ONLINE : L10N.LABEL_OFFLINE)}\n </Text>\n </View>\n </View>\n\n <View row>\n <Button small squared tooltip={translate(L10N.ACTION_CLOSE)} transparent onPress={onClose}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n </View>\n\n {(hasDates || hasOccupation) && (\n <View row className={style.form}>\n {hasDates &&\n [parseDate(checkin), checkout ? parseDate(checkout) : undefined]\n .filter((date) => !!date)\n .map((date, index) => (\n <View key={`date:${index}`} row className={style.field}>\n {index === 0 && <Icon light value={ICON.CALENDAR} />}\n <View>\n <Text bold capitalize>\n {dateFormat(date, { weekday: 'long' })}\n </Text>\n <Text small light>\n {dateFormat(date, { day: 'numeric', month: 'long' })}\n </Text>\n </View>\n\n {((index === 0 && checkout) || (index === 1 && hasOccupation)) && (\n <Text light headline className={index === 1 && hasOccupation ? style.anchor : undefined}>\n {index === 0 ? '—' : '>'}\n </Text>\n )}\n </View>\n ))}\n\n {hasOccupation && (\n <View row className={style.field}>\n <Icon light value={ICON.PEOPLE} />\n <View>\n <Text bold>{occupation.map(({ amount, ages = [] } = {}) => amount || ages.length).join(' + ')}</Text>\n <Text small light>\n {translate(L10N.LABEL_WHO)}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Chat.Header';\n\nHeader.propTypes = {\n config: PropTypes.shape({\n name: PropTypes.arrayOf(PropTypes.string),\n string: PropTypes.arrayOf(PropTypes.string),\n }),\n form: PropTypes.shape({\n dates: PropTypes.arrayOf(PropTypes.string),\n occupation: PropTypes.arrayOf(PropTypes.any),\n }),\n online: PropTypes.bool,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n};\n\nexport { Header };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Chat.Header.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_Chat","_Chat2","style","_interopRequireWildcard","_components","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Header","_ref","config","image","name","DEFAULT_NAME","form","dates","checkin","checkout","occupation","online","onClose","dateFormat","translate","useLocale","hasDates","hasOccupation","length","createElement","View","className","styles","header","row","content","Avatar","small","wide","Text","bold","concat","L10N","LABEL_ASSISTANT","bullet","offline","light","LABEL_ONLINE","LABEL_OFFLINE","Button","squared","tooltip","ACTION_CLOSE","transparent","onPress","Icon","value","ICON","CLOSE","parseDate","undefined","filter","date","map","index","key","field","CALENDAR","capitalize","weekday","day","month","headline","anchor","PEOPLE","amount","ages","arguments","join","LABEL_WHO","exports","displayName","propTypes","PropTypes","shape","string","arrayOf","any","bool","visible","func"],"sources":["../../../src/components/Chat/Chat.Header.js"],"sourcesContent":["import { parseDate, useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { DEFAULT_NAME } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { Avatar } from './components';\nimport { ICON } from '../helpers';\n\nconst Header = ({\n config: { image, name = DEFAULT_NAME } = {},\n form: { dates: [checkin, checkout] = [], occupation: [occupation = []] = [] } = {},\n online,\n onClose,\n}) => {\n const { dateFormat, translate } = useLocale();\n\n // ! TODO: Change <Finder> with <Chat> values\n // const { set, value: { finder: storeFinder } = {} } = useStore();\n\n // useEffect(() => {\n // if (!visible) return;\n // const nextFinder = {};\n\n // if (checkin) nextFinder.calendar = [parseDate(checkin), parseDate(checkout)];\n // if (occupation.length > 0) nextFinder.occupation = [occupation];\n\n // if (JSON.stringify(storeFinder) !== JSON.stringify({ ...storeFinder, ...nextFinder })) {\n // console.log('<Chat.Header>::effect', { storeFinder, nextFinder });\n // set({ finder: { ...storeFinder, ...nextFinder } });\n // }\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [checkin, storeFinder, occupation, visible]);\n\n const hasDates = !!checkin;\n const hasOccupation = occupation.length > 0;\n\n return (\n <View className={styles(style.header, hasDates || hasOccupation)}>\n <View row className={style.content}>\n <Avatar {...{ image }} small />\n <View wide>\n <Text bold>{`${name} - ${translate(L10N.LABEL_ASSISTANT)}`}</Text>\n <View row>\n <View className={styles(style.bullet, online ? style.online : style.offline)} />\n <Text small light>\n {translate(online ? L10N.LABEL_ONLINE : L10N.LABEL_OFFLINE)}\n </Text>\n </View>\n </View>\n\n <View row>\n <Button small squared tooltip={translate(L10N.ACTION_CLOSE)} transparent onPress={onClose}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n </View>\n\n {(hasDates || hasOccupation) && (\n <View row className={style.form}>\n {hasDates &&\n [parseDate(checkin), checkout ? parseDate(checkout) : undefined]\n .filter((date) => !!date)\n .map((date, index) => (\n <View key={`date:${index}`} row className={style.field}>\n {index === 0 && <Icon light value={ICON.CALENDAR} />}\n <View>\n <Text bold capitalize>\n {dateFormat(date, { weekday: 'long' })}\n </Text>\n <Text small light>\n {dateFormat(date, { day: 'numeric', month: 'long' })}\n </Text>\n </View>\n\n {((index === 0 && checkout) || (index === 1 && hasOccupation)) && (\n <Text light headline className={index === 1 && hasOccupation ? style.anchor : undefined}>\n {index === 0 ? '—' : '>'}\n </Text>\n )}\n </View>\n ))}\n\n {hasOccupation && (\n <View row className={style.field}>\n <Icon light value={ICON.PEOPLE} />\n <View>\n <Text bold>{occupation.map(({ amount, ages = [] } = {}) => amount || ages.length).join(' + ')}</Text>\n <Text small light>\n {translate(L10N.LABEL_WHO)}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n </View>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Chat.Header';\n\nHeader.propTypes = {\n config: PropTypes.shape({\n image: PropTypes.string,\n name: PropTypes.string,\n }),\n form: PropTypes.shape({\n dates: PropTypes.arrayOf(PropTypes.string),\n occupation: PropTypes.arrayOf(PropTypes.any),\n }),\n online: PropTypes.bool,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n};\n\nexport { Header };\n"],"mappings":"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"}
@@ -76,6 +76,24 @@
76
76
  transform: translateY(250%);
77
77
  }
78
78
 
79
+ .buttonAvatar.left {
80
+ left: var(--mirai-chat-space);
81
+ }
82
+
83
+ .buttonAvatar.right {
84
+ right: var(--mirai-chat-space);
85
+ }
86
+
87
+ .buttonAvatar.top {
88
+ top: var(--mirai-chat-space);
89
+ transform: translateY(-25svh);
90
+ }
91
+
92
+ .buttonAvatar.bottom {
93
+ bottom: var(--mirai-chat-space);
94
+ transform: translateY(25svh);
95
+ }
96
+
79
97
  .buttonAvatar.visible {
80
98
  transform: translateY(0%);
81
99
  z-index: var(--mirai-chat-layer);
@@ -88,36 +106,65 @@
88
106
  .buttonAvatar .welcome {
89
107
  background-color: var(--mirai-chat-base);
90
108
  border-radius: var(--mirai-chat-border-radius);
91
- bottom: 64px;
92
109
  box-shadow: var(--mirai-chat-box-shadow);
93
110
  margin-bottom: var(--mirai-chat-space);
94
111
  opacity: 0;
95
112
  padding: var(--mirai-chat-space);
96
113
  position: absolute;
97
- right: 0;
98
114
  transform-origin: bottom right;
99
115
  transform: scale(0);
100
116
  transition: all var(--mirai-ui-motion-collapse) cubic-bezier(0.68, -0.55, 0.27, 1.55);
101
117
  }
102
118
 
119
+ .buttonAvatar.left .welcome {
120
+ left: 0;
121
+ }
122
+
123
+ .buttonAvatar.right .welcome {
124
+ right: 0;
125
+ }
126
+
127
+ .buttonAvatar.top .welcome {
128
+ top: calc(var(--mirai-chat-avatar-size) + calc(var(--mirai-chat-space) / 2));
129
+ }
130
+
131
+ .buttonAvatar.bottom .welcome {
132
+ bottom: calc(var(--mirai-chat-avatar-size) - calc(var(--mirai-chat-space) / 2));
133
+ }
134
+
103
135
  .buttonAvatar .welcome.visible {
104
136
  opacity: 1;
105
137
  transform: scale(1);
106
138
  }
107
139
 
108
140
  .buttonAvatar .welcome:before {
109
- border-color: var(--mirai-chat-base) transparent transparent transparent;
110
141
  border-style: solid;
111
142
  border-width: calc(var(--mirai-chat-space) / 2);
112
- bottom: calc(var(--mirai-chat-space) / -1);
113
143
  content: '';
114
144
  display: block;
115
145
  height: 0;
116
146
  position: absolute;
117
- right: var(--mirai-ui-space-L);
118
147
  width: 0;
119
148
  }
120
149
 
150
+ .buttonAvatar.left .welcome:before {
151
+ left: var(--mirai-ui-space-L);
152
+ }
153
+
154
+ .buttonAvatar.right .welcome:before {
155
+ right: var(--mirai-ui-space-L);
156
+ }
157
+
158
+ .buttonAvatar.top .welcome:before {
159
+ border-color: transparent transparent var(--mirai-chat-base) transparent;
160
+ top: calc(var(--mirai-chat-space) / -1);
161
+ }
162
+
163
+ .buttonAvatar.bottom .welcome:before {
164
+ border-color: var(--mirai-chat-base) transparent transparent transparent;
165
+ bottom: calc(var(--mirai-chat-space) / -1);
166
+ }
167
+
121
168
  /* S */
122
169
  @media only screen and (max-width: 480px) {
123
170
  .container {
@@ -49,6 +49,7 @@ const Footer = _ref => {
49
49
  (0, _react.useEffect)(() => {
50
50
  const items = cart.filter(item => item !== undefined);
51
51
  _dataSources.Event.publish(_helpers3.EVENT.MODAL_VISIBLE, {
52
+ displayName: 'Mirai:Core:Rates:Footer',
52
53
  visible: items.length > 0
53
54
  });
54
55
  const content = refContainer === null || refContainer === void 0 ? void 0 : refContainer.current;
@@ -1 +1 @@
1
- {"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","style","_helpers2","_helpers3","_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","Footer","_ref","cart","clubRate","dataSource","taxesType","extras","multiRoom","occupation","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","refContainer","useRef","busy","setBusy","useState","useEffect","items","filter","item","undefined","Event","publish","EVENT","MODAL_VISIBLE","visible","content","current","ResizeObserver","observer","debounce","FOOTER_HEIGHT_CHANGE","height","offsetHeight","observe","unobserve","totalPrice","reduce","price","valid","handleSubmit","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","testId","createElement","View","ref","className","styles","footer","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","concat","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","description","bold","action","light","Button","disabled","large","onPress","L10N","ACTION_RESERVE","summary","headline","level","getLabelTaxes","PriceDetails","metrics","exports","displayName","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { PriceDetails } from './components/Item/components';\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { debounce } from '../../helpers';\nimport { EVENT, ICON } from '../helpers';\n\nconst Footer = ({\n cart = [],\n clubRate,\n dataSource: { taxesType } = {},\n extras,\n multiRoom,\n occupation = [],\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => {\n const items = cart.filter((item) => item !== undefined);\n\n Event.publish(EVENT.MODAL_VISIBLE, { visible: items.length > 0 });\n\n const content = refContainer?.current;\n if (!content || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(\n debounce(() =>\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: items.length ? content.offsetHeight : undefined }),\n ),\n );\n observer.observe(content);\n\n return () => observer.unobserve(content);\n }, [cart]);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !clubRate && setBusy(false), [clubRate]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n const visible = items.length > 0;\n const currencyFormatProps = { currency, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n const { testId } = others;\n\n return (\n <View\n {...others}\n ref={refContainer}\n className={styles(style.footer, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={`${id}${index}`} className={style.cartItem}>\n {multiRoom && (\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n )}\n\n <View className={style.description}>\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n {multiRoom && <Text light small>{` | ${boardName}`}</Text>}\n </Text>\n {!multiRoom && (\n <Text light small>\n {boardName}\n </Text>\n )}\n </View>\n\n <Text bold {...(multiRoom ? { action: !isMobile, small: isMobile } : { action: isMobile })}>\n {currencyFormat({ ...currencyFormatProps, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button small busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n {multiRoom && (\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ ...currencyFormatProps, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text light small>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n <PriceDetails cart={cart} metrics=\"RATES:FOOTER\" taxesType={taxesType} />\n </View>\n\n <Button\n busy={busy}\n disabled={!valid}\n large={!isMobile}\n onPress={handleSubmit}\n aria-label={translate(L10N.ACTION_RESERVE)}\n testId={testId ? `${testId}-reserve` : undefined}\n >\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n clubRate: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: 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","_components","_helpers","_Rates","style","_helpers2","_helpers3","_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","Footer","_ref","cart","clubRate","dataSource","taxesType","extras","multiRoom","occupation","onSubmit","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","refContainer","useRef","busy","setBusy","useState","useEffect","items","filter","item","undefined","Event","publish","EVENT","MODAL_VISIBLE","displayName","visible","content","current","ResizeObserver","observer","debounce","FOOTER_HEIGHT_CHANGE","height","offsetHeight","observe","unobserve","totalPrice","reduce","price","valid","handleSubmit","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","testId","createElement","View","ref","className","styles","footer","wrapper","wide","map","amount","id","name","boardName","roomName","index","guests","total","row","concat","cartItem","room","Icon","ICON","PERSON","GROUP","GROUPS","Text","small","description","bold","action","light","Button","disabled","large","onPress","L10N","ACTION_RESERVE","summary","headline","level","getLabelTaxes","PriceDetails","metrics","exports","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { PriceDetails } from './components/Item/components';\nimport { getLabelTaxes } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { debounce } from '../../helpers';\nimport { EVENT, ICON } from '../helpers';\n\nconst Footer = ({\n cart = [],\n clubRate,\n dataSource: { taxesType } = {},\n extras,\n multiRoom,\n occupation = [],\n onSubmit = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => {\n const items = cart.filter((item) => item !== undefined);\n\n Event.publish(EVENT.MODAL_VISIBLE, { displayName: 'Mirai:Core:Rates:Footer', visible: items.length > 0 });\n\n const content = refContainer?.current;\n if (!content || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(\n debounce(() =>\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: items.length ? content.offsetHeight : undefined }),\n ),\n );\n observer.observe(content);\n\n return () => observer.unobserve(content);\n }, [cart]);\n\n useEffect(() => !extras && setBusy(false), [extras]);\n\n useEffect(() => !clubRate && setBusy(false), [clubRate]);\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price = 0 } = {}) => value + price, 0);\n const valid = items.length === occupation.length;\n\n const handleSubmit = () => {\n setBusy(true);\n onSubmit();\n };\n\n const visible = items.length > 0;\n const currencyFormatProps = { currency, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n const { testId } = others;\n\n return (\n <View\n {...others}\n ref={refContainer}\n className={styles(style.footer, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name: boardName, price, roomName } = {}, index) => {\n const guests = occupation[index].reduce((total, { amount } = {}) => total + amount, 0);\n\n return (\n <View row key={`${id}${index}`} className={style.cartItem}>\n {multiRoom && (\n <View row className={style.room}>\n <Icon value={guests === 1 ? ICON.PERSON : guests === 2 ? ICON.GROUP : ICON.GROUPS} />\n <Text small>{guests}</Text>\n </View>\n )}\n\n <View className={style.description}>\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n {multiRoom && <Text light small>{` | ${boardName}`}</Text>}\n </Text>\n {!multiRoom && (\n <Text light small>\n {boardName}\n </Text>\n )}\n </View>\n\n <Text bold {...(multiRoom ? { action: !isMobile, small: isMobile } : { action: isMobile })}>\n {currencyFormat({ ...currencyFormatProps, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button small busy={busy} disabled={!valid} large={!isMobile} onPress={handleSubmit}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n {multiRoom && (\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ ...currencyFormatProps, value: totalPrice })}\n </Text>\n\n {!!taxesType && (\n <Text light small>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n <PriceDetails cart={cart} metrics=\"RATES:FOOTER\" taxesType={taxesType} />\n </View>\n\n <Button\n busy={busy}\n disabled={!valid}\n large={!isMobile}\n onPress={handleSubmit}\n aria-label={translate(L10N.ACTION_RESERVE)}\n testId={testId ? `${testId}-reserve` : undefined}\n >\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nFooter.displayName = 'Mirai:Core:Rates:Footer';\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n clubRate: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n extras: PropTypes.arrayOf(PropTypes.shape({})),\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onSubmit: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
@@ -137,10 +137,12 @@ const Rates = _ref => {
137
137
  }));
138
138
  const {
139
139
  occupation: nextOccupation,
140
+ place: nextPlace,
140
141
  promocode: nextPromocode
141
142
  } = values;
142
143
  fetch({
143
144
  nextOccupation,
145
+ nextPlace,
144
146
  nextPromocode
145
147
  });
146
148
  };