@mirai/core 0.3.379 → 0.3.380
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/__tests__/Checkout/__mocks__/checkout-get.json +935 -0
- package/__tests__/Checkout/__mocks__/checkout-post-PAYLATER.json +10 -0
- package/__tests__/Checkout/__mocks__/checkout-post-TPV.json +7 -0
- package/__tests__/Checkout/__mocks__/checkout-post-TRANSFER.json +10 -0
- package/__tests__/Checkout/checkout.constants.js +8 -0
- package/__tests__/Checkout/checkout.spec.jsx +40 -0
- package/__tests__/Checkout/workflows/form.workflow.js +17 -0
- package/__tests__/Checkout/workflows/index.js +4 -0
- package/__tests__/Checkout/workflows/payment.workflow.js +10 -0
- package/__tests__/Checkout/workflows/review.workflow.js +19 -0
- package/__tests__/Checkout/workflows/submit.workflow.js +9 -0
- package/__tests__/Finder/finder.spec.js +64 -0
- package/__tests__/Finder/workflows/calendar.workflow.js +9 -0
- package/__tests__/Finder/workflows/index.js +3 -0
- package/__tests__/Finder/workflows/occupation.workflow.js +13 -0
- package/__tests__/Finder/workflows/promocode.workflow.js +8 -0
- package/__tests__/Rates/__mocks__/rates-success.json +731 -0
- package/__tests__/Rates/rates.spec.jsx +20 -0
- package/__tests__/Session/workflows/forgotPassword.workflow.js +4 -2
- package/__tests__/Session/workflows/login.workflow.js +5 -3
- package/__tests__/Session/workflows/profile.workflow.js +11 -9
- package/__tests__/Signup/workflows/signup.workflow.js +9 -7
- package/__tests__/constants.js +18 -0
- package/__tests__/helpers/getWeekNumber.js +8 -0
- package/__tests__/helpers/index.js +1 -0
- package/build/components/Checkout/Checkout.js +1 -0
- package/build/components/Checkout/Checkout.js.map +1 -1
- package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +16 -16
- package/build/components/Checkout/partials/Checkout.Confirmation.js +2 -1
- package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
- package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Confirmation.test.js.snap +6 -0
- package/build/components/Checkout/partials/__tests__/__snapshots__/Checkout.Form.test.js.snap +28 -8
- package/build/components/Deals/__tests__/__snapshots__/Deals.Calendar.test.js.snap +114 -114
- package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +211 -209
- package/build/components/Environment/Environment.js +4 -2
- package/build/components/Environment/Environment.js.map +1 -1
- package/build/components/Finder/Finder.compact.js +10 -5
- package/build/components/Finder/Finder.compact.js.map +1 -1
- package/build/components/Finder/Finder.constants.js +1 -2
- package/build/components/Finder/Finder.constants.js.map +1 -1
- package/build/components/Finder/Finder.js +4 -20
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +734 -730
- package/build/components/Finder/components/Calendar/__tests__/__snapshots__/Calendar.test.js.snap +419 -419
- package/build/components/__shared__/BookingDetails/BookingDetails.js +2 -1
- package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
- package/build/components/__shared__/BookingDetails/__tests__/__snapshots__/BookingDetails.test.js.snap +5 -0
- package/build/components/__shared__/BookingSummary/BookingSummary.js +2 -1
- package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
- package/build/components/__shared__/ButtonMore/ButtonMore.js +1 -1
- package/build/components/__shared__/ButtonMore/ButtonMore.js.map +1 -1
- package/build/components/__shared__/ButtonMore/__tests__/__snapshots__/ButtonMore.test.js.snap +2 -0
- package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +1 -0
- package/build/components/__shared__/FieldPromocode/FieldPromocode.js +4 -2
- package/build/components/__shared__/FieldPromocode/FieldPromocode.js.map +1 -1
- package/build/components/__shared__/FieldPromocode/__tests__/__snapshots__/FieldPromocode.test.jsx.snap +2 -1
- package/build/components/__shared__/Occupation/Occupation.Group.js +2 -1
- package/build/components/__shared__/Occupation/Occupation.Group.js.map +1 -1
- package/build/components/__shared__/Occupation/__tests__/__snapshots__/Occupation.test.js.snap +6 -0
- package/build/components/__shared__/Payment/Payment.js +2 -1
- package/build/components/__shared__/Payment/Payment.js.map +1 -1
- package/build/components/__shared__/Payment/__tests__/__snapshots__/Payment.test.js.snap +25 -10
- package/build/helpers/consolidateStore.js +1 -1
- package/build/helpers/consolidateStore.js.map +1 -1
- package/package.json +2 -1
- package/playwright.config.js +10 -7
- package/public/routes/Home.jsx +3 -2
- package/__tests__/Finder/finder._spec.js +0 -18
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { test } from '@playwright/test';
|
|
2
|
+
|
|
3
|
+
test.beforeEach(async ({ context }) => {
|
|
4
|
+
await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
test('Rates workflows', async ({ page }) => {
|
|
8
|
+
await page.route('https://reservation.mirai.com/XMAS/reservation/v2/booking/rates*', (route) => {
|
|
9
|
+
route.fulfill({
|
|
10
|
+
status: 200,
|
|
11
|
+
contentType: 'application/json',
|
|
12
|
+
body: JSON.stringify(require('./__mocks__/rates-success.json')),
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
await page.goto(
|
|
17
|
+
'http://local.mirai.com:8080/step1-rates?checkin=10/04/2025&idtokenprovider=100379008¤cy=EUR&hsri=02040&lang=en&nights=2&parties=W3siYWR1bHRzIjoyLCJjaGlsZHJlbiI6W119XQ%3D%3D&&step=1',
|
|
18
|
+
{ waitUntil: 'networkidle', timeout: 10000 },
|
|
19
|
+
);
|
|
20
|
+
});
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { expect } from '@playwright/test';
|
|
2
2
|
|
|
3
|
+
import { USER } from '../../constants';
|
|
4
|
+
|
|
3
5
|
export const forgotPassword = async ({ page }) => {
|
|
4
6
|
await page.getByTestId('show-login').click();
|
|
5
7
|
await page.waitForTimeout(300);
|
|
6
8
|
|
|
7
9
|
await page.getByTestId('login-action').click();
|
|
8
10
|
|
|
9
|
-
await page.fill('input[name="email"]',
|
|
11
|
+
await page.fill('input[name="email"]', USER.email);
|
|
10
12
|
|
|
11
13
|
const [responseError] = await Promise.all([
|
|
12
14
|
page.waitForResponse((response) => response.url().includes('/recovery') && !!response.status()),
|
|
@@ -14,5 +16,5 @@ export const forgotPassword = async ({ page }) => {
|
|
|
14
16
|
]);
|
|
15
17
|
expect(responseError.status()).toBe(200);
|
|
16
18
|
|
|
17
|
-
page.getByTestId('login-button-secondary').click();
|
|
19
|
+
await page.getByTestId('login-button-secondary').click();
|
|
18
20
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { expect } from '@playwright/test';
|
|
2
2
|
|
|
3
|
+
import { SESSION } from '../../constants';
|
|
4
|
+
|
|
3
5
|
export const login = async ({ page }) => {
|
|
4
6
|
await page.getByTestId('show-login').click();
|
|
5
7
|
await page.waitForTimeout(300);
|
|
6
8
|
|
|
7
9
|
// Fails
|
|
8
|
-
await page.fill('input[name="email"]',
|
|
10
|
+
await page.fill('input[name="email"]', SESSION.email);
|
|
9
11
|
expect(await page.getByTestId('login-button').getAttribute('disabled')).toBe('true');
|
|
10
12
|
await page.fill('input[name="password"]', 'PassworD');
|
|
11
13
|
|
|
@@ -16,8 +18,8 @@ export const login = async ({ page }) => {
|
|
|
16
18
|
expect(responseError.status()).toBe(400);
|
|
17
19
|
|
|
18
20
|
// Success
|
|
19
|
-
await page.fill('input[name="email"]',
|
|
20
|
-
await page.fill('input[name="password"]',
|
|
21
|
+
await page.fill('input[name="email"]', SESSION.email);
|
|
22
|
+
await page.fill('input[name="password"]', SESSION.password);
|
|
21
23
|
|
|
22
24
|
const [response] = await Promise.all([
|
|
23
25
|
page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { expect } from '@playwright/test';
|
|
2
2
|
|
|
3
|
+
import { SESSION, USER } from '../../constants';
|
|
4
|
+
|
|
3
5
|
// ! TODO: Somehow we should close the notifications
|
|
4
6
|
// import { closeNotification } from '../../helpers';
|
|
5
7
|
|
|
@@ -10,9 +12,9 @@ export const profile = async ({ page }) => {
|
|
|
10
12
|
await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
|
|
11
13
|
|
|
12
14
|
// Update profile
|
|
13
|
-
await page.fill('input[name="firstName"]',
|
|
14
|
-
await page.fill('input[name="lastName"]',
|
|
15
|
-
await page.fill('input[name="dateOfBirth"]',
|
|
15
|
+
await page.fill('input[name="firstName"]', USER.firstName);
|
|
16
|
+
await page.fill('input[name="lastName"]', USER.lastName);
|
|
17
|
+
await page.fill('input[name="dateOfBirth"]', USER.dateOfBirth);
|
|
16
18
|
await page.locator('input[name="subscribed"]').check();
|
|
17
19
|
|
|
18
20
|
const [response] = await Promise.all([
|
|
@@ -23,16 +25,16 @@ export const profile = async ({ page }) => {
|
|
|
23
25
|
// await closeNotification();
|
|
24
26
|
|
|
25
27
|
// Move to "security" context
|
|
26
|
-
page.getByTestId('profile-context-2').click();
|
|
28
|
+
await page.getByTestId('profile-context-2').click();
|
|
27
29
|
|
|
28
30
|
// Try to change the password but user fails with the confirmation password
|
|
29
|
-
await page.fill('input[name="password"]',
|
|
31
|
+
await page.fill('input[name="password"]', SESSION.password);
|
|
30
32
|
await page.fill('input[name="rePassword"]', 'n3wp4ssw0rD');
|
|
31
33
|
expect(await page.getByTestId('button-password').getAttribute('disabled')).toBe('true');
|
|
32
34
|
|
|
33
35
|
// User changes password
|
|
34
|
-
await page.fill('input[name="password"]',
|
|
35
|
-
await page.fill('input[name="rePassword"]',
|
|
36
|
+
await page.fill('input[name="password"]', SESSION.password);
|
|
37
|
+
await page.fill('input[name="rePassword"]', SESSION.password);
|
|
36
38
|
const [responsePassword] = await Promise.all([
|
|
37
39
|
page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
|
|
38
40
|
page.getByTestId('button-password').click(),
|
|
@@ -41,7 +43,7 @@ export const profile = async ({ page }) => {
|
|
|
41
43
|
// await closeNotification();
|
|
42
44
|
|
|
43
45
|
// Try to delete account and cancel process.
|
|
44
|
-
page.getByTestId('button-delete-account').click();
|
|
46
|
+
await page.getByTestId('button-delete-account').click();
|
|
45
47
|
await page.waitForTimeout(300);
|
|
46
|
-
page.getByTestId('button-delete-close').click();
|
|
48
|
+
await page.getByTestId('button-delete-close').click();
|
|
47
49
|
};
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { expect } from '@playwright/test';
|
|
2
2
|
|
|
3
|
+
import { USER } from '../../constants';
|
|
4
|
+
|
|
3
5
|
export const signup = async ({ page }) => {
|
|
4
|
-
await page.fill('ui-signup input[name="firstName"]',
|
|
5
|
-
await page.fill('ui-signup input[name="lastName"]',
|
|
6
|
-
await page.fill('ui-signup input[name="email"]',
|
|
7
|
-
await page.fill('ui-signup input[name="dateOfBirth"]',
|
|
8
|
-
await page.locator('ui-signup select[name="country"]').selectOption('
|
|
9
|
-
await page.fill('ui-signup input[name="password"]',
|
|
6
|
+
await page.fill('ui-signup input[name="firstName"]', USER.firstName);
|
|
7
|
+
await page.fill('ui-signup input[name="lastName"]', USER.lastName);
|
|
8
|
+
await page.fill('ui-signup input[name="email"]', USER.email);
|
|
9
|
+
await page.fill('ui-signup input[name="dateOfBirth"]', USER.dateOfBirth);
|
|
10
|
+
await page.locator('ui-signup select[name="country"]').selectOption('United States');
|
|
11
|
+
await page.fill('ui-signup input[name="password"]', USER.password);
|
|
10
12
|
await page.locator('ui-signup input[name="subscribed"]').check();
|
|
11
13
|
|
|
12
14
|
// User forgot some fields
|
|
@@ -20,5 +22,5 @@ export const signup = async ({ page }) => {
|
|
|
20
22
|
page.getByTestId('signup-button').click(),
|
|
21
23
|
]);
|
|
22
24
|
|
|
23
|
-
expect(responseError.status()
|
|
25
|
+
expect(responseError.status()).toBe(409);
|
|
24
26
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const SESSION = {
|
|
2
|
+
email: 'hello@soyjavi.com',
|
|
3
|
+
password: 'BuyB1tc01N',
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
const USER = {
|
|
7
|
+
firstName: 'Hal',
|
|
8
|
+
lastName: 'Finney',
|
|
9
|
+
dateOfBirth: '04/05/1956',
|
|
10
|
+
phone: {
|
|
11
|
+
prefix: '+1',
|
|
12
|
+
number: '818-555-1234',
|
|
13
|
+
},
|
|
14
|
+
email: 'hal@finney.org',
|
|
15
|
+
password: 'BuyB1tc01N',
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { SESSION, USER };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { UTC } from '@mirai/locale';
|
|
2
|
+
|
|
3
|
+
export const getWeekNumber = (date) => {
|
|
4
|
+
const firstDayOfYear = UTC(new Date(date.getFullYear(), 0, 1));
|
|
5
|
+
const pastDaysOfYear = (Number(date) - Number(firstDayOfYear)) / 86400000;
|
|
6
|
+
|
|
7
|
+
return Math.ceil((pastDaysOfYear + firstDayOfYear.getDay()) / 7);
|
|
8
|
+
};
|
|
@@ -117,6 +117,7 @@ const Checkout = _ref => {
|
|
|
117
117
|
const hasRequiredFields = Object.keys(requiredFields || {}).length > 0;
|
|
118
118
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Header.Header, null), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
119
119
|
role: "checkout",
|
|
120
|
+
tag: "checkout",
|
|
120
121
|
testId: others.testId,
|
|
121
122
|
className: (0, _ui.styles)(style.container, others.className)
|
|
122
123
|
}, /*#__PURE__*/_react.default.createElement(_ui.Progress, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Checkout","_Checkout2","style","_Checkout3","_partials","_Core","_shared__","_Booking","_Header","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Checkout","_ref","skeleton","others","isDesktop","useDevice","translate","useLocale","track","trackRender","useMetrics","value","currency","hotel","id","language","locale","session","urlParams","useStore","dataSource","setDataSource","useState","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","concat","TRACKING","response","ServiceBooking","checkout","applyClubDiscount","undefined","catch","service","method","trace","tracking","chainId","idchain","window","addEventListener","innerHeight","scrollY","documentElement","scrollHeight","document","handleModalAgency","handleErrorConfirmation","scrollTo","top","behavior","agency","payment","hasRequiredFields","keys","createElement","Fragment","Header","View","role","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","form","values","BookingSummary","box","BookingDetails","expanded","name","Notification","small","info","L10N","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","action","ACTION_MORE_INFO","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","ModalAgency","onClose","Footer","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } 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 } from '../../Core.constants';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { trace } from '../helpers';\n\nlet hasTracking = false;\n\nconst Checkout = ({ skeleton, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track, trackRender } = useMetrics();\n const {\n value: { currency, hotel, id, language, locale, session, urlParams = {} },\n } = useStore();\n\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\n useEffect(() => {\n if (skeleton) return;\n\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n hasTracking && trackRender(`${TRACKING}:RENDER`, { locale });\n\n (async () => {\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setResponseError(error);\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'checkout', error });\n });\n setDataSource(response);\n response && trace({ ...response.tracking, chainId: urlParams.idchain });\n })();\n\n window.addEventListener('scroll', () => {\n if (!hasTracking) return;\n const { innerHeight = 0, scrollY } = window;\n const { documentElement: { scrollHeight = 0 } = {} } = document;\n\n if (scrollY >= scrollHeight - innerHeight) track(`${TRACKING}:SCROLL:BOTTOM`);\n else if (scrollY === 0) track(`${TRACKING}:SCROLL:TOP`);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\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\" testId={others.testId} className={styles(style.container, others.className)}>\n <Progress indeterminate visible={!response && !responseError} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && <NotificationRequiredFields form=\"checkout\" values={requiredFields} />}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n {(agency.name || !payment) && (\n <Notification small info wide className={styles(style.agency, others.className)}>\n {!payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\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 </Notification>\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 tracking={TRACKING} />\n </View>\n\n <Confirmation\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 skeleton: PropTypes.bool,\n};\n\nexport { Checkout };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkout.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Checkout","_Checkout2","style","_Checkout3","_partials","_Core","_shared__","_Booking","_Header","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Checkout","_ref","skeleton","others","isDesktop","useDevice","translate","useLocale","track","trackRender","useMetrics","value","currency","hotel","id","language","locale","session","urlParams","useStore","dataSource","setDataSource","useState","error","setError","requiredFields","setRequiredFields","modalAgency","setModalAgency","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","concat","TRACKING","response","ServiceBooking","checkout","applyClubDiscount","undefined","catch","service","method","trace","tracking","chainId","idchain","window","addEventListener","innerHeight","scrollY","documentElement","scrollHeight","document","handleModalAgency","handleErrorConfirmation","scrollTo","top","behavior","agency","payment","hasRequiredFields","keys","createElement","Fragment","Header","View","role","tag","testId","className","styles","container","Progress","indeterminate","visible","progress","row","content","wide","main","NotificationRequiredFields","form","values","BookingSummary","box","BookingDetails","expanded","name","Notification","small","info","L10N","NOTIFICATION_NO_CARD","NOTIFICATION_AGENCY","link","Action","underline","onPress","action","ACTION_MORE_INFO","Form","showErrors","onError","BookingTerms","Confirmation","onValid","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","ModalAgency","onClose","Footer","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Checkout/Checkout.jsx"],"sourcesContent":["import { useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceBooking, ServiceFeatures } from '@mirai/services';\nimport { Action, Notification, Progress, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } 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 } from '../../Core.constants';\nimport { BookingDetails, BookingSummary, BookingTerms, Footer, NotificationRequiredFields } from '../__shared__';\nimport { ModalAgency } from '../Booking/partials/Booking.ModalAgency';\nimport { Header } from '../Header';\nimport { trace } from '../helpers';\n\nlet hasTracking = false;\n\nconst Checkout = ({ skeleton, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track, trackRender } = useMetrics();\n const {\n value: { currency, hotel, id, language, locale, session, urlParams = {} },\n } = useStore();\n\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\n useEffect(() => {\n if (skeleton) return;\n\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n hasTracking && trackRender(`${TRACKING}:RENDER`, { locale });\n\n (async () => {\n const response = await ServiceBooking.checkout({\n currency,\n hotel,\n language,\n locale,\n session: urlParams.applyClubDiscount === 'true' ? session : undefined,\n ...urlParams,\n }).catch((error) => {\n setResponseError(error);\n hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'checkout', error });\n });\n setDataSource(response);\n response && trace({ ...response.tracking, chainId: urlParams.idchain });\n })();\n\n window.addEventListener('scroll', () => {\n if (!hasTracking) return;\n const { innerHeight = 0, scrollY } = window;\n const { documentElement: { scrollHeight = 0 } = {} } = document;\n\n if (scrollY >= scrollHeight - innerHeight) track(`${TRACKING}:SCROLL:BOTTOM`);\n else if (scrollY === 0) track(`${TRACKING}:SCROLL:TOP`);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, session]);\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={!response && !responseError} className={style.progress} />\n {response ? (\n <View row={isDesktop} className={style.content}>\n <View wide className={style.main}>\n {hasRequiredFields && <NotificationRequiredFields form=\"checkout\" values={requiredFields} />}\n\n {!isDesktop && (\n <BookingSummary box dataSource={dataSource}>\n <BookingDetails dataSource={dataSource} expanded />\n </BookingSummary>\n )}\n\n {(agency.name || !payment) && (\n <Notification small info wide className={styles(style.agency, others.className)}>\n {!payment && `${translate(L10N.NOTIFICATION_NO_CARD)} `}\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 </Notification>\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 tracking={TRACKING} />\n </View>\n\n <Confirmation\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 skeleton: PropTypes.bool,\n};\n\nexport { Checkout };\n"],"mappings":"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"}
|
|
@@ -168,7 +168,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
|
|
|
168
168
|
</ui-view>
|
|
169
169
|
</ui-view>
|
|
170
170
|
</ui-header>
|
|
171
|
-
<ui-
|
|
171
|
+
<ui-checkout
|
|
172
172
|
class="view"
|
|
173
173
|
>
|
|
174
174
|
<ui-progress
|
|
@@ -213,7 +213,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
|
|
|
213
213
|
/>
|
|
214
214
|
</ui-view>
|
|
215
215
|
</ui-view>
|
|
216
|
-
</ui-
|
|
216
|
+
</ui-checkout>
|
|
217
217
|
<ui-view
|
|
218
218
|
class="view row"
|
|
219
219
|
>
|
|
@@ -430,7 +430,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
|
|
|
430
430
|
</ui-view>
|
|
431
431
|
</ui-view>
|
|
432
432
|
</ui-header>
|
|
433
|
-
<ui-
|
|
433
|
+
<ui-checkout
|
|
434
434
|
class="view"
|
|
435
435
|
>
|
|
436
436
|
<ui-progress
|
|
@@ -475,7 +475,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
|
|
|
475
475
|
/>
|
|
476
476
|
</ui-view>
|
|
477
477
|
</ui-view>
|
|
478
|
-
</ui-
|
|
478
|
+
</ui-checkout>
|
|
479
479
|
<ui-view
|
|
480
480
|
class="view row"
|
|
481
481
|
>
|
|
@@ -692,7 +692,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
|
|
|
692
692
|
</ui-view>
|
|
693
693
|
</ui-view>
|
|
694
694
|
</ui-header>
|
|
695
|
-
<ui-
|
|
695
|
+
<ui-checkout
|
|
696
696
|
class="view mirai"
|
|
697
697
|
>
|
|
698
698
|
<ui-progress
|
|
@@ -737,7 +737,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
|
|
|
737
737
|
/>
|
|
738
738
|
</ui-view>
|
|
739
739
|
</ui-view>
|
|
740
|
-
</ui-
|
|
740
|
+
</ui-checkout>
|
|
741
741
|
<ui-view
|
|
742
742
|
class="view row"
|
|
743
743
|
>
|
|
@@ -954,7 +954,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
|
|
|
954
954
|
</ui-view>
|
|
955
955
|
</ui-view>
|
|
956
956
|
</ui-header>
|
|
957
|
-
<ui-
|
|
957
|
+
<ui-checkout
|
|
958
958
|
class="view"
|
|
959
959
|
>
|
|
960
960
|
<ui-progress
|
|
@@ -999,7 +999,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
|
|
|
999
999
|
/>
|
|
1000
1000
|
</ui-view>
|
|
1001
1001
|
</ui-view>
|
|
1002
|
-
</ui-
|
|
1002
|
+
</ui-checkout>
|
|
1003
1003
|
<ui-view
|
|
1004
1004
|
class="view row"
|
|
1005
1005
|
>
|
|
@@ -1216,7 +1216,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
|
|
|
1216
1216
|
</ui-view>
|
|
1217
1217
|
</ui-view>
|
|
1218
1218
|
</ui-header>
|
|
1219
|
-
<ui-
|
|
1219
|
+
<ui-checkout
|
|
1220
1220
|
class="view"
|
|
1221
1221
|
>
|
|
1222
1222
|
<ui-progress
|
|
@@ -1261,7 +1261,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
|
|
|
1261
1261
|
/>
|
|
1262
1262
|
</ui-view>
|
|
1263
1263
|
</ui-view>
|
|
1264
|
-
</ui-
|
|
1264
|
+
</ui-checkout>
|
|
1265
1265
|
<ui-view
|
|
1266
1266
|
class="view row"
|
|
1267
1267
|
>
|
|
@@ -1478,7 +1478,7 @@ exports[`component:<Checkout> renders 1`] = `
|
|
|
1478
1478
|
</ui-view>
|
|
1479
1479
|
</ui-view>
|
|
1480
1480
|
</ui-header>
|
|
1481
|
-
<ui-
|
|
1481
|
+
<ui-checkout
|
|
1482
1482
|
class="view"
|
|
1483
1483
|
>
|
|
1484
1484
|
<ui-progress
|
|
@@ -1523,7 +1523,7 @@ exports[`component:<Checkout> renders 1`] = `
|
|
|
1523
1523
|
/>
|
|
1524
1524
|
</ui-view>
|
|
1525
1525
|
</ui-view>
|
|
1526
|
-
</ui-
|
|
1526
|
+
</ui-checkout>
|
|
1527
1527
|
<ui-view
|
|
1528
1528
|
class="view row"
|
|
1529
1529
|
>
|
|
@@ -1740,7 +1740,7 @@ exports[`component:<Checkout> testID 1`] = `
|
|
|
1740
1740
|
</ui-view>
|
|
1741
1741
|
</ui-view>
|
|
1742
1742
|
</ui-header>
|
|
1743
|
-
<ui-
|
|
1743
|
+
<ui-checkout
|
|
1744
1744
|
class="view"
|
|
1745
1745
|
data-testid="mirai"
|
|
1746
1746
|
>
|
|
@@ -1786,7 +1786,7 @@ exports[`component:<Checkout> testID 1`] = `
|
|
|
1786
1786
|
/>
|
|
1787
1787
|
</ui-view>
|
|
1788
1788
|
</ui-view>
|
|
1789
|
-
</ui-
|
|
1789
|
+
</ui-checkout>
|
|
1790
1790
|
<ui-view
|
|
1791
1791
|
class="view row"
|
|
1792
1792
|
>
|
|
@@ -2003,7 +2003,7 @@ exports[`component:<Checkout> with a store 1`] = `
|
|
|
2003
2003
|
</ui-view>
|
|
2004
2004
|
</ui-view>
|
|
2005
2005
|
</ui-header>
|
|
2006
|
-
<ui-
|
|
2006
|
+
<ui-checkout
|
|
2007
2007
|
class="view"
|
|
2008
2008
|
>
|
|
2009
2009
|
<ui-progress
|
|
@@ -2048,7 +2048,7 @@ exports[`component:<Checkout> with a store 1`] = `
|
|
|
2048
2048
|
/>
|
|
2049
2049
|
</ui-view>
|
|
2050
2050
|
</ui-view>
|
|
2051
|
-
</ui-
|
|
2051
|
+
</ui-checkout>
|
|
2052
2052
|
<ui-view
|
|
2053
2053
|
class="view row"
|
|
2054
2054
|
>
|
|
@@ -140,7 +140,8 @@ const Confirmation = _ref => {
|
|
|
140
140
|
promise: handleSubmit,
|
|
141
141
|
wide: true,
|
|
142
142
|
onError: handleError,
|
|
143
|
-
onPress: handlePress
|
|
143
|
+
onPress: handlePress,
|
|
144
|
+
testId: "checkout-button"
|
|
144
145
|
}), translate((0, _helpers.getButtonPaymentKey)({
|
|
145
146
|
...config,
|
|
146
147
|
...(dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$payment = dataSource.payment) === null || _dataSource$payment === void 0 ? void 0 : _dataSource$payment.info),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","_Checkout2","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","checkout","hotel","id","language","locale","payment","session","urlParams","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","method","handleError","handlePress","handleSubmit","concat","TRACKING","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","service","CTA","_config$publicKey","_dataSource$payment","config","idtokenprovider","createElement","ButtonPayment","publicKey","large","promise","wide","onPress","getButtonPaymentKey","info","amount","currencyFormat","content","Fragment","BookingSummary","View","className","section","Notification","Text","light","footer","NOTIFICATION_SSL_ENCRYPTION","ref","confirmation","exports","displayName","propTypes","PropTypes","shape","bool","func"],"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, ServiceFeatures } 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 { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT, getButtonPaymentKey } from '../../helpers';\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\n\nlet hasTracking = false;\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const { value: { checkout, hotel = {}, id, language, locale, payment, session = {}, urlParams = {} } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n\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(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n\n onValid();\n hasTracking && track(`${TRACKING}:CTA`, { locale });\n\n setResponseError();\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 hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'confirm', error, locale });\n });\n\n if (response && hasTracking) track(`${TRACKING}:SUCCESS`, { locale });\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 >\n {translate(getButtonPaymentKey({ ...config, ...dataSource?.payment?.info, method: payment?.method }), {\n amount: currencyFormat({ currency, 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 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 dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,SAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,KAAA,GAAAP,uBAAA,CAAAP,OAAA;AAAgD,SAAAe,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAnB,uBAAA+B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,SAAA,IAAAA,QAAA,GAAAV,MAAA,CAAAW,MAAA,GAAAX,MAAA,CAAAW,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,MAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,GAAA,IAAAD,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAEhD,IAAIK,WAAW,GAAG,KAAK;AAEvB,MAAMC,YAAY,GAAGC,IAAA,IAAqE;EAAA,IAApE;IAAEC,UAAU,GAAG,CAAC,CAAC;IAAEC,KAAK,GAAG,KAAK;IAAEC,OAAO;IAAEC,OAAO;IAAE,GAAGC;EAAO,CAAC,GAAAL,IAAA;EACnF,MAAM;IAAEM;EAAU,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,uBAAU,EAAC,CAAC;EAC9B,MAAM;IAAEC,KAAK,EAAE;MAAEC,QAAQ;MAAEC,KAAK,GAAG,CAAC,CAAC;MAAEC,EAAE;MAAEC,QAAQ;MAAEC,MAAM;MAAEC,OAAO;MAAEC,OAAO,GAAG,CAAC,CAAC;MAAEC,SAAS,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GACzG,IAAAC,qBAAQ,EAAC,CAAC;EACZ,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAC,CAAC;EAE7B,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC;EAEpD,IAAAG,gBAAS,EAAC,MAAM;IACd/B,WAAW,GAAGgC,yBAAe,CAACvD,GAAG,CAACwD,mCAAyB,EAAEhB,EAAE,CAAC;IAEhE,CAACT,SAAS,KACRgB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,OAAO,KACrBC,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,oBAAoB,EAAE;MAAEC,MAAM,EAAEf,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEU,OAAO,CAACM;IAAa,CAAC,CAAC;IAC3F;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAT,gBAAS,EAAC,MAAMD,gBAAgB,CAAC,CAAC,EAAE,CAACf,QAAQ,EAAEK,OAAO,CAAC,CAAC;EAExD,MAAM;IAAEqB,KAAK,EAAE;MAAEC,UAAU,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGvC,UAAU;EACtD,MAAM;IAAEwC,QAAQ;IAAE7B;EAAM,CAAC,GAAG4B,UAAU,CAACtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,MAAM,CAAC,IAAI,CAAC,CAAC;EAE7D,MAAMC,WAAW,GAAGA,CAAA,KAAMlB,OAAO,CAAC,KAAK,CAAC;EAExC,MAAMmB,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI1C,KAAK,EAAE;MACTC,OAAO,CAAC,CAAC;MACT,OAAO,KAAK;IACd;IAEAsB,OAAO,CAAC,IAAI,CAAC;EACf,CAAC;EAED,MAAMoB,YAAY,GAAG,MAAOjC,KAAK,IAAK;IACpC,IAAIV,KAAK,EAAE,OAAOC,OAAO,CAAC,CAAC;IAE3BC,OAAO,CAAC,CAAC;IACTN,WAAW,IAAIY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,WAAQ;MAAE9B;IAAO,CAAC,CAAC;IAEnDW,gBAAgB,CAAC,CAAC;IAClB,MAAMoB,QAAQ,GAAG,MAAMC,wBAAc,CAACC,OAAO,CAAC;MAC5CC,IAAI,EAAEtC,QAAQ;MACdZ,UAAU;MACVe,QAAQ;MACRE,OAAO,EAAE;QAAE,GAAGA,OAAO;QAAE,GAAGN;MAAM,CAAC;MACjCO,OAAO,EAAEC,SAAS,CAACgC,iBAAiB,KAAK,MAAM,GAAGjC,OAAO,GAAGkC,SAAS;MACrE,GAAGjC;IACL,CAAC,CAAC,CAACkC,KAAK,CAAEpD,KAAK,IAAK;MAClBuB,OAAO,CAAC,KAAK,CAAC;MACdG,gBAAgB,CAAC1B,KAAK,CAAC;MAEvB+B,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACoB,YAAY,EAAE;QAChCrD,KAAK,EAAE,IAAI;QACXsD,KAAK,EAAE,IAAI;QACXC,cAAc,EAAEjD,SAAS,CAACkD,eAAI,CAACC,kBAAkB,CAAC,CAAAzD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE0D,IAAI,KAAIC,WAAK,CAACC,OAAO,CAAC;MACjF,CAAC,CAAC;MAEFhE,WAAW,IAAIY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,qBAAkB;QAAEgB,OAAO,EAAE,SAAS;QAAErB,MAAM,EAAE,SAAS;QAAExC,KAAK;QAAEe;MAAO,CAAC,CAAC;IAC7G,CAAC,CAAC;IAEF,IAAI+B,QAAQ,IAAIlD,WAAW,EAAEY,KAAK,IAAAoC,MAAA,CAAIC,kBAAQ,eAAY;MAAE9B;IAAO,CAAC,CAAC;IAErE,OAAO+B,QAAQ;EACjB,CAAC;EAED,MAAMgB,GAAG,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA,EAAAC,mBAAA;IAChB,MAAM;MAAEhD,OAAO,EAAE;QAAEiD,MAAM,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAGlE,UAAU;IACpD,MAAM;MAAEmE,eAAe,EAAErD;IAAG,CAAC,GAAGK,SAAS;IAEzC,oBACE9D,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC5G,SAAA,CAAA6G,aAAa,EAAAjF,QAAA,KACHY,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEiB,OAAO;MAAEiD,MAAM,EAAE;QAAE,GAAGA,MAAM;QAAEI,SAAS,GAAAN,iBAAA,GAAEE,MAAM,CAACI,SAAS,cAAAN,iBAAA,uBAAhBA,iBAAA,CAAmB/C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,MAAM;MAAE,CAAC;MACnGlB,IAAI,EAAEA,IAAK;MACXV,KAAK,EAAE;QAAE,GAAGA,KAAK;QAAEC;MAAG,CAAE;MACxByD,KAAK;MACLC,OAAO,EAAE5B,YAAa;MACtB6B,IAAI;MACJvE,OAAO,EAAEwC,WAAY;MACrBgC,OAAO,EAAE/B;IAAY,IAEpBpC,SAAS,CAAC,IAAAoE,4BAAmB,EAAC;MAAE,GAAGT,MAAM;MAAE,IAAGlE,UAAU,aAAVA,UAAU,wBAAAiE,mBAAA,GAAVjE,UAAU,CAAEiB,OAAO,cAAAgD,mBAAA,uBAAnBA,mBAAA,CAAqBW,IAAI;MAAEnC,MAAM,EAAExB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB;IAAO,CAAC,CAAC,EAAE;MACpGoC,MAAM,EAAE,IAAAC,sBAAc,EAAC;QAAEtC,QAAQ;QAAExB,MAAM;QAAEL;MAAM,CAAC;IACpD,CAAC,CACY,CAAC;EAEpB,CAAC;EAED,MAAMoE,OAAO,GAAGA,CAAA,kBACd1H,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAA/G,MAAA,CAAAe,OAAA,CAAA4G,QAAA,qBACE3H,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAC3G,eAAA,CAAAwH,cAAc;IAACjF,UAAU,EAAEA;EAAW,CAAE,CAAC,eAE1C3C,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAgI,IAAI;IAACC,SAAS,EAAEtH,KAAK,CAACuH;EAAQ,GAC5B1D,aAAa,iBACZrE,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAmI,YAAY;IAACpF,KAAK;IAACsD,KAAK;IAACkB,IAAI;EAAA,GAC3BlE,SAAS,CAACkD,eAAI,CAACC,kBAAkB,CAAC,CAAAhC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiC,IAAI,KAAIC,WAAK,CAACC,OAAO,CAAC,CAC5D,CACf,EAEAE,GAAG,CAAC,CAAC,eAEN1G,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAoI,IAAI;IAACC,KAAK;IAAChC,KAAK;IAACkB,IAAI;IAACU,SAAS,EAAEtH,KAAK,CAAC2H;EAAO,GAC5CjF,SAAS,CAACkD,eAAI,CAACgC,2BAA2B,CACvC,CACF,CACN,CACH;EAED,oBACEpI,MAAA,CAAAe,OAAA,CAAAgG,aAAA,CAAClH,GAAA,CAAAgI,IAAI,EAAA9F,QAAA;IAACsG,GAAG,EAAErE;EAAa,GAAKjB,MAAM;IAAE+E,SAAS,EAAEtH,KAAK,CAAC8H;EAAa,IAChEtF,SAAS,GAAG0E,OAAO,CAAC,CAAC,GAAGhB,GAAG,CAAC,CACzB,CAAC;AAEX,CAAC;AAAC6B,OAAA,CAAA9F,YAAA,GAAAA,YAAA;AAEFA,YAAY,CAAC+F,WAAW,GAAG,kCAAkC;AAE7D/F,YAAY,CAACgG,SAAS,GAAG;EACvB9F,UAAU,EAAE+F,kBAAS,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/B/F,KAAK,EAAE8F,kBAAS,CAACE,IAAI;EACrB/F,OAAO,EAAE6F,kBAAS,CAACG,IAAI;EACvB/F,OAAO,EAAE4F,kBAAS,CAACG;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Checkout.Confirmation.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Core","_shared__","_BookingSummary","_helpers","_Checkout","_Checkout2","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","hasTracking","Confirmation","_ref","dataSource","error","onError","onValid","others","isDesktop","useDevice","translate","useLocale","track","useMetrics","value","checkout","hotel","id","language","locale","payment","session","urlParams","useStore","refContainer","useRef","busy","setBusy","useState","responseError","setResponseError","useEffect","ServiceFeatures","FEATURE_CHECKOUT_TRACKING","current","Event","publish","EVENT","FOOTER_HEIGHT_CHANGE","height","offsetHeight","price","prepayment","currency","method","handleError","handlePress","handleSubmit","concat","TRACKING","response","ServiceBooking","confirm","form","applyClubDiscount","undefined","catch","NOTIFICATION","small","defaultMessage","L10N","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","service","CTA","_config$publicKey","_dataSource$payment","config","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","ref","confirmation","exports","displayName","propTypes","PropTypes","shape","bool","func"],"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, ServiceFeatures } 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 { ButtonPayment } from '../../__shared__';\nimport { BookingSummary } from '../../__shared__/BookingSummary';\nimport { EVENT, getButtonPaymentKey } from '../../helpers';\nimport { FEATURE_CHECKOUT_TRACKING, TRACKING } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\n\nlet hasTracking = false;\n\nconst Confirmation = ({ dataSource = {}, error = false, onError, onValid, ...others }) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { track } = useMetrics();\n const { value: { checkout, hotel = {}, id, language, locale, payment, session = {}, urlParams = {} } = {} } =\n useStore();\n const refContainer = useRef();\n\n const [busy, setBusy] = useState(false);\n const [responseError, setResponseError] = useState();\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_CHECKOUT_TRACKING, id);\n\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(() => setResponseError(), [checkout, payment]);\n\n const { price: { prepayment = {} } = {} } = dataSource;\n const { currency, value } = prepayment[payment?.method] || {};\n\n const handleError = () => setBusy(false);\n\n const handlePress = () => {\n if (error) {\n onError();\n return false;\n }\n\n setBusy(true);\n };\n\n const handleSubmit = async (value) => {\n if (error) return onError();\n\n onValid();\n hasTracking && track(`${TRACKING}:CTA`, { locale });\n\n setResponseError();\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 hasTracking && track(`${TRACKING}:ERROR:SERVICE`, { service: 'Booking', method: 'confirm', error, locale });\n });\n\n if (response && hasTracking) track(`${TRACKING}:SUCCESS`, { locale });\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, 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 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 dataSource: PropTypes.shape({}),\n error: PropTypes.bool,\n onError: PropTypes.func,\n onValid: PropTypes.func,\n};\n\nexport { Confirmation };\n"],"mappings":"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"}
|
|
@@ -196,6 +196,7 @@ exports[`component:<Checkout> partial:<Confirmation> Test A/B variant A 1`] = `
|
|
|
196
196
|
>
|
|
197
197
|
<ui-button
|
|
198
198
|
class="pressable button large wide"
|
|
199
|
+
data-testid="checkout-button"
|
|
199
200
|
disabled="false"
|
|
200
201
|
methods="CARD,AMAZON_PAY"
|
|
201
202
|
tabindex="0"
|
|
@@ -459,6 +460,7 @@ exports[`component:<Checkout> partial:<Confirmation> Test A/B variant B 1`] = `
|
|
|
459
460
|
>
|
|
460
461
|
<ui-button
|
|
461
462
|
class="pressable button large wide"
|
|
463
|
+
data-testid="checkout-button"
|
|
462
464
|
disabled="false"
|
|
463
465
|
methods="CARD,AMAZON_PAY"
|
|
464
466
|
tabindex="0"
|
|
@@ -721,6 +723,7 @@ exports[`component:<Checkout> partial:<Confirmation> inherit:className 1`] = `
|
|
|
721
723
|
>
|
|
722
724
|
<ui-button
|
|
723
725
|
class="pressable button large wide"
|
|
726
|
+
data-testid="checkout-button"
|
|
724
727
|
disabled="false"
|
|
725
728
|
methods="CARD,AMAZON_PAY"
|
|
726
729
|
tabindex="0"
|
|
@@ -983,6 +986,7 @@ exports[`component:<Checkout> partial:<Confirmation> renders 1`] = `
|
|
|
983
986
|
>
|
|
984
987
|
<ui-button
|
|
985
988
|
class="pressable button large wide"
|
|
989
|
+
data-testid="checkout-button"
|
|
986
990
|
disabled="false"
|
|
987
991
|
methods="CARD,AMAZON_PAY"
|
|
988
992
|
tabindex="0"
|
|
@@ -1246,6 +1250,7 @@ exports[`component:<Checkout> partial:<Confirmation> testID 1`] = `
|
|
|
1246
1250
|
>
|
|
1247
1251
|
<ui-button
|
|
1248
1252
|
class="pressable button large wide"
|
|
1253
|
+
data-testid="checkout-button"
|
|
1249
1254
|
disabled="false"
|
|
1250
1255
|
methods="CARD,AMAZON_PAY"
|
|
1251
1256
|
tabindex="0"
|
|
@@ -1508,6 +1513,7 @@ exports[`component:<Checkout> partial:<Confirmation> with a store 1`] = `
|
|
|
1508
1513
|
>
|
|
1509
1514
|
<ui-button
|
|
1510
1515
|
class="pressable button large wide"
|
|
1516
|
+
data-testid="checkout-button"
|
|
1511
1517
|
disabled="false"
|
|
1512
1518
|
methods="CARD,AMAZON_PAY"
|
|
1513
1519
|
tabindex="0"
|