@mirai/core 0.4.261 → 0.4.263
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/Rates/Rates.Header.js +27 -7
- package/build/components/Rates/Rates.Header.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +2 -1
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +32 -2
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +3 -0
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/Rates.module.css +4 -0
- package/build/components/Rates/components/Filters/Filters.js +10 -0
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Preview.js +11 -6
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.module.css +8 -12
- package/build/components/Rates/components/ModalTwin/ModalTwin.Skeleton.js +47 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.Skeleton.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.constants.js +15 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.constants.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.js +294 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.l10n.js +27 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.l10n.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/ModalTwin.module.css +181 -0
- package/build/components/Rates/components/ModalTwin/components/CardExpanded.js +79 -0
- package/build/components/Rates/components/ModalTwin/components/CardExpanded.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/components/CardReduced.js +64 -0
- package/build/components/Rates/components/ModalTwin/components/CardReduced.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/components/Prices.js +64 -0
- package/build/components/Rates/components/ModalTwin/components/Prices.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/components/Slider.js +38 -0
- package/build/components/Rates/components/ModalTwin/components/Slider.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/components/index.js +50 -0
- package/build/components/Rates/components/ModalTwin/components/index.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/helpers/getUrl.js +40 -0
- package/build/components/Rates/components/ModalTwin/helpers/getUrl.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/helpers/index.js +17 -0
- package/build/components/Rates/components/ModalTwin/helpers/index.js.map +1 -0
- package/build/components/Rates/components/ModalTwin/index.js +17 -0
- package/build/components/Rates/components/ModalTwin/index.js.map +1 -0
- package/build/components/Rates/components/index.js +11 -0
- package/build/components/Rates/components/index.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/Session/Session.module.css +3 -3
- package/build/components/helpers/ICON.js +2 -0
- package/build/components/helpers/ICON.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ModalTwin = void 0;
|
|
7
|
+
var _dataSources = require("@mirai/data-sources");
|
|
8
|
+
var _locale = require("@mirai/locale");
|
|
9
|
+
var _ui = require("@mirai/ui");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _components = require("./components");
|
|
13
|
+
var _helpers = require("./helpers");
|
|
14
|
+
var _ModalTwin = require("./ModalTwin.l10n");
|
|
15
|
+
var style = _interopRequireWildcard(require("./ModalTwin.module.css"));
|
|
16
|
+
var _ModalTwin2 = require("./ModalTwin.Skeleton");
|
|
17
|
+
var _helpers2 = require("../../../../helpers");
|
|
18
|
+
var _helpers3 = require("../../../helpers");
|
|
19
|
+
var _helpers4 = require("../../helpers");
|
|
20
|
+
var _Filters = require("../Filters");
|
|
21
|
+
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
|
+
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; }
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
25
|
+
const ModalTwin = _ref => {
|
|
26
|
+
var _select;
|
|
27
|
+
let {
|
|
28
|
+
dataSource,
|
|
29
|
+
filters,
|
|
30
|
+
priceFactor,
|
|
31
|
+
visible,
|
|
32
|
+
onClose = () => {},
|
|
33
|
+
onFilter = () => {},
|
|
34
|
+
onSelect = () => {},
|
|
35
|
+
...others
|
|
36
|
+
} = _ref;
|
|
37
|
+
const {
|
|
38
|
+
translate
|
|
39
|
+
} = (0, _locale.useLocale)();
|
|
40
|
+
const {
|
|
41
|
+
isMobile
|
|
42
|
+
} = (0, _ui.useDevice)();
|
|
43
|
+
const {
|
|
44
|
+
value: {
|
|
45
|
+
finder: {
|
|
46
|
+
place: {
|
|
47
|
+
id: [hotelId] = [],
|
|
48
|
+
isHotel
|
|
49
|
+
} = {}
|
|
50
|
+
} = {},
|
|
51
|
+
hotel = {},
|
|
52
|
+
language
|
|
53
|
+
} = {}
|
|
54
|
+
} = (0, _dataSources.useStore)();
|
|
55
|
+
const iframeRef = (0, _react.useRef)();
|
|
56
|
+
const itemsRef = (0, _react.useRef)([]);
|
|
57
|
+
const [expanded, setExpanded] = (0, _react.useState)();
|
|
58
|
+
const [loaded, setLoaded] = (0, _react.useState)();
|
|
59
|
+
const [scrollTo, setScrollTo] = (0, _react.useState)();
|
|
60
|
+
const [selectedId, setSelectedId] = (0, _react.useState)();
|
|
61
|
+
(0, _react.useEffect)(() => {
|
|
62
|
+
const callback = _ref2 => {
|
|
63
|
+
let {
|
|
64
|
+
displayName
|
|
65
|
+
} = _ref2;
|
|
66
|
+
if (displayName !== ModalTwin.displayName) {
|
|
67
|
+
visible && _dataSources.Event.publish(_helpers3.EVENT.MODAL_VISIBLE, {
|
|
68
|
+
displayName: ModalTwin.displayName,
|
|
69
|
+
visible: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
_dataSources.Event.subscribe(_helpers3.EVENT.MODAL_VISIBLE, callback);
|
|
74
|
+
return () => _dataSources.Event.unsubscribe(_helpers3.EVENT.MODAL_VISIBLE, callback);
|
|
75
|
+
}, [visible]);
|
|
76
|
+
(0, _react.useEffect)(() => {
|
|
77
|
+
const callback = function () {
|
|
78
|
+
let event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
79
|
+
const {
|
|
80
|
+
data: {
|
|
81
|
+
isLoaded,
|
|
82
|
+
roomId
|
|
83
|
+
} = {},
|
|
84
|
+
origin
|
|
85
|
+
} = event;
|
|
86
|
+
if (origin !== process.env.TWIN_URL) return;
|
|
87
|
+
|
|
88
|
+
// eslint-disable-next-line no-console
|
|
89
|
+
console.log('Mensaje recibido:', event);
|
|
90
|
+
debounceSelectId(roomId);
|
|
91
|
+
if (isLoaded) setLoaded(true);
|
|
92
|
+
};
|
|
93
|
+
if (!isMobile && selectedId) setTimeout(() => {
|
|
94
|
+
var _itemsRef$current$sel;
|
|
95
|
+
return setScrollTo(((_itemsRef$current$sel = itemsRef.current[selectedId]) === null || _itemsRef$current$sel === void 0 ? void 0 : _itemsRef$current$sel.offsetTop) - 74);
|
|
96
|
+
}, 400);
|
|
97
|
+
window.addEventListener('message', callback);
|
|
98
|
+
return () => window.removeEventListener('message', callback);
|
|
99
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
100
|
+
}, [selectedId]);
|
|
101
|
+
(0, _react.useEffect)(() => {
|
|
102
|
+
setExpanded();
|
|
103
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
104
|
+
}, [dataSource, visible]);
|
|
105
|
+
(0, _react.useEffect)(() => {
|
|
106
|
+
if (!loaded) return;
|
|
107
|
+
_dataSources.Event.publish(_helpers3.EVENT.METRICS, {
|
|
108
|
+
id: 'RATES:MODAL_TWIN:LOADED'
|
|
109
|
+
});
|
|
110
|
+
setTimeout(() => handleChange(0), 1500);
|
|
111
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
112
|
+
}, [loaded]);
|
|
113
|
+
(0, _react.useEffect)(() => {
|
|
114
|
+
var _iframeRef$current, _iframeRef$current$co;
|
|
115
|
+
if (!filters || Object.keys(filters).length === 0) return;
|
|
116
|
+
iframeRef === null || iframeRef === void 0 ? void 0 : (_iframeRef$current = iframeRef.current) === null || _iframeRef$current === void 0 ? void 0 : (_iframeRef$current$co = _iframeRef$current.contentWindow) === null || _iframeRef$current$co === void 0 ? void 0 : _iframeRef$current$co.postMessage({
|
|
117
|
+
rooms: filteredItems.filter(function () {
|
|
118
|
+
let {
|
|
119
|
+
soldOut
|
|
120
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
121
|
+
return !soldOut;
|
|
122
|
+
}).map(function () {
|
|
123
|
+
let {
|
|
124
|
+
id
|
|
125
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
126
|
+
return id;
|
|
127
|
+
}).join(','),
|
|
128
|
+
soldOutRooms: filteredItems.filter(function () {
|
|
129
|
+
let {
|
|
130
|
+
soldOut
|
|
131
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
132
|
+
return soldOut;
|
|
133
|
+
}).map(function () {
|
|
134
|
+
let {
|
|
135
|
+
id
|
|
136
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
137
|
+
return id;
|
|
138
|
+
}).join(',')
|
|
139
|
+
}, process.env.TWIN_URL);
|
|
140
|
+
const selectedIndex = filteredItems.findIndex(function () {
|
|
141
|
+
let {
|
|
142
|
+
id
|
|
143
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
144
|
+
return id === selectedId;
|
|
145
|
+
});
|
|
146
|
+
if (selectedIndex === -1) handleChange(0);
|
|
147
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
148
|
+
}, [filters]);
|
|
149
|
+
const handleChange = index => {
|
|
150
|
+
if (index < 0 || index === selectedIndex || index >= filteredItems.length) return;
|
|
151
|
+
const {
|
|
152
|
+
id
|
|
153
|
+
} = filteredItems[index];
|
|
154
|
+
if (id !== selectedId) {
|
|
155
|
+
var _iframeRef$current2, _iframeRef$current2$c;
|
|
156
|
+
setSelectedId(id);
|
|
157
|
+
iframeRef === null || iframeRef === void 0 ? void 0 : (_iframeRef$current2 = iframeRef.current) === null || _iframeRef$current2 === void 0 ? void 0 : (_iframeRef$current2$c = _iframeRef$current2.contentWindow) === null || _iframeRef$current2$c === void 0 ? void 0 : _iframeRef$current2$c.postMessage({
|
|
158
|
+
roomId: id
|
|
159
|
+
}, process.env.TWIN_URL);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
const handleClose = () => {
|
|
163
|
+
_dataSources.Event.publish(_helpers3.EVENT.METRICS, {
|
|
164
|
+
id: 'RATES:MODAL_TWIN:CLOSE'
|
|
165
|
+
});
|
|
166
|
+
setSelectedId();
|
|
167
|
+
setLoaded();
|
|
168
|
+
onClose();
|
|
169
|
+
};
|
|
170
|
+
const handleSelect = id => {
|
|
171
|
+
var _filteredItems$find;
|
|
172
|
+
_dataSources.Event.publish(_helpers3.EVENT.METRICS, {
|
|
173
|
+
id: 'RATES:MODAL_TWIN:SELECT'
|
|
174
|
+
});
|
|
175
|
+
onSelect((_filteredItems$find = filteredItems.find(item => item.id === id)) === null || _filteredItems$find === void 0 ? void 0 : _filteredItems$find.boards[0]);
|
|
176
|
+
handleClose();
|
|
177
|
+
};
|
|
178
|
+
const debounceSelectId = (0, _helpers2.debounce)(roomId => {
|
|
179
|
+
if (roomId && Number(roomId) !== selectedId) {
|
|
180
|
+
setSelectedId(Number(roomId));
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
const {
|
|
184
|
+
items = []
|
|
185
|
+
} = dataSource || {};
|
|
186
|
+
const filteredItems = ((_select = (0, _helpers4.select)(items, filters, {
|
|
187
|
+
priceFactor
|
|
188
|
+
})) === null || _select === void 0 ? void 0 : _select.map(item => (0, _helpers4.filterItem)(item, filters, priceFactor))) || [];
|
|
189
|
+
const selectedIndex = selectedId ? filteredItems.findIndex(function () {
|
|
190
|
+
let {
|
|
191
|
+
id
|
|
192
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
193
|
+
return id === selectedId;
|
|
194
|
+
}) : undefined;
|
|
195
|
+
const url = (0, _react.useMemo)(() => (0, _helpers.getUrl)({
|
|
196
|
+
filteredItems,
|
|
197
|
+
hotel,
|
|
198
|
+
hotelId,
|
|
199
|
+
isHotel,
|
|
200
|
+
items,
|
|
201
|
+
language
|
|
202
|
+
}),
|
|
203
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
204
|
+
[hotel, hotelId, isHotel, language]);
|
|
205
|
+
return /*#__PURE__*/_react.default.createElement(_ui.Modal, _extends({}, others, {
|
|
206
|
+
displayName: ModalTwin.displayName,
|
|
207
|
+
fit: true,
|
|
208
|
+
preventDefault: false,
|
|
209
|
+
title: translate(_ModalTwin.L10N.LABEL_IMMERSIVE_BOOKING),
|
|
210
|
+
visible: visible,
|
|
211
|
+
onClose: handleClose,
|
|
212
|
+
onOverflow: handleClose,
|
|
213
|
+
className: style.modal
|
|
214
|
+
}), /*#__PURE__*/_react.default.createElement(isMobile ? _react.default.Fragment : _ui.View, !isMobile ? {
|
|
215
|
+
className: style.container,
|
|
216
|
+
row: true
|
|
217
|
+
} : undefined, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isMobile && (loaded ? /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
218
|
+
className: style.panel
|
|
219
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
|
|
220
|
+
horizontal: false,
|
|
221
|
+
scrollIndicator: true,
|
|
222
|
+
scrollTo: scrollTo,
|
|
223
|
+
snap: false,
|
|
224
|
+
className: style.scrollview
|
|
225
|
+
}, filteredItems.map(function () {
|
|
226
|
+
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
227
|
+
let index = arguments.length > 1 ? arguments[1] : undefined;
|
|
228
|
+
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
229
|
+
key: item.id,
|
|
230
|
+
ref: el => itemsRef.current[item.id] = el
|
|
231
|
+
}, selectedId === item.id ? /*#__PURE__*/_react.default.createElement(_components.CardExpanded, _extends({
|
|
232
|
+
item,
|
|
233
|
+
priceFactor
|
|
234
|
+
}, others, {
|
|
235
|
+
onSelect: handleSelect,
|
|
236
|
+
className: (0, _ui.styles)(style.card)
|
|
237
|
+
})) : /*#__PURE__*/_react.default.createElement(_components.CardReduced, _extends({
|
|
238
|
+
item,
|
|
239
|
+
priceFactor
|
|
240
|
+
}, others, {
|
|
241
|
+
onPress: () => handleChange(index)
|
|
242
|
+
})));
|
|
243
|
+
}))) : /*#__PURE__*/_react.default.createElement(_ModalTwin2.ModalTwinSkeleton, null)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
244
|
+
tag: "iframe",
|
|
245
|
+
ref: iframeRef,
|
|
246
|
+
src: url,
|
|
247
|
+
title: "modal",
|
|
248
|
+
className: style.iframe
|
|
249
|
+
}))), loaded && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
250
|
+
className: style.filters
|
|
251
|
+
}, /*#__PURE__*/_react.default.createElement(_Filters.Filters, _extends({}, dataSource, {
|
|
252
|
+
filters,
|
|
253
|
+
priceFactor,
|
|
254
|
+
onSubmit: onFilter
|
|
255
|
+
}))), loaded && selectedId !== undefined && isMobile && /*#__PURE__*/_react.default.createElement(_components.Slider, {
|
|
256
|
+
index: selectedIndex,
|
|
257
|
+
onChange: handleChange,
|
|
258
|
+
className: !expanded && style.reduced
|
|
259
|
+
}, filteredItems.map(function () {
|
|
260
|
+
let item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
261
|
+
let index = arguments.length > 1 ? arguments[1] : undefined;
|
|
262
|
+
const last = index === filteredItems.length - 1;
|
|
263
|
+
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
264
|
+
key: item.id
|
|
265
|
+
}, /*#__PURE__*/_react.default.createElement(_components.CardReduced, _extends({
|
|
266
|
+
item,
|
|
267
|
+
last,
|
|
268
|
+
priceFactor
|
|
269
|
+
}, others, {
|
|
270
|
+
visible: !expanded,
|
|
271
|
+
onPress: () => !expanded && setExpanded(true)
|
|
272
|
+
})), /*#__PURE__*/_react.default.createElement(_components.CardExpanded, _extends({
|
|
273
|
+
item,
|
|
274
|
+
last,
|
|
275
|
+
priceFactor
|
|
276
|
+
}, others, {
|
|
277
|
+
visible: expanded,
|
|
278
|
+
onReduce: () => setExpanded(false),
|
|
279
|
+
onSelect: handleSelect
|
|
280
|
+
})));
|
|
281
|
+
})));
|
|
282
|
+
};
|
|
283
|
+
exports.ModalTwin = ModalTwin;
|
|
284
|
+
ModalTwin.propTypes = {
|
|
285
|
+
dataSource: _propTypes.default.object,
|
|
286
|
+
filters: _propTypes.default.object,
|
|
287
|
+
priceFactor: _propTypes.default.number,
|
|
288
|
+
visible: _propTypes.default.bool,
|
|
289
|
+
onClose: _propTypes.default.func,
|
|
290
|
+
onFilter: _propTypes.default.func,
|
|
291
|
+
onSelect: _propTypes.default.func
|
|
292
|
+
};
|
|
293
|
+
ModalTwin.displayName = 'Mirai:Core:Rates:ModalTwin';
|
|
294
|
+
//# sourceMappingURL=ModalTwin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalTwin.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_ModalTwin","style","_ModalTwin2","_helpers2","_helpers3","_helpers4","_Filters","_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","ModalTwin","_ref","_select","dataSource","filters","priceFactor","visible","onClose","onFilter","onSelect","others","translate","useLocale","isMobile","useDevice","value","finder","place","id","hotelId","isHotel","hotel","language","useStore","iframeRef","useRef","itemsRef","expanded","setExpanded","useState","loaded","setLoaded","scrollTo","setScrollTo","selectedId","setSelectedId","useEffect","callback","_ref2","displayName","Event","publish","EVENT","MODAL_VISIBLE","subscribe","unsubscribe","event","undefined","data","isLoaded","roomId","origin","process","env","TWIN_URL","console","log","debounceSelectId","setTimeout","_itemsRef$current$sel","current","offsetTop","window","addEventListener","removeEventListener","METRICS","handleChange","_iframeRef$current","_iframeRef$current$co","keys","contentWindow","postMessage","rooms","filteredItems","filter","soldOut","map","join","soldOutRooms","selectedIndex","findIndex","index","_iframeRef$current2","_iframeRef$current2$c","handleClose","handleSelect","_filteredItems$find","find","item","boards","debounce","Number","items","select","filterItem","url","useMemo","getUrl","createElement","Modal","fit","preventDefault","title","L10N","LABEL_IMMERSIVE_BOOKING","onOverflow","className","modal","React","Fragment","View","container","row","panel","ScrollView","horizontal","scrollIndicator","snap","scrollview","ref","el","CardExpanded","styles","card","CardReduced","onPress","ModalTwinSkeleton","tag","src","iframe","Filters","onSubmit","Slider","onChange","reduced","last","onReduce","exports","propTypes","PropTypes","object","number","bool","func"],"sources":["../../../../../src/components/Rates/components/ModalTwin/ModalTwin.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Modal, ScrollView, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useMemo } from 'react';\n\nimport { CardExpanded, CardReduced, Slider } from './components';\nimport { getUrl } from './helpers';\nimport { L10N } from './ModalTwin.l10n';\nimport * as style from './ModalTwin.module.css';\nimport { ModalTwinSkeleton } from './ModalTwin.Skeleton';\nimport { debounce } from '../../../../helpers';\nimport { EVENT } from '../../../helpers';\nimport { filterItem, select } from '../../helpers';\nimport { Filters } from '../Filters';\n\nconst ModalTwin = ({\n dataSource,\n filters,\n priceFactor,\n visible,\n onClose = () => {},\n onFilter = () => {},\n onSelect = () => {},\n ...others\n}) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n\n const { value: { finder: { place: { id: [hotelId] = [], isHotel } = {} } = {}, hotel = {}, language } = {} } =\n useStore();\n\n const iframeRef = useRef();\n const itemsRef = useRef([]);\n\n const [expanded, setExpanded] = useState();\n const [loaded, setLoaded] = useState();\n const [scrollTo, setScrollTo] = useState();\n const [selectedId, setSelectedId] = useState();\n\n useEffect(() => {\n const callback = ({ displayName }) => {\n if (displayName !== ModalTwin.displayName) {\n visible && Event.publish(EVENT.MODAL_VISIBLE, { displayName: ModalTwin.displayName, visible: true });\n }\n };\n\n Event.subscribe(EVENT.MODAL_VISIBLE, callback);\n return () => Event.unsubscribe(EVENT.MODAL_VISIBLE, callback);\n }, [visible]);\n\n useEffect(() => {\n const callback = (event = {}) => {\n const { data: { isLoaded, roomId } = {}, origin } = event;\n if (origin !== process.env.TWIN_URL) return;\n\n // eslint-disable-next-line no-console\n console.log('Mensaje recibido:', event);\n\n debounceSelectId(roomId);\n\n if (isLoaded) setLoaded(true);\n };\n\n if (!isMobile && selectedId) setTimeout(() => setScrollTo(itemsRef.current[selectedId]?.offsetTop - 74), 400);\n\n window.addEventListener('message', callback);\n\n return () => window.removeEventListener('message', callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedId]);\n\n useEffect(() => {\n setExpanded();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, visible]);\n\n useEffect(() => {\n if (!loaded) return;\n\n Event.publish(EVENT.METRICS, { id: 'RATES:MODAL_TWIN:LOADED' });\n\n setTimeout(() => handleChange(0), 1500);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loaded]);\n\n useEffect(() => {\n if (!filters || Object.keys(filters).length === 0) return;\n\n iframeRef?.current?.contentWindow?.postMessage(\n {\n rooms: filteredItems\n .filter(({ soldOut } = {}) => !soldOut)\n .map(({ id } = {}) => id)\n .join(','),\n soldOutRooms: filteredItems\n .filter(({ soldOut } = {}) => soldOut)\n .map(({ id } = {}) => id)\n .join(','),\n },\n process.env.TWIN_URL,\n );\n\n const selectedIndex = filteredItems.findIndex(({ id } = {}) => id === selectedId);\n if (selectedIndex === -1) handleChange(0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filters]);\n\n const handleChange = (index) => {\n if (index < 0 || index === selectedIndex || index >= filteredItems.length) return;\n\n const { id } = filteredItems[index];\n if (id !== selectedId) {\n setSelectedId(id);\n iframeRef?.current?.contentWindow?.postMessage({ roomId: id }, process.env.TWIN_URL);\n }\n };\n\n const handleClose = () => {\n Event.publish(EVENT.METRICS, { id: 'RATES:MODAL_TWIN:CLOSE' });\n\n setSelectedId();\n setLoaded();\n onClose();\n };\n\n const handleSelect = (id) => {\n Event.publish(EVENT.METRICS, { id: 'RATES:MODAL_TWIN:SELECT' });\n\n onSelect(filteredItems.find((item) => item.id === id)?.boards[0]);\n handleClose();\n };\n\n const debounceSelectId = debounce((roomId) => {\n if (roomId && Number(roomId) !== selectedId) {\n setSelectedId(Number(roomId));\n }\n });\n\n const { items = [] } = dataSource || {};\n const filteredItems =\n select(items, filters, { priceFactor })?.map((item) => filterItem(item, filters, priceFactor)) || [];\n const selectedIndex = selectedId ? filteredItems.findIndex(({ id } = {}) => id === selectedId) : undefined;\n const url = useMemo(\n () => getUrl({ filteredItems, hotel, hotelId, isHotel, items, language }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [hotel, hotelId, isHotel, language],\n );\n\n return (\n <Modal\n {...others}\n displayName={ModalTwin.displayName}\n fit\n preventDefault={false}\n title={translate(L10N.LABEL_IMMERSIVE_BOOKING)}\n visible={visible}\n onClose={handleClose}\n onOverflow={handleClose}\n className={style.modal}\n >\n {React.createElement(\n isMobile ? React.Fragment : View,\n !isMobile ? { className: style.container, row: true } : undefined,\n <>\n {!isMobile &&\n (loaded ? (\n <View className={style.panel}>\n <ScrollView\n horizontal={false}\n scrollIndicator\n scrollTo={scrollTo}\n snap={false}\n className={style.scrollview}\n >\n {filteredItems.map((item = {}, index) => (\n <View key={item.id} ref={(el) => (itemsRef.current[item.id] = el)}>\n {selectedId === item.id ? (\n <CardExpanded\n {...{ item, priceFactor, ...others }}\n onSelect={handleSelect}\n className={styles(style.card)}\n />\n ) : (\n <CardReduced {...{ item, priceFactor, ...others }} onPress={() => handleChange(index)} />\n )}\n </View>\n ))}\n </ScrollView>\n </View>\n ) : (\n <ModalTwinSkeleton />\n ))}\n <View tag=\"iframe\" ref={iframeRef} src={url} title=\"modal\" className={style.iframe} />\n </>,\n )}\n\n {loaded && (\n <View className={style.filters}>\n <Filters {...dataSource} {...{ filters, priceFactor }} onSubmit={onFilter} />\n </View>\n )}\n\n {loaded && selectedId !== undefined && isMobile && (\n <Slider index={selectedIndex} onChange={handleChange} className={!expanded && style.reduced}>\n {filteredItems.map((item = {}, index) => {\n const last = index === filteredItems.length - 1;\n\n return (\n <View key={item.id}>\n <CardReduced\n {...{ item, last, priceFactor, ...others }}\n visible={!expanded}\n onPress={() => !expanded && setExpanded(true)}\n />\n <CardExpanded\n {...{ item, last, priceFactor, ...others }}\n visible={expanded}\n onReduce={() => setExpanded(false)}\n onSelect={handleSelect}\n />\n </View>\n );\n })}\n </Slider>\n )}\n </Modal>\n );\n};\n\nModalTwin.propTypes = {\n dataSource: PropTypes.object,\n filters: PropTypes.object,\n priceFactor: PropTypes.number,\n visible: PropTypes.bool,\n onClose: PropTypes.func,\n onFilter: PropTypes.func,\n onSelect: PropTypes.func,\n};\n\nModalTwin.displayName = 'Mirai:Core:Rates:ModalTwin';\n\nexport { ModalTwin };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.L10N = void 0;
|
|
7
|
+
const L10N = exports.L10N = {
|
|
8
|
+
ACTION_SEE_OPTIONS: {
|
|
9
|
+
id: 'finder.action.see_options'
|
|
10
|
+
},
|
|
11
|
+
LABEL_FOR_NIGHTS: {
|
|
12
|
+
id: 'common.label.for_nights'
|
|
13
|
+
},
|
|
14
|
+
LABEL_FROM: {
|
|
15
|
+
id: 'common.label.from'
|
|
16
|
+
},
|
|
17
|
+
LABEL_IMMERSIVE_BOOKING: {
|
|
18
|
+
id: 'finder.label.immersive_booking'
|
|
19
|
+
},
|
|
20
|
+
LABEL_NOT_AVAILABLE: {
|
|
21
|
+
id: 'common.label.not_available'
|
|
22
|
+
},
|
|
23
|
+
LABEL_PER_NIGHT: {
|
|
24
|
+
id: 'finder.label.per_night'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=ModalTwin.l10n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalTwin.l10n.js","names":["L10N","exports","ACTION_SEE_OPTIONS","id","LABEL_FOR_NIGHTS","LABEL_FROM","LABEL_IMMERSIVE_BOOKING","LABEL_NOT_AVAILABLE","LABEL_PER_NIGHT"],"sources":["../../../../../src/components/Rates/components/ModalTwin/ModalTwin.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_SEE_OPTIONS: { id: 'finder.action.see_options' },\n\n LABEL_FOR_NIGHTS: { id: 'common.label.for_nights' },\n LABEL_FROM: { id: 'common.label.from' },\n LABEL_IMMERSIVE_BOOKING: { id: 'finder.label.immersive_booking' },\n LABEL_NOT_AVAILABLE: { id: 'common.label.not_available' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,kBAAkB,EAAE;IAAEC,EAAE,EAAE;EAA4B,CAAC;EAEvDC,gBAAgB,EAAE;IAAED,EAAE,EAAE;EAA0B,CAAC;EACnDE,UAAU,EAAE;IAAEF,EAAE,EAAE;EAAoB,CAAC;EACvCG,uBAAuB,EAAE;IAAEH,EAAE,EAAE;EAAiC,CAAC;EACjEI,mBAAmB,EAAE;IAAEJ,EAAE,EAAE;EAA6B,CAAC;EACzDK,eAAe,EAAE;IAAEL,EAAE,EAAE;EAAyB;AAClD,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
.iframe {
|
|
2
|
+
border: 0;
|
|
3
|
+
height: 100%;
|
|
4
|
+
width: 100%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.container {
|
|
8
|
+
height: 100%;
|
|
9
|
+
width: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.panel {
|
|
13
|
+
border-right: 1px solid var(--mirai-ui-content-border);
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
background-color: var(--mirai-ui-content-background);
|
|
16
|
+
height: 100%;
|
|
17
|
+
padding: var(--mirai-ui-space-M);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.scrollview {
|
|
21
|
+
max-height: 90svh;
|
|
22
|
+
gap: var(--mirai-ui-space-M);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.filters {
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: calc(var(--mirai-ui-space-XXL) + calc(var(--mirai-ui-space-M) / 2));
|
|
28
|
+
right: var(--mirai-ui-space-XS);
|
|
29
|
+
z-index: var(--mirai-ui-layer-M);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.collapse {
|
|
33
|
+
align-items: center;
|
|
34
|
+
background-color: var(--mirai-ui-base);
|
|
35
|
+
border-radius: 50%;
|
|
36
|
+
display: flex;
|
|
37
|
+
height: var(--mirai-ui-button-small-height);
|
|
38
|
+
justify-content: center;
|
|
39
|
+
position: absolute;
|
|
40
|
+
top: var(--mirai-ui-space-S);
|
|
41
|
+
left: var(--mirai-ui-space-S);
|
|
42
|
+
transition: transform var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
|
|
43
|
+
width: var(--mirai-ui-button-small-height);
|
|
44
|
+
z-index: 1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.slider {
|
|
48
|
+
background-color: transparent;
|
|
49
|
+
width: 100svw !important;
|
|
50
|
+
position: absolute;
|
|
51
|
+
left: 0px;
|
|
52
|
+
bottom: var(--mirai-ui-space-M);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.slider > * {
|
|
56
|
+
width: 100svw !important;
|
|
57
|
+
overflow-y: clip;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.slider.reduced {
|
|
61
|
+
height: 120px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.slider .expanded {
|
|
65
|
+
transform: translateY(150%);
|
|
66
|
+
transition: transform var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
|
|
67
|
+
bottom: var(--mirai-ui-space-M);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.slider .expanded:not(.visible) {
|
|
71
|
+
transform: translateY(150%);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.slider .expanded.visible {
|
|
75
|
+
transform: translateY(0);
|
|
76
|
+
transition: transform var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.slider .reduced {
|
|
80
|
+
transform: translateY(150%);
|
|
81
|
+
transition: transform var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.slider .reduced:not(.visible) {
|
|
85
|
+
transform: translateY(150%);
|
|
86
|
+
opacity: 0;
|
|
87
|
+
position: absolute;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.slider .reduced.visible {
|
|
91
|
+
transform: translateY(0%);
|
|
92
|
+
transition: transform var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
|
|
93
|
+
opacity: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.card {
|
|
97
|
+
background-color: var(--mirai-ui-base);
|
|
98
|
+
border-radius: var(--mirai-ui-border-radius);
|
|
99
|
+
box-shadow: inset 0 0 0 1px var(--mirai-ui-content-border);
|
|
100
|
+
box-sizing: border-box;
|
|
101
|
+
max-width: 320px;
|
|
102
|
+
position: relative;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.slider .card {
|
|
106
|
+
margin-left: var(--mirai-ui-space-L);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.card.last {
|
|
110
|
+
margin-right: var(--mirai-ui-space-L);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.card.disabled {
|
|
114
|
+
filter: grayscale(1);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.card .preview {
|
|
118
|
+
min-height: 400px;
|
|
119
|
+
justify-content: space-between;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.card .disabled .footer {
|
|
123
|
+
justify-content: end;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.image {
|
|
127
|
+
background-color: var(--mirai-ui-content-border);
|
|
128
|
+
background-size: cover;
|
|
129
|
+
border-radius: var(--mirai-ui-border-radius) 0 0 var(--mirai-ui-border-radius);
|
|
130
|
+
height: 120px;
|
|
131
|
+
width: 120px;
|
|
132
|
+
max-height: 120px;
|
|
133
|
+
max-width: 120px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.content {
|
|
137
|
+
padding: var(--mirai-ui-space-S);
|
|
138
|
+
justify-content: space-between;
|
|
139
|
+
width: 220px;
|
|
140
|
+
height: 120px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.content .title {
|
|
144
|
+
display: -webkit-box;
|
|
145
|
+
-webkit-box-orient: vertical;
|
|
146
|
+
-webkit-line-clamp: 2;
|
|
147
|
+
overflow: hidden;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.footer {
|
|
151
|
+
border-top: 1px solid var(--mirai-ui-content-border);
|
|
152
|
+
padding: var(--mirai-ui-space-S);
|
|
153
|
+
justify-content: space-between;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.footer > .hidden {
|
|
157
|
+
visibility: hidden;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.card.disabled .footer {
|
|
161
|
+
justify-content: end;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* S */
|
|
165
|
+
@media only screen and (max-width: 480px) {
|
|
166
|
+
.modal {
|
|
167
|
+
height: 100svh;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* M & L */
|
|
172
|
+
@media only screen and (min-width: 481px) {
|
|
173
|
+
.modal {
|
|
174
|
+
height: 100svh;
|
|
175
|
+
width: 100svw;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.filters {
|
|
179
|
+
top: calc(var(--mirai-ui-space-XXL) + var(--mirai-ui-space-S));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CardExpanded = void 0;
|
|
7
|
+
var _locale = require("@mirai/locale");
|
|
8
|
+
var _ui = require("@mirai/ui");
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _Prices = require("./Prices");
|
|
12
|
+
var _helpers = require("../../../../helpers");
|
|
13
|
+
var _Item = require("../../Item/Item.Preview");
|
|
14
|
+
var _ModalTwin = require("../ModalTwin.constants");
|
|
15
|
+
var _ModalTwin2 = require("../ModalTwin.l10n");
|
|
16
|
+
var style = _interopRequireWildcard(require("../ModalTwin.module.css"));
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
+
const CardExpanded = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
item: {
|
|
24
|
+
id,
|
|
25
|
+
soldOut,
|
|
26
|
+
...item
|
|
27
|
+
} = {},
|
|
28
|
+
last = false,
|
|
29
|
+
visible,
|
|
30
|
+
onReduce = () => {},
|
|
31
|
+
onSelect = () => {},
|
|
32
|
+
...others
|
|
33
|
+
} = _ref;
|
|
34
|
+
const {
|
|
35
|
+
isMobile
|
|
36
|
+
} = (0, _ui.useDevice)();
|
|
37
|
+
const {
|
|
38
|
+
translate
|
|
39
|
+
} = (0, _locale.useLocale)();
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
41
|
+
className: (0, _ui.styles)(style.expanded, visible && style.visible)
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
43
|
+
className: (0, _ui.styles)(style.card, soldOut ? style.disabled : undefined, last ? style.last : undefined, others.className)
|
|
44
|
+
}, isMobile && /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
|
|
45
|
+
onPress: () => onReduce(),
|
|
46
|
+
className: style.collapse
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
48
|
+
value: _helpers.ICON.CLOSE_FULLSCREEN
|
|
49
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
50
|
+
className: style.preview
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement(_Item.Preview, _extends({
|
|
52
|
+
key: id
|
|
53
|
+
}, item, {
|
|
54
|
+
id,
|
|
55
|
+
soldOut,
|
|
56
|
+
isSoldOut: soldOut,
|
|
57
|
+
showActions: false,
|
|
58
|
+
width: _ModalTwin.CARD_WIDTH
|
|
59
|
+
}))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
60
|
+
row: true,
|
|
61
|
+
className: style.footer
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_Prices.Prices, _extends({}, item, others, {
|
|
63
|
+
className: soldOut && style.hidden
|
|
64
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
65
|
+
disabled: soldOut,
|
|
66
|
+
small: isMobile,
|
|
67
|
+
onPress: soldOut ? undefined : () => onSelect(id)
|
|
68
|
+
}, translate(soldOut ? _ModalTwin2.L10N.LABEL_NOT_AVAILABLE : _ModalTwin2.L10N.ACTION_SEE_OPTIONS)))));
|
|
69
|
+
};
|
|
70
|
+
exports.CardExpanded = CardExpanded;
|
|
71
|
+
CardExpanded.displayName = 'Mirai:Core:Rates:ModalTwin:CardExpanded';
|
|
72
|
+
CardExpanded.propTypes = {
|
|
73
|
+
item: _propTypes.default.object,
|
|
74
|
+
last: _propTypes.default.bool,
|
|
75
|
+
visible: _propTypes.default.bool,
|
|
76
|
+
onReduce: _propTypes.default.func,
|
|
77
|
+
onSelect: _propTypes.default.func
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=CardExpanded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardExpanded.js","names":["_locale","require","_ui","_propTypes","_interopRequireDefault","_react","_Prices","_helpers","_Item","_ModalTwin","_ModalTwin2","style","_interopRequireWildcard","_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","CardExpanded","_ref","item","id","soldOut","last","visible","onReduce","onSelect","others","isMobile","useDevice","translate","useLocale","createElement","View","className","styles","expanded","card","disabled","undefined","Pressable","onPress","collapse","Icon","value","ICON","CLOSE_FULLSCREEN","preview","Preview","isSoldOut","showActions","width","CARD_WIDTH","row","footer","Prices","hidden","Button","small","L10N","LABEL_NOT_AVAILABLE","ACTION_SEE_OPTIONS","exports","displayName","propTypes","PropTypes","object","bool","func"],"sources":["../../../../../../src/components/Rates/components/ModalTwin/components/CardExpanded.jsx"],"sourcesContent":["import { useLocale } from '@mirai/locale';\nimport { Button, Icon, Pressable, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Prices } from './Prices';\nimport { ICON } from '../../../../helpers';\nimport { Preview } from '../../Item/Item.Preview';\nimport { CARD_WIDTH } from '../ModalTwin.constants';\nimport { L10N } from '../ModalTwin.l10n';\nimport * as style from '../ModalTwin.module.css';\n\nconst CardExpanded = ({\n item: { id, soldOut, ...item } = {},\n last = false,\n visible,\n onReduce = () => {},\n onSelect = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n\n return (\n <View className={styles(style.expanded, visible && style.visible)}>\n <View\n className={styles(\n style.card,\n soldOut ? style.disabled : undefined,\n last ? style.last : undefined,\n others.className,\n )}\n >\n {isMobile && (\n <Pressable onPress={() => onReduce()} className={style.collapse}>\n <Icon value={ICON.CLOSE_FULLSCREEN} />\n </Pressable>\n )}\n <View className={style.preview}>\n <Preview key={id} {...{ ...item, id, soldOut }} isSoldOut={soldOut} showActions={false} width={CARD_WIDTH} />\n </View>\n <View row className={style.footer}>\n <Prices {...{ ...item, ...others }} className={soldOut && style.hidden} />\n <Button disabled={soldOut} small={isMobile} onPress={soldOut ? undefined : () => onSelect(id)}>\n {translate(soldOut ? L10N.LABEL_NOT_AVAILABLE : L10N.ACTION_SEE_OPTIONS)}\n </Button>\n </View>\n </View>\n </View>\n );\n};\n\nCardExpanded.displayName = 'Mirai:Core:Rates:ModalTwin:CardExpanded';\n\nCardExpanded.propTypes = {\n item: PropTypes.object,\n last: PropTypes.bool,\n visible: PropTypes.bool,\n onReduce: PropTypes.func,\n onSelect: PropTypes.func,\n};\n\nexport { CardExpanded };\n"],"mappings":"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"}
|