@mirai/core 0.4.546 → 0.4.547

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.
Files changed (81) hide show
  1. package/build/components/Banner/Banner.js +11 -0
  2. package/build/components/Banner/Banner.js.map +1 -1
  3. package/build/components/Booking/Booking.js +19 -28
  4. package/build/components/Booking/Booking.js.map +1 -1
  5. package/build/components/Booking/partials/Booking.Menu.js +12 -0
  6. package/build/components/Booking/partials/Booking.Menu.js.map +1 -1
  7. package/build/components/Chat/Chat.js +10 -3
  8. package/build/components/Chat/Chat.js.map +1 -1
  9. package/build/components/Chat/components/Aura/Aura.js +2 -2
  10. package/build/components/Chat/components/Aura/Aura.js.map +1 -1
  11. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js +4 -4
  12. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js.map +1 -1
  13. package/build/components/Chat/components/Rating/Rating.js +1 -1
  14. package/build/components/Chat/components/Rating/Rating.js.map +1 -1
  15. package/build/components/Checkout/Checkout.js +74 -15
  16. package/build/components/Checkout/Checkout.js.map +1 -1
  17. package/build/components/Checkout/partials/Checkout.Confirmation.js +22 -3
  18. package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
  19. package/build/components/Checkout/partials/Checkout.Form.js +36 -18
  20. package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
  21. package/build/components/Rates/Rates.Unavailability.js +28 -3
  22. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  23. package/build/components/Rates/Rates.js +47 -14
  24. package/build/components/Rates/Rates.js.map +1 -1
  25. package/build/components/Rates/components/Filters/Filters.js +11 -0
  26. package/build/components/Rates/components/Filters/Filters.js.map +1 -1
  27. package/build/components/Rates/components/Item/Item.Preview.js +17 -2
  28. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  29. package/build/components/Rates/components/Item/Item.Rates.js +32 -10
  30. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
  31. package/build/components/Rates/components/Item/Item.Summary.js +4 -1
  32. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
  33. package/build/components/Rates/components/Item/Item.js +4 -1
  34. package/build/components/Rates/components/Item/Item.js.map +1 -1
  35. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +9 -1
  36. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
  37. package/build/components/Rates/components/ModalClubRate/ModalClubRate.js +31 -2
  38. package/build/components/Rates/components/ModalClubRate/ModalClubRate.js.map +1 -1
  39. package/build/components/Rates/components/ModalExtras/ModalExtras.js +46 -6
  40. package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
  41. package/build/components/Rates/components/ModalTwin/ModalTwin.js +51 -5
  42. package/build/components/Rates/components/ModalTwin/ModalTwin.js.map +1 -1
  43. package/build/components/Rates/components/OTAPrices/OTAPrices.js +66 -2
  44. package/build/components/Rates/components/OTAPrices/OTAPrices.js.map +1 -1
  45. package/build/components/Rates/hooks/useRates.js +13 -0
  46. package/build/components/Rates/hooks/useRates.js.map +1 -1
  47. package/build/components/Session/Session.Account.js +4 -0
  48. package/build/components/Session/Session.Account.js.map +1 -1
  49. package/build/components/Session/Session.Login.Modal.js +38 -4
  50. package/build/components/Session/Session.Login.Modal.js.map +1 -1
  51. package/build/components/Signup/Signup.js +12 -0
  52. package/build/components/Signup/Signup.js.map +1 -1
  53. package/build/components/__shared__/BookingDetails/BookingDetails.js +5 -0
  54. package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
  55. package/build/components/__shared__/BookingSummary/BookingSummary.js +10 -0
  56. package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
  57. package/build/components/__shared__/BookingTerms/BookingTerms.js +13 -3
  58. package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
  59. package/build/components/__shared__/Payment/Payment.js +11 -1
  60. package/build/components/__shared__/Payment/Payment.js.map +1 -1
  61. package/build/components/helpers/constants.js +22 -1
  62. package/build/components/helpers/constants.js.map +1 -1
  63. package/build/contexts/PerformanceManager/PerformanceManager.js +30 -8
  64. package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
  65. package/build/contexts/PerformanceManager/providers/helpers/SHA256.js +6 -83
  66. package/build/contexts/PerformanceManager/providers/helpers/SHA256.js.map +1 -1
  67. package/build/helpers/SHA256.js +73 -0
  68. package/build/helpers/SHA256.js.map +1 -0
  69. package/build/helpers/getRefundableFromItems.js +22 -0
  70. package/build/helpers/getRefundableFromItems.js.map +1 -0
  71. package/build/helpers/getSearchProps.js +100 -0
  72. package/build/helpers/getSearchProps.js.map +1 -0
  73. package/build/helpers/getSuperProps.js +54 -0
  74. package/build/helpers/getSuperProps.js.map +1 -0
  75. package/build/helpers/index.js +48 -4
  76. package/build/helpers/index.js.map +1 -1
  77. package/build/helpers/trackError.js +2 -1
  78. package/build/helpers/trackError.js.map +1 -1
  79. package/build/index.js +4 -2
  80. package/build/index.js.map +1 -1
  81. 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.l10n");
