@mirai/core 0.4.546 → 0.4.548
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/Banner/Banner.js +11 -0
- package/build/components/Banner/Banner.js.map +1 -1
- package/build/components/Booking/Booking.js +19 -28
- package/build/components/Booking/Booking.js.map +1 -1
- package/build/components/Booking/partials/Booking.Menu.js +12 -0
- package/build/components/Booking/partials/Booking.Menu.js.map +1 -1
- package/build/components/Chat/Chat.js +10 -3
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/Chat/components/Aura/Aura.js +2 -2
- package/build/components/Chat/components/Aura/Aura.js.map +1 -1
- package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js +4 -4
- package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js.map +1 -1
- package/build/components/Chat/components/Rating/Rating.js +1 -1
- package/build/components/Chat/components/Rating/Rating.js.map +1 -1
- package/build/components/Checkout/Checkout.js +74 -15
- package/build/components/Checkout/Checkout.js.map +1 -1
- package/build/components/Checkout/partials/Checkout.Confirmation.js +22 -3
- package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
- package/build/components/Checkout/partials/Checkout.Form.js +36 -18
- package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +28 -3
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.js +47 -14
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.js +11 -0
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Preview.js +17 -2
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +32 -10
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Summary.js +4 -1
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +4 -1
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +9 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
- package/build/components/Rates/components/ModalClubRate/ModalClubRate.js +31 -2
- package/build/components/Rates/components/ModalClubRate/ModalClubRate.js.map +1 -1
- package/build/components/Rates/components/ModalExtras/ModalExtras.js +46 -6
- package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
- package/build/components/Rates/components/ModalTwin/ModalTwin.js +51 -5
- package/build/components/Rates/components/ModalTwin/ModalTwin.js.map +1 -1
- package/build/components/Rates/components/OTAPrices/OTAPrices.js +66 -2
- package/build/components/Rates/components/OTAPrices/OTAPrices.js.map +1 -1
- package/build/components/Rates/hooks/useRates.js +13 -0
- package/build/components/Rates/hooks/useRates.js.map +1 -1
- package/build/components/Session/Session.Account.js +4 -0
- package/build/components/Session/Session.Account.js.map +1 -1
- package/build/components/Session/Session.Login.Modal.js +38 -4
- package/build/components/Session/Session.Login.Modal.js.map +1 -1
- package/build/components/Signup/Signup.js +12 -0
- package/build/components/Signup/Signup.js.map +1 -1
- package/build/components/__shared__/BookingDetails/BookingDetails.js +5 -0
- package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
- package/build/components/__shared__/BookingSummary/BookingSummary.js +10 -0
- package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
- package/build/components/__shared__/BookingTerms/BookingTerms.js +13 -3
- package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
- package/build/components/__shared__/Payment/Payment.js +11 -1
- package/build/components/__shared__/Payment/Payment.js.map +1 -1
- package/build/components/helpers/constants.js +22 -1
- package/build/components/helpers/constants.js.map +1 -1
- package/build/contexts/PerformanceManager/PerformanceManager.js +30 -8
- package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
- package/build/contexts/PerformanceManager/providers/helpers/SHA256.js +6 -83
- package/build/contexts/PerformanceManager/providers/helpers/SHA256.js.map +1 -1
- package/build/helpers/SHA256.js +73 -0
- package/build/helpers/SHA256.js.map +1 -0
- package/build/helpers/getRefundableFromItems.js +22 -0
- package/build/helpers/getRefundableFromItems.js.map +1 -0
- package/build/helpers/getSearchProps.js +100 -0
- package/build/helpers/getSearchProps.js.map +1 -0
- package/build/helpers/getSuperProps.js +54 -0
- package/build/helpers/getSuperProps.js.map +1 -0
- package/build/helpers/index.js +48 -4
- package/build/helpers/index.js.map +1 -1
- package/build/helpers/trackError.js +2 -1
- package/build/helpers/trackError.js.map +1 -1
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/package.json +4 -1
|
@@ -9,15 +9,18 @@ var _locale = require("@mirai/locale");
|
|
|
9
9
|
var _services = require("@mirai/services");
|
|
10
10
|
var _ui = require("@mirai/ui");
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _Checkout = require("./Checkout.
|
|
12
|
+
var _Checkout = require("./Checkout.constants");
|
|
13
|
+
var _Checkout2 = require("./Checkout.l10n");
|
|
13
14
|
var style = _interopRequireWildcard(require("./Checkout.module.css"));
|
|
14
|
-
var
|
|
15
|
+
var _Checkout3 = _interopRequireDefault(require("./Checkout.skeleton"));
|
|
15
16
|
var _partials = require("./partials");
|
|
16
17
|
var _Core = require("../../Core.constants");
|
|
18
|
+
var _getSearchProps = require("../../helpers/getSearchProps");
|
|
17
19
|
var _shared__ = require("../__shared__");
|
|
18
20
|
var _Booking = require("../Booking/partials/Booking.ModalAgency");
|
|
19
21
|
var _Header = require("../Header");
|
|
20
22
|
var _helpers = require("../helpers");
|
|
23
|
+
var _Rates = require("../Rates/Rates.constants");
|
|
21
24
|
const _excluded = ["posError"];
|
|
22
25
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
26
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -41,11 +44,13 @@ const Checkout = _ref => {
|
|
|
41
44
|
const _useStore = (0, _dataSources.useStore)(),
|
|
42
45
|
{
|
|
43
46
|
value: {
|
|
47
|
+
checkout = {},
|
|
44
48
|
currency,
|
|
45
49
|
finder = {},
|
|
46
50
|
hotel,
|
|
47
51
|
language,
|
|
48
52
|
locale,
|
|
53
|
+
payment: storePayment = {},
|
|
49
54
|
session,
|
|
50
55
|
skeleton = false,
|
|
51
56
|
urlParams: {
|
|
@@ -62,16 +67,53 @@ const Checkout = _ref => {
|
|
|
62
67
|
const [modalAgency, setModalAgency] = (0, _react.useState)(false);
|
|
63
68
|
const [responseError, setResponseError] = (0, _react.useState)();
|
|
64
69
|
const [validateError, setValidateError] = (0, _react.useState)();
|
|
70
|
+
const checkoutMetricsSent = (0, _react.useRef)(false);
|
|
65
71
|
(0, _react.useEffect)(() => {
|
|
66
|
-
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
}
|
|
72
|
+
var _price$discounts, _price$discounts$find, _price$discounts$find2, _dataSource$payment, _dataSource$payment$c;
|
|
73
|
+
if (skeleton || !dataSource || checkoutMetricsSent.current) return;
|
|
74
|
+
const {
|
|
75
|
+
countryCode,
|
|
76
|
+
price = {},
|
|
77
|
+
payment = {}
|
|
78
|
+
} = dataSource;
|
|
79
|
+
const mandatoryFieldsCount = Object.values(dataSource.form || {}).filter(function () {
|
|
80
|
+
let field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
81
|
+
return field.required && field.input !== _Checkout.INPUT.OPTION && (!field.countries || field.countries.includes(countryCode));
|
|
82
|
+
}).length;
|
|
83
|
+
const methods = Array.isArray(payment.methods) ? payment.methods : Object.keys(payment.methods || {});
|
|
84
|
+
const paymentMethodsAvailable = (methods || []).map(method => method);
|
|
85
|
+
const paymentMethodsCount = paymentMethodsAvailable.length;
|
|
86
|
+
const extrasSelectedCount = (dataSource.extras || []).length + (dataSource.details || []).reduce(function (total) {
|
|
87
|
+
let {
|
|
88
|
+
extras = []
|
|
89
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
90
|
+
return total + extras.length;
|
|
91
|
+
}, 0);
|
|
92
|
+
_dataSources.Event.publish(_helpers.EVENT.METRICS, _objectSpread(_objectSpread({
|
|
93
|
+
id: _helpers.METRICS_EVENTS.CHECKOUT_READY
|
|
94
|
+
}, (0, _getSearchProps.getSearchProps)({
|
|
95
|
+
store: {
|
|
96
|
+
finder,
|
|
97
|
+
currency,
|
|
98
|
+
language,
|
|
99
|
+
locale,
|
|
100
|
+
urlParams
|
|
101
|
+
},
|
|
102
|
+
dataSource
|
|
103
|
+
})), {}, {
|
|
104
|
+
is_loyalty_rate: urlParams.applyClubDiscount === 'true',
|
|
105
|
+
loyalty_savings_amount: ((_price$discounts = price.discounts) === null || _price$discounts === void 0 ? void 0 : (_price$discounts$find = _price$discounts.find) === null || _price$discounts$find === void 0 ? void 0 : (_price$discounts$find2 = _price$discounts$find.call(_price$discounts, discount => discount.type === _Rates.DISCOUNT_TYPE.CLUB)) === null || _price$discounts$find2 === void 0 ? void 0 : _price$discounts$find2.amount) || 0,
|
|
106
|
+
total_amount: price.total,
|
|
107
|
+
extras_selected_count: extrasSelectedCount,
|
|
108
|
+
payment_gateway: ((_dataSource$payment = dataSource.payment) === null || _dataSource$payment === void 0 ? void 0 : (_dataSource$payment$c = _dataSource$payment.config) === null || _dataSource$payment$c === void 0 ? void 0 : _dataSource$payment$c.provider) || undefined,
|
|
109
|
+
payment_methods_available: paymentMethodsAvailable,
|
|
110
|
+
payment_methods_count: paymentMethodsCount,
|
|
111
|
+
mandatory_fields_count: mandatoryFieldsCount,
|
|
112
|
+
is_refundable: urlParams.refundable === 'true'
|
|
113
|
+
}));
|
|
114
|
+
checkoutMetricsSent.current = true;
|
|
73
115
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
|
-
}, []);
|
|
116
|
+
}, [dataSource]);
|
|
75
117
|
(0, _react.useEffect)(() => {
|
|
76
118
|
if (skeleton) return;
|
|
77
119
|
(async () => await fetch())();
|
|
@@ -147,8 +189,14 @@ const Checkout = _ref => {
|
|
|
147
189
|
} : {
|
|
148
190
|
warning: true
|
|
149
191
|
}), {}, {
|
|
150
|
-
defaultMessage: translate(betterPrice ?
|
|
192
|
+
defaultMessage: translate(betterPrice ? _Checkout2.L10N.NOTIFICATION_BETTER_PRICE : _Checkout2.L10N.NOTIFICATION_PRICE_CHANGED)
|
|
151
193
|
}));
|
|
194
|
+
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
195
|
+
id: _helpers.METRICS_EVENTS.CHECKOUT_INTERACTION,
|
|
196
|
+
action: 'notification_show',
|
|
197
|
+
notification_type: betterPrice ? 'success' : 'warning',
|
|
198
|
+
notification_message: betterPrice ? 'price_decreased' : 'price_increased'
|
|
199
|
+
});
|
|
152
200
|
}
|
|
153
201
|
}
|
|
154
202
|
};
|
|
@@ -156,6 +204,17 @@ const Checkout = _ref => {
|
|
|
156
204
|
setModalAgency(true);
|
|
157
205
|
};
|
|
158
206
|
const handleErrorConfirmation = () => {
|
|
207
|
+
Object.entries(error || {}).forEach(_ref2 => {
|
|
208
|
+
let [field, value] = _ref2;
|
|
209
|
+
if (!value) return;
|
|
210
|
+
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
211
|
+
id: _helpers.METRICS_EVENTS.CHECKOUT_INTERACTION,
|
|
212
|
+
action: 'field_error',
|
|
213
|
+
field_name: field,
|
|
214
|
+
field_group: Object.keys(checkout).find(key => key === field) ? 'personal_data' : 'payment_data',
|
|
215
|
+
error_type: value !== null && value !== void 0 && value.required || !storePayment[field] ? 'required_empty' : 'invalid_format'
|
|
216
|
+
});
|
|
217
|
+
});
|
|
159
218
|
window.scrollTo({
|
|
160
219
|
top: 0,
|
|
161
220
|
behavior: 'smooth'
|
|
@@ -193,15 +252,15 @@ const Checkout = _ref => {
|
|
|
193
252
|
info: true,
|
|
194
253
|
wide: true,
|
|
195
254
|
className: (0, _ui.styles)(style.agency, others.className)
|
|
196
|
-
}, !tpvError && !payment && "".concat(translate(
|
|
255
|
+
}, !tpvError && !payment && "".concat(translate(_Checkout2.L10N.NOTIFICATION_NO_CARD), " "), !tpvError && agency.name && translate(_Checkout2.L10N.NOTIFICATION_AGENCY, {
|
|
197
256
|
agency: agency.name,
|
|
198
257
|
link: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Action, {
|
|
199
258
|
underline: true,
|
|
200
259
|
small: true,
|
|
201
260
|
onPress: handleModalAgency,
|
|
202
261
|
className: (0, _ui.styles)(style.action)
|
|
203
|
-
}, translate(
|
|
204
|
-
}), tpvError && translate(
|
|
262
|
+
}, translate(_Checkout2.L10N.ACTION_MORE_INFO)))
|
|
263
|
+
}), tpvError && translate(_Checkout2.L10N.NOTIFICATION_UNKNOWN_POS_ERROR)), !isDesktop && /*#__PURE__*/_react.default.createElement(_shared__.BookingSummary, {
|
|
205
264
|
box: true,
|
|
206
265
|
dataSource: dataSource
|
|
207
266
|
}, /*#__PURE__*/_react.default.createElement(_shared__.BookingDetails, {
|
|
@@ -226,7 +285,7 @@ const Checkout = _ref => {
|
|
|
226
285
|
})) : responseError ? /*#__PURE__*/_react.default.createElement(_ui.Notification, {
|
|
227
286
|
error: true,
|
|
228
287
|
large: true
|
|
229
|
-
}, translate(
|
|
288
|
+
}, translate(_Checkout2.L10N.NOTIFICATION_ERROR[(responseError === null || responseError === void 0 ? void 0 : responseError.code) || _Core.ERROR.UNKNOWN])) : /*#__PURE__*/_react.default.createElement(_Checkout3.default, null)), agency.name && /*#__PURE__*/_react.default.createElement(_Booking.ModalAgency, _extends({}, agency, {
|
|
230
289
|
visible: modalAgency,
|
|
231
290
|
onClose: () => setModalAgency(false)
|
|
232
291
|
})), /*#__PURE__*/_react.default.createElement(_shared__.Footer, null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Checkout","style","_Checkout2","_interopRequireDefault","_partials","_Core","_shared__","_Booking","_Header","_helpers","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","_objectDestructuringEmpty","_extends","assign","bind","Checkout","_ref","others","isDesktop","useDevice","translate","useLocale","_useStore","useStore","currency","finder","hotel","language","locale","session","skeleton","urlParams","posError","tpvError","variant","busy","setBusy","useState","dataSource","setDataSource","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","validateError","setValidateError","useEffect","hsri","SYNAPSE_COMMISSION_CODE","fingerprint","Event","publish","EVENT","METRICS","id","fetch","EXTRA_CHANGED","NOT_ENOUGH_ROOMS","NOT_ENOUGH_ROOMS_FOR_OFFER","NO_SELECTED_ROOMS","PRICE_CHANGED","VALIDATE_ERROR","price","type","replaceUrlParams","totalPrice","includes","document","location","href","getRatesUrl","notification","promocode","ERROR","UNKNOWN","cancel","response","ServiceBooking","checkout","undefined","catch","URL_GENERIC","betterPrice","CHECKOUT_RESPONSE","event","NOTIFICATION","success","warning","defaultMessage","L10N","NOTIFICATION_BETTER_PRICE","NOTIFICATION_PRICE_CHANGED","handleModalAgency","handleErrorConfirmation","window","scrollTo","top","behavior","agency","payment","hasRequiredFields","createElement","Fragment","Header","View","role","tag","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","form","schema","values","name","Notification","small","info","concat","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","action","ACTION_MORE_INFO","NOTIFICATION_UNKNOWN_POS_ERROR","BookingSummary","box","BookingDetails","expanded","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ModalAgency","onClose","Footer","exports","displayName","propTypes"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './Checkout.l10n';\nimport * as style from './Checkout.module.css';\nimport Skeleton from './Checkout.skeleton';\nimport { Confirmation, Form } from './partials';\nimport { ERROR, SYNAPSE_COMMISSION_CODE, VALIDATE_ERROR } from '../../Core.constants';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { EVENT, getRatesUrl, replaceUrlParams } from '../helpers';\n\nconst Checkout = ({ ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n finder = {},\n hotel,\n language,\n locale,\n session,\n skeleton = false,\n urlParams: { posError: tpvError, ...urlParams } = {},\n variant,\n },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState();\n const [requiredFields, setRequiredFields] = useState();\n const [modalAgency, setModalAgency] = useState(false);\n const [responseError, setResponseError] = useState();\n const [validateError, setValidateError] = useState();\n\n useEffect(() => {\n if (skeleton) return;\n\n if (urlParams.hsri === SYNAPSE_COMMISSION_CODE && urlParams.fingerprint) {\n Event.publish(EVENT.METRICS, { id: 'CHECKOUT:RENDER', fingerprint: urlParams.fingerprint });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () => await fetch())();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\n\n useEffect(() => {\n if (!validateError) return;\n\n const { EXTRA_CHANGED, NOT_ENOUGH_ROOMS, NOT_ENOUGH_ROOMS_FOR_OFFER, NO_SELECTED_ROOMS, PRICE_CHANGED } =\n VALIDATE_ERROR;\n (async () => {\n const { price, type } = validateError;\n\n if (type === PRICE_CHANGED && price) {\n replaceUrlParams({ totalPrice: price });\n await fetch(price);\n } else if ([EXTRA_CHANGED, NOT_ENOUGH_ROOMS, NOT_ENOUGH_ROOMS_FOR_OFFER, NO_SELECTED_ROOMS].includes(type)) {\n document.location.href = getRatesUrl({\n currency,\n language,\n notification: type,\n promocode: finder.promocode || '',\n variant,\n ...urlParams,\n });\n } else {\n setResponseError(ERROR.UNKNOWN);\n }\n })();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateError]);\n\n const fetch = async (price) => {\n setBusy(true);\n let cancel = false;\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session,\n ...urlParams,\n ...(price ? { totalPrice: price } : undefined),\n }).catch((error) => {\n if (error.type) {\n setValidateError(validateError?.price && error?.price ? { type: VALIDATE_ERROR.URL_GENERIC } : error);\n cancel = true;\n } else setResponseError(error);\n });\n if (cancel) return;\n\n setBusy(false);\n setValidateError();\n if (response) {\n setDataSource(response);\n const betterPrice = price && price < urlParams.totalPrice;\n Event.publish(EVENT.CHECKOUT_RESPONSE, { event: EVENT.CHECKOUT_RESPONSE, response });\n if (betterPrice !== undefined) {\n Event.publish(EVENT.NOTIFICATION, {\n ...(betterPrice ? { success: true } : { warning: true }),\n defaultMessage: translate(betterPrice ? L10N.NOTIFICATION_BETTER_PRICE : L10N.NOTIFICATION_PRICE_CHANGED),\n });\n }\n }\n };\n\n const handleModalAgency = () => {\n setModalAgency(true);\n };\n\n const handleErrorConfirmation = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setRequiredFields(error);\n };\n\n const { agency = {}, payment } = dataSource || {};\n const response = dataSource !== undefined;\n const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;\n\n return (\n <>\n <Header />\n\n <View role=\"checkout\" tag=\"checkout\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={busy || (!response && !responseError)} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && (\n <NotificationRequiredFields form=\"checkout\" schema={dataSource?.form} values={requiredFields} />\n )}\n\n {(agency.name || !payment || tpvError) && (\n <Notification error={tpvError} small info wide className={styles(style.agency, others.className)}>\n {!tpvError && !payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\n {!tpvError &&\n agency.name &&\n translate(L10N.NOTIFICATION_AGENCY, {\n agency: agency.name,\n link: (\n <>\n <Action underline small onPress={handleModalAgency} className={styles(style.action)}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n ),\n })}\n {tpvError && translate(L10N.NOTIFICATION_UNKNOWN_POS_ERROR)}\n </Notification>\n )}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n <Form dataSource={dataSource} showErrors={hasRequiredFields} onError={setError} />\n\n {isDesktop && <BookingDetails dataSource={dataSource} className={style.box} />}\n\n <BookingTerms dataSource={dataSource} small />\n </View>\n\n <Confirmation\n busy={busy}\n dataSource={dataSource}\n error={Object.keys(error || {}).length > 0}\n onError={handleErrorConfirmation}\n onValid={() => setRequiredFields()}\n />\n </View>\n ) : responseError ? (\n <Notification error large>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n {agency.name && <ModalAgency {...agency} visible={modalAgency} onClose={() => setModalAgency(false)} />}\n\n <Footer />\n </>\n );\n};\n\nCheckout.displayName = 'Mirai:Core:Checkout';\n\nCheckout.propTypes = {};\n\nexport { Checkout };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Checkout","_Checkout2","style","_Checkout3","_interopRequireDefault","_partials","_Core","_getSearchProps","_shared__","_Booking","_Header","_helpers","_Rates","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","_objectDestructuringEmpty","_extends","assign","bind","Checkout","_ref","others","isDesktop","useDevice","translate","useLocale","_useStore","useStore","checkout","currency","finder","hotel","language","locale","payment","storePayment","session","skeleton","urlParams","posError","tpvError","variant","busy","setBusy","useState","dataSource","setDataSource","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","validateError","setValidateError","checkoutMetricsSent","useRef","useEffect","_price$discounts","_price$discounts$find","_price$discounts$find2","_dataSource$payment","_dataSource$payment$c","current","countryCode","price","mandatoryFieldsCount","values","form","field","undefined","required","input","INPUT","OPTION","countries","includes","methods","Array","isArray","paymentMethodsAvailable","map","method","paymentMethodsCount","extrasSelectedCount","extras","details","reduce","total","Event","publish","EVENT","METRICS","id","METRICS_EVENTS","CHECKOUT_READY","getSearchProps","store","is_loyalty_rate","applyClubDiscount","loyalty_savings_amount","discounts","find","discount","type","DISCOUNT_TYPE","CLUB","amount","total_amount","extras_selected_count","payment_gateway","config","provider","payment_methods_available","payment_methods_count","mandatory_fields_count","is_refundable","refundable","fetch","EXTRA_CHANGED","NOT_ENOUGH_ROOMS","NOT_ENOUGH_ROOMS_FOR_OFFER","NO_SELECTED_ROOMS","PRICE_CHANGED","VALIDATE_ERROR","replaceUrlParams","totalPrice","document","location","href","getRatesUrl","notification","promocode","ERROR","UNKNOWN","cancel","response","ServiceBooking","catch","URL_GENERIC","betterPrice","CHECKOUT_RESPONSE","event","NOTIFICATION","success","warning","defaultMessage","L10N","NOTIFICATION_BETTER_PRICE","NOTIFICATION_PRICE_CHANGED","CHECKOUT_INTERACTION","action","notification_type","notification_message","handleModalAgency","handleErrorConfirmation","entries","_ref2","field_name","field_group","key","error_type","window","scrollTo","top","behavior","agency","hasRequiredFields","createElement","Fragment","Header","View","role","tag","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","schema","name","Notification","small","info","concat","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","ACTION_MORE_INFO","NOTIFICATION_UNKNOWN_POS_ERROR","BookingSummary","box","BookingDetails","expanded","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ModalAgency","onClose","Footer","exports","displayName","propTypes"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { INPUT } from './Checkout.constants';\nimport { L10N } from './Checkout.l10n';\nimport * as style from './Checkout.module.css';\nimport Skeleton from './Checkout.skeleton';\nimport { Confirmation, Form } from './partials';\nimport { ERROR, VALIDATE_ERROR } from '../../Core.constants';\nimport { getSearchProps } from '../../helpers/getSearchProps';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { EVENT, getRatesUrl, METRICS_EVENTS, replaceUrlParams } from '../helpers';\nimport { DISCOUNT_TYPE } from '../Rates/Rates.constants';\n\nconst Checkout = ({ ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n checkout = {},\n currency,\n finder = {},\n hotel,\n language,\n locale,\n payment: storePayment = {},\n session,\n skeleton = false,\n urlParams: { posError: tpvError, ...urlParams } = {},\n variant,\n },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState();\n const [requiredFields, setRequiredFields] = useState();\n const [modalAgency, setModalAgency] = useState(false);\n const [responseError, setResponseError] = useState();\n const [validateError, setValidateError] = useState();\n const checkoutMetricsSent = useRef(false);\n\n useEffect(() => {\n if (skeleton || !dataSource || checkoutMetricsSent.current) return;\n\n const { countryCode, price = {}, payment = {} } = dataSource;\n const mandatoryFieldsCount = Object.values(dataSource.form || {}).filter(\n (field = {}) =>\n field.required && field.input !== INPUT.OPTION && (!field.countries || field.countries.includes(countryCode)),\n ).length;\n const methods = Array.isArray(payment.methods) ? payment.methods : Object.keys(payment.methods || {});\n const paymentMethodsAvailable = (methods || []).map((method) => method);\n const paymentMethodsCount = paymentMethodsAvailable.length;\n const extrasSelectedCount =\n (dataSource.extras || []).length +\n (dataSource.details || []).reduce((total, { extras = [] } = {}) => total + extras.length, 0);\n\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.CHECKOUT_READY,\n ...getSearchProps({ store: { finder, currency, language, locale, urlParams }, dataSource }),\n is_loyalty_rate: urlParams.applyClubDiscount === 'true',\n loyalty_savings_amount: price.discounts?.find?.((discount) => discount.type === DISCOUNT_TYPE.CLUB)?.amount || 0,\n total_amount: price.total,\n extras_selected_count: extrasSelectedCount,\n payment_gateway: dataSource.payment?.config?.provider || undefined,\n payment_methods_available: paymentMethodsAvailable,\n payment_methods_count: paymentMethodsCount,\n mandatory_fields_count: mandatoryFieldsCount,\n is_refundable: urlParams.refundable === 'true',\n });\n\n checkoutMetricsSent.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () => await fetch())();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\n\n useEffect(() => {\n if (!validateError) return;\n\n const { EXTRA_CHANGED, NOT_ENOUGH_ROOMS, NOT_ENOUGH_ROOMS_FOR_OFFER, NO_SELECTED_ROOMS, PRICE_CHANGED } =\n VALIDATE_ERROR;\n (async () => {\n const { price, type } = validateError;\n\n if (type === PRICE_CHANGED && price) {\n replaceUrlParams({ totalPrice: price });\n await fetch(price);\n } else if ([EXTRA_CHANGED, NOT_ENOUGH_ROOMS, NOT_ENOUGH_ROOMS_FOR_OFFER, NO_SELECTED_ROOMS].includes(type)) {\n document.location.href = getRatesUrl({\n currency,\n language,\n notification: type,\n promocode: finder.promocode || '',\n variant,\n ...urlParams,\n });\n } else {\n setResponseError(ERROR.UNKNOWN);\n }\n })();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateError]);\n\n const fetch = async (price) => {\n setBusy(true);\n let cancel = false;\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session,\n ...urlParams,\n ...(price ? { totalPrice: price } : undefined),\n }).catch((error) => {\n if (error.type) {\n setValidateError(validateError?.price && error?.price ? { type: VALIDATE_ERROR.URL_GENERIC } : error);\n cancel = true;\n } else setResponseError(error);\n });\n if (cancel) return;\n\n setBusy(false);\n setValidateError();\n if (response) {\n setDataSource(response);\n const betterPrice = price && price < urlParams.totalPrice;\n Event.publish(EVENT.CHECKOUT_RESPONSE, { event: EVENT.CHECKOUT_RESPONSE, response });\n if (betterPrice !== undefined) {\n Event.publish(EVENT.NOTIFICATION, {\n ...(betterPrice ? { success: true } : { warning: true }),\n defaultMessage: translate(betterPrice ? L10N.NOTIFICATION_BETTER_PRICE : L10N.NOTIFICATION_PRICE_CHANGED),\n });\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.CHECKOUT_INTERACTION,\n action: 'notification_show',\n notification_type: betterPrice ? 'success' : 'warning',\n notification_message: betterPrice ? 'price_decreased' : 'price_increased',\n });\n }\n }\n };\n\n const handleModalAgency = () => {\n setModalAgency(true);\n };\n\n const handleErrorConfirmation = () => {\n Object.entries(error || {}).forEach(([field, value]) => {\n if (!value) return;\n\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.CHECKOUT_INTERACTION,\n action: 'field_error',\n field_name: field,\n field_group: Object.keys(checkout).find((key) => key === field) ? 'personal_data' : 'payment_data',\n error_type: value?.required || !storePayment[field] ? 'required_empty' : 'invalid_format',\n });\n });\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setRequiredFields(error);\n };\n\n const { agency = {}, payment } = dataSource || {};\n const response = dataSource !== undefined;\n const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;\n\n return (\n <>\n <Header />\n\n <View role=\"checkout\" tag=\"checkout\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={busy || (!response && !responseError)} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && (\n <NotificationRequiredFields form=\"checkout\" schema={dataSource?.form} values={requiredFields} />\n )}\n\n {(agency.name || !payment || tpvError) && (\n <Notification error={tpvError} small info wide className={styles(style.agency, others.className)}>\n {!tpvError && !payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\n {!tpvError &&\n agency.name &&\n translate(L10N.NOTIFICATION_AGENCY, {\n agency: agency.name,\n link: (\n <>\n <Action underline small onPress={handleModalAgency} className={styles(style.action)}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n </>\n ),\n })}\n {tpvError && translate(L10N.NOTIFICATION_UNKNOWN_POS_ERROR)}\n </Notification>\n )}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n <Form dataSource={dataSource} showErrors={hasRequiredFields} onError={setError} />\n\n {isDesktop && <BookingDetails dataSource={dataSource} className={style.box} />}\n\n <BookingTerms dataSource={dataSource} small />\n </View>\n\n <Confirmation\n busy={busy}\n dataSource={dataSource}\n error={Object.keys(error || {}).length > 0}\n onError={handleErrorConfirmation}\n onValid={() => setRequiredFields()}\n />\n </View>\n ) : responseError ? (\n <Notification error large>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n ) : (\n <Skeleton />\n )}\n </View>\n {agency.name && <ModalAgency {...agency} visible={modalAgency} onClose={() => setModalAgency(false)} />}\n\n <Footer />\n </>\n );\n};\n\nCheckout.displayName = 'Mirai:Core:Checkout';\n\nCheckout.propTypes = {};\n\nexport { Checkout };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,6 +53,9 @@ const Confirmation = _ref => {
|
|
|
53
53
|
session = {}
|
|
54
54
|
} = {}
|
|
55
55
|
} = (0, _dataSources.useStore)();
|
|
56
|
+
const {
|
|
57
|
+
getDistinctId
|
|
58
|
+
} = (0, _dataSources.useMetrics)();
|
|
56
59
|
const refContainer = (0, _react.useRef)();
|
|
57
60
|
const [busy, setBusy] = (0, _react.useState)(false);
|
|
58
61
|
const [responseError, setResponseError] = (0, _react.useState)();
|
|
@@ -79,11 +82,18 @@ const Confirmation = _ref => {
|
|
|
79
82
|
} = prepayment[payment === null || payment === void 0 ? void 0 : payment.method] || ((_methods$payment$meth = methods[payment === null || payment === void 0 ? void 0 : payment.method]) === null || _methods$payment$meth === void 0 ? void 0 : _methods$payment$meth.prepayment) || {};
|
|
80
83
|
const handleError = () => setBusy(false);
|
|
81
84
|
const handlePress = () => {
|
|
85
|
+
var _dataSource$payment, _dataSource$payment$c;
|
|
82
86
|
if (error) {
|
|
83
87
|
onError();
|
|
84
88
|
return false;
|
|
85
89
|
}
|
|
86
90
|
setBusy(true);
|
|
91
|
+
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
92
|
+
id: _helpers2.METRICS_EVENTS.CHECKOUT_INTERACTION,
|
|
93
|
+
action: 'checkout_submit',
|
|
94
|
+
payment_method: payment === null || payment === void 0 ? void 0 : payment.method,
|
|
95
|
+
payment_gateway: dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$payment = dataSource.payment) === null || _dataSource$payment === void 0 ? void 0 : (_dataSource$payment$c = _dataSource$payment.config) === null || _dataSource$payment$c === void 0 ? void 0 : _dataSource$payment$c.provider
|
|
96
|
+
});
|
|
87
97
|
};
|
|
88
98
|
const handleSubmit = async value => {
|
|
89
99
|
if (error) {
|
|
@@ -96,8 +106,10 @@ const Confirmation = _ref => {
|
|
|
96
106
|
dataSource,
|
|
97
107
|
language,
|
|
98
108
|
payment: _objectSpread(_objectSpread({}, payment), value),
|
|
99
|
-
session: urlParams.applyClubDiscount === 'true' ? session : undefined
|
|
109
|
+
session: urlParams.applyClubDiscount === 'true' ? session : undefined,
|
|
110
|
+
trackingUserId: getDistinctId()
|
|
100
111
|
}, urlParams)).catch(error => {
|
|
112
|
+
var _dataSource$payment2, _dataSource$payment2$, _dataSource$payment2$2;
|
|
101
113
|
setBusy(false);
|
|
102
114
|
setResponseError(error);
|
|
103
115
|
_dataSources.Event.publish(_helpers2.EVENT.NOTIFICATION, {
|
|
@@ -105,11 +117,18 @@ const Confirmation = _ref => {
|
|
|
105
117
|
small: true,
|
|
106
118
|
defaultMessage: translate(_Checkout.L10N.NOTIFICATION_ERROR[(error === null || error === void 0 ? void 0 : error.code) || _Core.ERROR.UNKNOWN])
|
|
107
119
|
});
|
|
120
|
+
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
121
|
+
id: _helpers2.METRICS_EVENTS.CHECKOUT_INTERACTION,
|
|
122
|
+
action: 'notification_show',
|
|
123
|
+
notification_type: 'error',
|
|
124
|
+
notification_message: 'payment_failed',
|
|
125
|
+
payment_gateway: dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$payment2 = dataSource.payment) === null || _dataSource$payment2 === void 0 ? void 0 : (_dataSource$payment2$ = _dataSource$payment2.config) === null || _dataSource$payment2$ === void 0 ? void 0 : (_dataSource$payment2$2 = _dataSource$payment2$.provider) === null || _dataSource$payment2$2 === void 0 ? void 0 : _dataSource$payment2$2.toLowerCase()
|
|
126
|
+
});
|
|
108
127
|
});
|
|
109
128
|
return response;
|
|
110
129
|
};
|
|
111
130
|
const CTA = () => {
|
|
112
|
-
var _config$publicKey, _dataSource$
|
|
131
|
+
var _config$publicKey, _dataSource$payment3;
|
|
113
132
|
const {
|
|
114
133
|
payment: {
|
|
115
134
|
config = {}
|
|
@@ -133,7 +152,7 @@ const Confirmation = _ref => {
|
|
|
133
152
|
onError: handleError,
|
|
134
153
|
onPress: handlePress,
|
|
135
154
|
testId: "checkout-button"
|
|
136
|
-
}), translate((0, _helpers3.getButtonPaymentKey)(_objectSpread(_objectSpread(_objectSpread({}, config), dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$
|
|
155
|
+
}), translate((0, _helpers3.getButtonPaymentKey)(_objectSpread(_objectSpread(_objectSpread({}, config), dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$payment3 = dataSource.payment) === null || _dataSource$payment3 === void 0 ? void 0 : _dataSource$payment3.info), {}, {
|
|
137
156
|
method: payment === null || payment === void 0 ? void 0 : payment.method
|
|
138
157
|
})), {
|
|
139
158
|
amount: (0, _locale.currencyFormat)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_helpers","_shared__","_helpers2","_Checkout","style","_helpers3","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Confirmation","_ref","_methods$payment$meth","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","checkout","hotel","language","locale","payment","session","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","methods","price","prepayment","currency","hotelCurrency","method","handleError","handlePress","handleSubmit","response","ServiceBooking","confirm","form","urlParams","applyClubDiscount","undefined","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","id","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","testId","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","fetchUrlParams","location","search","ref","confirmation","exports","displayName","propTypes","PropTypes","bool","shape","func","onSubmit"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { fetchUrlParams } from '../../../helpers';\nimport { BookingSummary, ButtonPayment } from '../../__shared__';\nimport { EVENT } from '../../helpers';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getButtonPaymentKey } from '../helpers';\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { value: { checkout, hotel = {}, language, locale, payment, session = {} } = {} } = useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setResponseError();\n }, [checkout, payment]);\n\n const { payment: { methods = {} } = {}, price: { prepayment = {} } = {} } = dataSource;\n const { currency: hotelCurrency, value } = prepayment[payment?.method] || methods[payment?.method]?.prepayment || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) {\n return onError();\n }\n\n onValid();\n setResponseError();\n\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n });\n\n return response;\n };\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n\n return (\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n testId=\"checkout-button\"\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency: hotelCurrency, locale, value }),\n })}\n </ButtonPayment>\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n const urlParams = fetchUrlParams(location.search) || {};\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n busy: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_helpers","_shared__","_helpers2","_Checkout","style","_helpers3","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Confirmation","_ref","_methods$payment$meth","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","checkout","hotel","language","locale","payment","session","useStore","getDistinctId","useMetrics","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","methods","price","prepayment","currency","hotelCurrency","method","handleError","handlePress","_dataSource$payment","_dataSource$payment$c","METRICS","id","METRICS_EVENTS","CHECKOUT_INTERACTION","action","payment_method","payment_gateway","config","provider","handleSubmit","response","ServiceBooking","confirm","form","urlParams","applyClubDiscount","undefined","trackingUserId","catch","_dataSource$payment2","_dataSource$payment2$","_dataSource$payment2$2","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","notification_type","notification_message","toLowerCase","CTA","_config$publicKey","_dataSource$payment3","idtokenprovider","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","testId","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","fetchUrlParams","location","search","ref","confirmation","exports","displayName","propTypes","PropTypes","bool","shape","func","onSubmit"],"sources":["../../../../src/components/Checkout/partials/Checkout.Confirmation.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { ServiceBooking } from '@mirai/services';\nimport { Notification, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ERROR } from '../../../Core.constants';\nimport { fetchUrlParams } from '../../../helpers';\nimport { BookingSummary, ButtonPayment } from '../../__shared__';\nimport { EVENT, METRICS_EVENTS } from '../../helpers';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getButtonPaymentKey } from '../helpers';\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { value: { checkout, hotel = {}, language, locale, payment, session = {} } = {} } = useStore();\n const { getDistinctId } = useMetrics();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n !isDesktop &&\n refContainer?.current &&\n Event.publish(EVENT.FOOTER_HEIGHT_CHANGE, { height: refContainer?.current.offsetHeight });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setResponseError();\n }, [checkout, payment]);\n\n const { payment: { methods = {} } = {}, price: { prepayment = {} } = {} } = dataSource;\n const { currency: hotelCurrency, value } = prepayment[payment?.method] || methods[payment?.method]?.prepayment || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n setBusy(true);\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.CHECKOUT_INTERACTION,\n action: 'checkout_submit',\n payment_method: payment?.method,\n payment_gateway: dataSource?.payment?.config?.provider,\n });\n };\n\n const handleSubmit = async (value) => {\n if (error) {\n return onError();\n }\n\n onValid();\n setResponseError();\n\n const response = await ServiceBooking.confirm({\n form: checkout,\n dataSource,\n language,\n payment: { ...payment, ...value },\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n trackingUserId: getDistinctId(),\n ...urlParams,\n }).catch((error) => {\n setBusy(false);\n setResponseError(error);\n\n Event.publish(EVENT.NOTIFICATION, {\n error: true,\n small: true,\n defaultMessage: translate(L10N.NOTIFICATION_ERROR[error?.code || ERROR.UNKNOWN]),\n });\n Event.publish(EVENT.METRICS, {\n id: METRICS_EVENTS.CHECKOUT_INTERACTION,\n action: 'notification_show',\n notification_type: 'error',\n notification_message: 'payment_failed',\n payment_gateway: dataSource?.payment?.config?.provider?.toLowerCase(),\n });\n });\n\n return response;\n };\n\n const CTA = () => {\n const { payment: { config = {} } = {} } = dataSource;\n const { idtokenprovider: id } = urlParams;\n\n return (\n <ButtonPayment\n {...{ ...dataSource?.payment, config: { ...config, publicKey: config.publicKey?.[payment?.method] } }}\n busy={busy}\n hotel={{ ...hotel, id }}\n large\n promise={handleSubmit}\n wide\n onError={handleError}\n onPress={handlePress}\n testId=\"checkout-button\"\n >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency: hotelCurrency, locale, value }),\n })}\n </ButtonPayment>\n );\n };\n\n const content = () => (\n <>\n <BookingSummary dataSource={dataSource} />\n\n <View className={style.section}>\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR[responseError?.code || ERROR.UNKNOWN])}\n </Notification>\n )}\n\n {CTA()}\n\n <Text light small wide className={style.footer}>\n {translate(L10N.NOTIFICATION_SSL_ENCRYPTION)}\n </Text>\n </View>\n </>\n );\n\n const urlParams = fetchUrlParams(location.search) || {};\n\n return (\n <View ref={refContainer} {...others} className={style.confirmation}>\n {isDesktop ? content() : CTA()}\n </View>\n );\n};\n\nConfirmation.displayName = 'Mirai:Core:Checkout:Confirmation';\n\nConfirmation.propTypes = {\n busy: PropTypes.bool,\n dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -69,12 +69,11 @@ const Form = _ref3 => {
|
|
|
69
69
|
value: {
|
|
70
70
|
club,
|
|
71
71
|
language,
|
|
72
|
-
payment:
|
|
73
|
-
method
|
|
74
|
-
} = {},
|
|
72
|
+
payment: storePayment,
|
|
75
73
|
session
|
|
76
74
|
} = {}
|
|
77
75
|
} = (0, _dataSources.useStore)();
|
|
76
|
+
const formReady = (0, _react.useRef)(false);
|
|
78
77
|
const [errorForm, setErrorForm] = (0, _react.useState)({});
|
|
79
78
|
const [errorPayment, setErrorPayment] = (0, _react.useState)({});
|
|
80
79
|
const [form, setForm] = (0, _react.useState)(storage.get(key(dataSource, schema)) || Object.fromEntries(Object.entries(schema).map(_ref4 => {
|
|
@@ -103,6 +102,25 @@ const Form = _ref3 => {
|
|
|
103
102
|
onError(_objectSpread(_objectSpread({}, errorForm), errorPayment));
|
|
104
103
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
104
|
}, [errorForm, errorPayment]);
|
|
105
|
+
(0, _react.useEffect)(() => {
|
|
106
|
+
if (formReady.current) return;
|
|
107
|
+
const hasRequiredValues = getFields(form).filter(_ref5 => {
|
|
108
|
+
let [, field] = _ref5;
|
|
109
|
+
return field.required;
|
|
110
|
+
}).map(_ref6 => {
|
|
111
|
+
let [key] = _ref6;
|
|
112
|
+
return key;
|
|
113
|
+
}).every(key => form[key] !== undefined && form[key] !== '');
|
|
114
|
+
const hasErrors = Object.keys(errorForm).length > 0 || Object.keys(errorPayment).length > 0;
|
|
115
|
+
if (!hasErrors && hasRequiredValues && Object.keys(storePayment || {}).length > 0) {
|
|
116
|
+
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
117
|
+
id: _helpers.METRICS_EVENTS.CHECKOUT_INTERACTION,
|
|
118
|
+
action: 'form_ready'
|
|
119
|
+
});
|
|
120
|
+
formReady.current = true;
|
|
121
|
+
}
|
|
122
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
123
|
+
}, [errorForm, errorPayment, storePayment]);
|
|
106
124
|
const handleChange = async value => {
|
|
107
125
|
const next = _objectSpread(_objectSpread({}, form), value);
|
|
108
126
|
if (!!schema.country && next.country && !next.phone) {
|
|
@@ -112,8 +130,8 @@ const Form = _ref3 => {
|
|
|
112
130
|
if (code) next.phone = code;
|
|
113
131
|
}
|
|
114
132
|
const nextFields = getFields(next);
|
|
115
|
-
const nextFiltered = nextFields.length < getFields(form).length ? Object.fromEntries(Object.entries(next).filter(
|
|
116
|
-
let [key] =
|
|
133
|
+
const nextFiltered = nextFields.length < getFields(form).length ? Object.fromEntries(Object.entries(next).filter(_ref7 => {
|
|
134
|
+
let [key] = _ref7;
|
|
117
135
|
return Object.fromEntries(nextFields)[key] !== undefined;
|
|
118
136
|
})) : undefined;
|
|
119
137
|
setForm(nextFiltered || next);
|
|
@@ -138,13 +156,13 @@ const Form = _ref3 => {
|
|
|
138
156
|
const handleFormError = errors => {
|
|
139
157
|
setErrorForm(errors);
|
|
140
158
|
};
|
|
141
|
-
const getFields = value => Object.entries(schema).filter(
|
|
142
|
-
let [key] =
|
|
159
|
+
const getFields = value => Object.entries(schema).filter(_ref8 => {
|
|
160
|
+
let [key] = _ref8;
|
|
143
161
|
return !!schema[key];
|
|
144
|
-
}).filter(
|
|
162
|
+
}).filter(_ref9 => {
|
|
145
163
|
let [, {
|
|
146
164
|
visible
|
|
147
|
-
}] =
|
|
165
|
+
}] = _ref9;
|
|
148
166
|
return !visible || visible(value);
|
|
149
167
|
});
|
|
150
168
|
const {
|
|
@@ -168,11 +186,11 @@ const Form = _ref3 => {
|
|
|
168
186
|
bold: true,
|
|
169
187
|
headline: isDesktop,
|
|
170
188
|
wide: true
|
|
171
|
-
}, translate(_Checkout2.L10N.LABEL_PERSONAL_DETAILS)), getFields(form).filter(
|
|
172
|
-
let [, field] =
|
|
189
|
+
}, translate(_Checkout2.L10N.LABEL_PERSONAL_DETAILS)), getFields(form).filter(_ref0 => {
|
|
190
|
+
let [, field] = _ref0;
|
|
173
191
|
return field.required;
|
|
174
|
-
}).map(
|
|
175
|
-
let [key, field = {}] =
|
|
192
|
+
}).map(_ref1 => {
|
|
193
|
+
let [key, field = {}] = _ref1;
|
|
176
194
|
return /*#__PURE__*/_react.default.createElement(_Checkout.FIELD[field.input] || _ui.InputText, (0, _helpers2.getFieldProps)(key, field, _objectSpread({
|
|
177
195
|
value: form[key],
|
|
178
196
|
error: errorForm[key],
|
|
@@ -182,7 +200,7 @@ const Form = _ref3 => {
|
|
|
182
200
|
}, dataSource), club, () => setModal(true)));
|
|
183
201
|
})), children, payment && /*#__PURE__*/_react.default.createElement(_shared__.Payment, _extends({}, _objectSpread(_objectSpread({}, payment), {}, {
|
|
184
202
|
config: _objectSpread(_objectSpread({}, payment.config), {}, {
|
|
185
|
-
publicKey: (_payment$config = payment.config) === null || _payment$config === void 0 ? void 0 : (_payment$config$publi = _payment$config.publicKey) === null || _payment$config$publi === void 0 ? void 0 : _payment$config$publi[method]
|
|
203
|
+
publicKey: (_payment$config = payment.config) === null || _payment$config === void 0 ? void 0 : (_payment$config$publi = _payment$config.publicKey) === null || _payment$config$publi === void 0 ? void 0 : _payment$config$publi[storePayment.method]
|
|
186
204
|
}),
|
|
187
205
|
info: _objectSpread(_objectSpread({}, payment.info), {}, {
|
|
188
206
|
date: (_payment$info = payment.info) !== null && _payment$info !== void 0 && _payment$info.date ? (0, _locale.parseDate)((_payment$info2 = payment.info) === null || _payment$info2 === void 0 ? void 0 : _payment$info2.date) : undefined
|
|
@@ -198,11 +216,11 @@ const Form = _ref3 => {
|
|
|
198
216
|
bold: true,
|
|
199
217
|
headline: isDesktop,
|
|
200
218
|
wide: true
|
|
201
|
-
}, translate(_Checkout2.L10N.LABEL_ADDITIONAL_INFO)), getFields(form).filter(
|
|
202
|
-
let [, field] =
|
|
219
|
+
}, translate(_Checkout2.L10N.LABEL_ADDITIONAL_INFO)), getFields(form).filter(_ref10 => {
|
|
220
|
+
let [, field] = _ref10;
|
|
203
221
|
return !field.required;
|
|
204
|
-
}).map(
|
|
205
|
-
let [key, field = {}] =
|
|
222
|
+
}).map(_ref11 => {
|
|
223
|
+
let [key, field = {}] = _ref11;
|
|
206
224
|
return /*#__PURE__*/_react.default.createElement(_Checkout.FIELD[field.input] || _ui.InputText, (0, _helpers2.getFieldProps)(key, field, _objectSpread({
|
|
207
225
|
value: form[key],
|
|
208
226
|
error: errorForm[key],
|