12
+ var _Checkout = require("./Checkout.constants");
13
+ var _Checkout2 = require("./Checkout.l10n");
13
14
  var style = _interopRequireWildcard(require("./Checkout.module.css"));
14
- var _Checkout2 = _interopRequireDefault(require("./Checkout.skeleton"));
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
- if (skeleton) return;
67
- if (urlParams.hsri === _Core.SYNAPSE_COMMISSION_CODE && urlParams.fingerprint) {
68
- _dataSources.Event.publish(_helpers.EVENT.METRICS, {
69
- id: 'CHECKOUT:RENDER',
70
- fingerprint: urlParams.fingerprint
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 ? _Checkout.L10N.NOTIFICATION_BETTER_PRICE : _Checkout.L10N.NOTIFICATION_PRICE_CHANGED)
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(_Checkout.L10N.NOTIFICATION_NO_CARD), " "), !tpvError && agency.name && translate(_Checkout.L10N.NOTIFICATION_AGENCY, {
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(_Checkout.L10N.ACTION_MORE_INFO)))
204
- }), tpvError && translate(_Checkout.L10N.NOTIFICATION_UNKNOWN_POS_ERROR)), !isDesktop && /*#__PURE__*/_react.default.createElement(_shared__.BookingSummary, {
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(_Checkout.L10N.NOTIFICATION_ERROR[(responseError === null || responseError === void 0 ? void 0 : responseError.code) || _Core.ERROR.UNKNOWN])) : /*#__PURE__*/_react.default.createElement(_Checkout2.default, null)), agency.name && /*#__PURE__*/_react.default.createElement(_Booking.ModalAgency, _extends({}, agency, {
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$payment;
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$payment = dataSource.payment) === null || _dataSource$payment === void 0 ? void 0 : _dataSource$payment.info), {}, {
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(_ref5 => {
116
- let [key] = _ref5;
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(_ref6 => {
142
- let [key] = _ref6;
159
+ const getFields = value => Object.entries(schema).filter(_ref8 => {
160
+ let [key] = _ref8;
143
161
  return !!schema[key];
144
- }).filter(_ref7 => {
162
+ }).filter(_ref9 => {
145
163
  let [, {
146
164
  visible
147
- }] = _ref7;
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(_ref8 => {
172
- let [, field] = _ref8;
189
+ }, translate(_Checkout2.L10N.LABEL_PERSONAL_DETAILS)), getFields(form).filter(_ref0 => {
190
+ let [, field] = _ref0;
173
191
  return field.required;
174
- }).map(_ref9 => {
175
- let [key, field = {}] = _ref9;
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(_ref0 => {
202
- let [, field] = _ref0;
219
+ }, translate(_Checkout2.L10N.LABEL_ADDITIONAL_INFO)), getFields(form).filter(_ref10 => {
220
+ let [, field] = _ref10;
203
221
  return !field.required;
204
- }).map(_ref1 => {
205
- let [key, field = {}] = _ref1;
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],