@mirai/core 0.3.378 → 0.3.379

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 (50) hide show
  1. package/__tests__/Finder/finder._spec.js +18 -0
  2. package/__tests__/Session/session.spec.js +17 -0
  3. package/__tests__/Session/workflows/bookings.workflow.js +18 -0
  4. package/__tests__/Session/workflows/forgotPassword.workflow.js +18 -0
  5. package/__tests__/Session/workflows/index.js +5 -0
  6. package/__tests__/Session/workflows/login.workflow.js +27 -0
  7. package/__tests__/Session/workflows/logout.workflow.js +8 -0
  8. package/__tests__/Session/workflows/profile.workflow.js +47 -0
  9. package/__tests__/Signup/signup.spec.js +13 -0
  10. package/__tests__/Signup/workflows/index.js +1 -0
  11. package/__tests__/Signup/workflows/signup.workflow.js +24 -0
  12. package/__tests__/helpers/closeNotification.js +7 -0
  13. package/__tests__/helpers/index.js +1 -0
  14. package/build/Core.Notifications.js +1 -1
  15. package/build/Core.Notifications.js.map +1 -1
  16. package/build/components/Booking/__tests__/__snapshots__/Booking.test.js.snap +10 -10
  17. package/build/components/Checkout/__tests__/__snapshots__/Checkout.test.js.snap +16 -16
  18. package/build/components/Header/Header.js +1 -0
  19. package/build/components/Header/Header.js.map +1 -1
  20. package/build/components/Profile/components/Bookings/Bookings.Search.js +9 -8
  21. package/build/components/Profile/components/Bookings/Bookings.Search.js.map +1 -1
  22. package/build/components/Profile/components/Bookings/Bookings.js +1 -0
  23. package/build/components/Profile/components/Bookings/Bookings.js.map +1 -1
  24. package/build/components/Profile/components/Settings/Settings.Account.js +2 -2
  25. package/build/components/Profile/components/Settings/Settings.Account.js.map +1 -1
  26. package/build/components/Profile/components/Settings/Settings.Password.js +31 -33
  27. package/build/components/Profile/components/Settings/Settings.Password.js.map +1 -1
  28. package/build/components/Profile/components/Settings/Settings.Signout.js +11 -8
  29. package/build/components/Profile/components/Settings/Settings.Signout.js.map +1 -1
  30. package/build/components/Profile/components/Settings/Settings.js +2 -1
  31. package/build/components/Profile/components/Settings/Settings.js.map +1 -1
  32. package/build/components/Profile/components/Settings/Settings.l10n.js +4 -0
  33. package/build/components/Profile/components/Settings/Settings.l10n.js.map +1 -1
  34. package/build/components/Profile/components/Settings/Settings.module.css +2 -4
  35. package/build/components/Session/Session.Account.js +10 -5
  36. package/build/components/Session/Session.Account.js.map +1 -1
  37. package/build/components/Session/Session.Login.Modal.js +10 -5
  38. package/build/components/Session/Session.Login.Modal.js.map +1 -1
  39. package/build/components/Session/Session.Login.js +2 -1
  40. package/build/components/Session/Session.Login.js.map +1 -1
  41. package/build/components/Session/__tests__/__snapshots__/Session.test.js.snap +23 -0
  42. package/build/components/Signup/Signup.js +3 -1
  43. package/build/components/Signup/Signup.js.map +1 -1
  44. package/build/components/Signup/__tests__/__snapshots__/Signup.test.js.snap +9 -6
  45. package/build/index.js +2 -1
  46. package/build/index.js.map +1 -1
  47. package/package.json +3 -3
  48. package/playwright.config.js +25 -89
  49. package/public/routes/Home.jsx +0 -2
  50. /package/__tests__/bookingQuery/{bookingQuey.spec.js → bookingQuey._spec.js} +0 -0
@@ -0,0 +1,18 @@
1
+ // @ts-check
2
+ const { test, expect } = require('@playwright/test');
3
+
4
+ const FINDER = 'finder';
5
+
6
+ test('Finder', async ({ page }) => {
7
+ await page.goto('http://localhost:9090');
8
+
9
+ await page.waitForTimeout(5000);
10
+ await page.getByText('Check-in ─ Check-out').first().click();
11
+ await page.getByTestId('calendar-35-0').click();
12
+ await page.getByTestId('calendar-35-5').click();
13
+ await page.getByText('Search').first().click();
14
+ await page.waitForTimeout(5000);
15
+ await expect(page).toHaveURL(/.*step1-rates/);
16
+
17
+ // await expect(page).toHaveURL('http://local.mirai.com:8080/dashboard');
18
+ });
@@ -0,0 +1,17 @@
1
+ import { test } from '@playwright/test';
2
+
3
+ import { bookings, forgotPassword, login, logout, profile } from './workflows';
4
+
5
+ test.beforeEach(async ({ context }) => {
6
+ await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
+ });
8
+
9
+ test('Session workflows', async ({ page }) => {
10
+ await page.goto('http://local.mirai.com:8080', { waitUntil: 'networkidle', timeout: 10000 });
11
+
12
+ await login({ page });
13
+ await profile({ page });
14
+ await bookings({ page });
15
+ await logout({ page });
16
+ await forgotPassword({ page });
17
+ });
@@ -0,0 +1,18 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ export const bookings = async ({ page }) => {
4
+ await page.getByTestId('show-session-menu').click();
5
+ await page.getByTestId('session-bookings').click();
6
+
7
+ await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
8
+
9
+ // Card: price details
10
+ await page.getByText('Price details').first().click();
11
+ await expect(page.locator('ui-tooltip-content')).toBeVisible();
12
+
13
+ // Search
14
+ await page.getByTestId('show-search').click();
15
+ await page.fill('input[name="search"]', '19800410');
16
+ await page.getByTestId('button-search').click();
17
+ await expect(page.locator('ui-tooltip-content')).not.toBeVisible();
18
+ };
@@ -0,0 +1,18 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ export const forgotPassword = async ({ page }) => {
4
+ await page.getByTestId('show-login').click();
5
+ await page.waitForTimeout(300);
6
+
7
+ await page.getByTestId('login-action').click();
8
+
9
+ await page.fill('input[name="email"]', 'email@mirai.com');
10
+
11
+ const [responseError] = await Promise.all([
12
+ page.waitForResponse((response) => response.url().includes('/recovery') && !!response.status()),
13
+ page.getByTestId('login-button').click(),
14
+ ]);
15
+ expect(responseError.status()).toBe(200);
16
+
17
+ page.getByTestId('login-button-secondary').click();
18
+ };
@@ -0,0 +1,5 @@
1
+ export * from './bookings.workflow';
2
+ export * from './forgotPassword.workflow';
3
+ export * from './login.workflow';
4
+ export * from './logout.workflow';
5
+ export * from './profile.workflow';
@@ -0,0 +1,27 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ export const login = async ({ page }) => {
4
+ await page.getByTestId('show-login').click();
5
+ await page.waitForTimeout(300);
6
+
7
+ // Fails
8
+ await page.fill('input[name="email"]', 'hello@soyjavi.com');
9
+ expect(await page.getByTestId('login-button').getAttribute('disabled')).toBe('true');
10
+ await page.fill('input[name="password"]', 'PassworD');
11
+
12
+ const [responseError] = await Promise.all([
13
+ page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
14
+ page.getByTestId('login-button').click(),
15
+ ]);
16
+ expect(responseError.status()).toBe(400);
17
+
18
+ // Success
19
+ await page.fill('input[name="email"]', 'hello@soyjavi.com');
20
+ await page.fill('input[name="password"]', 'P4ssw0rD');
21
+
22
+ const [response] = await Promise.all([
23
+ page.waitForResponse((response) => response.url().includes('/login') && !!response.status()),
24
+ page.getByTestId('login-button').click(),
25
+ ]);
26
+ expect(response.status()).toBe(200);
27
+ };
@@ -0,0 +1,8 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ export const logout = async ({ page }) => {
4
+ await page.getByTestId('show-session-menu').click();
5
+ await page.getByTestId('session-logout').click();
6
+
7
+ await expect(page.getByTestId('show-login')).toBeVisible();
8
+ };
@@ -0,0 +1,47 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ // ! TODO: Somehow we should close the notifications
4
+ // import { closeNotification } from '../../helpers';
5
+
6
+ export const profile = async ({ page }) => {
7
+ await page.getByTestId('show-session-menu').click();
8
+ await page.getByTestId('session-profile').click();
9
+
10
+ await page.waitForURL(/\/profile/, { waitUntil: 'networkidle', timeout: 10000 });
11
+
12
+ // Update profile
13
+ await page.fill('input[name="firstName"]', 'Javier');
14
+ await page.fill('input[name="lastName"]', 'Jimenez Villar');
15
+ await page.fill('input[name="dateOfBirth"]', '10/04/1980');
16
+ await page.locator('input[name="subscribed"]').check();
17
+
18
+ const [response] = await Promise.all([
19
+ page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
20
+ page.getByTestId('button-save').click(),
21
+ ]);
22
+ expect(response.status()).toBe(200);
23
+ // await closeNotification();
24
+
25
+ // Move to "security" context
26
+ page.getByTestId('profile-context-2').click();
27
+
28
+ // Try to change the password but user fails with the confirmation password
29
+ await page.fill('input[name="password"]', 'P4ssw0rD');
30
+ await page.fill('input[name="rePassword"]', 'n3wp4ssw0rD');
31
+ expect(await page.getByTestId('button-password').getAttribute('disabled')).toBe('true');
32
+
33
+ // User changes password
34
+ await page.fill('input[name="password"]', 'P4ssw0rD');
35
+ await page.fill('input[name="rePassword"]', 'P4ssw0rD');
36
+ const [responsePassword] = await Promise.all([
37
+ page.waitForResponse((response) => response.url().includes('/modify_member') && !!response.status()),
38
+ page.getByTestId('button-password').click(),
39
+ ]);
40
+ expect(responsePassword.status()).toBe(200);
41
+ // await closeNotification();
42
+
43
+ // Try to delete account and cancel process.
44
+ page.getByTestId('button-delete-account').click();
45
+ await page.waitForTimeout(300);
46
+ page.getByTestId('button-delete-close').click();
47
+ };
@@ -0,0 +1,13 @@
1
+ import { test } from '@playwright/test';
2
+
3
+ import { signup } from './workflows';
4
+
5
+ test.beforeEach(async ({ context }) => {
6
+ await context.addInitScript(() => (window.IS_PLAYWRIGHT = true));
7
+ });
8
+
9
+ test('Signup workflows', async ({ page }) => {
10
+ await page.goto('http://local.mirai.com:8080/signup', { waitUntil: 'networkidle', timeout: 10000 });
11
+
12
+ await signup({ page });
13
+ });
@@ -0,0 +1 @@
1
+ export * from './signup.workflow';
@@ -0,0 +1,24 @@
1
+ import { expect } from '@playwright/test';
2
+
3
+ export const signup = async ({ page }) => {
4
+ await page.fill('ui-signup input[name="firstName"]', 'Mirai');
5
+ await page.fill('ui-signup input[name="lastName"]', 'Tech');
6
+ await page.fill('ui-signup input[name="email"]', 'tech@mirai.com');
7
+ await page.fill('ui-signup input[name="dateOfBirth"]', '10/04/1980');
8
+ await page.locator('ui-signup select[name="country"]').selectOption('Spain');
9
+ await page.fill('ui-signup input[name="password"]', 'P4ssw0rD');
10
+ await page.locator('ui-signup input[name="subscribed"]').check();
11
+
12
+ // User forgot some fields
13
+ await page.getByTestId('signup-button').click();
14
+ await page.waitForSelector('ui-notification', { state: 'visible' });
15
+ await page.locator('input[name="privacy"]').check();
16
+
17
+ // Success
18
+ const [responseError] = await Promise.all([
19
+ page.waitForResponse((response) => response.url().includes('/join') && !!response.status()),
20
+ page.getByTestId('signup-button').click(),
21
+ ]);
22
+
23
+ expect(responseError.status().toString()).toBe('409');
24
+ };
@@ -0,0 +1,7 @@
1
+ export const closeNotification = async ({ page }) => {
2
+ await page.waitForTimeout(300);
3
+
4
+ const button = page.locator('ui-notification[class*="visible"] ui-pressable');
5
+ await button.waitFor({ state: 'visible' });
6
+ await button.click();
7
+ };
@@ -0,0 +1 @@
1
+ export * from './closeNotification';
@@ -35,7 +35,7 @@ const Notifications = () => {
35
35
  queue = {};
36
36
  }, [authorization]);
37
37
  const handleAdd = notification => {
38
- if (!notification) return;
38
+ if (!notification || window.IS_PLAYWRIGHT) return;
39
39
  const {
40
40
  contrast,
41
41
  success,
@@ -1 +1 @@
1
- {"version":3,"file":"Core.Notifications.js","names":["_dataSources","require","_locale","_ui","_react","_interopRequireWildcard","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","EVENT_NAME","queue","Notifications","translate","useLocale","setTimestamp","useState","value","session","authorization","useStore","useEffect","Event","subscribe","handleAdd","unsubscribe","notification","contrast","success","warning","id","concat","Date","getTime","Math","random","toFixed","visible","forceRender","setTimeout","parseMotion","handleClose","motionExpand","Theme","parseFloat","replace","keys","createElement","View","className","notifications","sort","map","index","defaultMessage","props","Notification","wide","onClose","styles","item","zIndex","exports","displayName","propTypes"],"sources":["../src/Core.Notifications.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Notification, styles, Theme, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './Core.Notifications.module.css';\n\nconst EVENT_NAME = 'notification';\nlet queue = {};\n\nconst Notifications = () => {\n const { translate } = useLocale();\n const [, setTimestamp] = useState();\n const {\n value: { session: { authorization } = {} },\n } = useStore();\n\n useEffect(() => {\n Event.subscribe(EVENT_NAME, handleAdd);\n return () => Event.unsubscribe(EVENT_NAME, handleAdd);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n queue = {};\n }, [authorization]);\n\n const handleAdd = (notification) => {\n if (!notification) return;\n\n const { contrast, success, warning } = notification;\n const id = `${new Date().getTime()}:${Math.random().toFixed(8)}`;\n\n queue[id] = { ...notification, visible: false };\n forceRender();\n\n setTimeout(() => {\n queue[id].visible = true;\n forceRender();\n }, parseMotion());\n\n if (contrast || success || warning) setTimeout(() => handleClose(id), success ? 5000 : 10000);\n\n return;\n };\n\n const handleClose = (id) => {\n if (!queue[id]) return;\n\n setTimestamp(() => {\n queue[id].visible = false;\n\n setTimeout(() => {\n delete queue[id];\n forceRender();\n }, parseMotion());\n\n return new Date().getTime();\n });\n };\n\n const forceRender = () => setTimestamp(new Date().getTime());\n\n const parseMotion = () => {\n const { motionExpand = '0.3s' } = Theme.get();\n\n return parseFloat(motionExpand.replace('s')) * 1000;\n };\n\n const keys = Object.keys(queue);\n\n return (\n <View className={style.notifications}>\n {keys.sort().map((key, index) => {\n const { defaultMessage, id, visible = false, ...props } = queue[key];\n\n return (\n <Notification\n {...props}\n key={key}\n wide\n onClose={() => handleClose(key)}\n className={styles(style.item, visible && style.visible)}\n style={{ zIndex: keys.length - index }}\n >\n {translate({ id, defaultMessage })}\n </Notification>\n );\n })}\n </View>\n );\n};\n\nNotifications.displayName = 'core:components:Notifications';\n\nNotifications.propTypes = {};\n\nexport { Notifications };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAEA,IAAAK,KAAA,GAAAD,uBAAA,CAAAJ,OAAA;AAAyD,SAAAM,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,SAAAH,wBAAAG,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,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAEzD,MAAMK,UAAU,GAAG,cAAc;AACjC,IAAIC,KAAK,GAAG,CAAC,CAAC;AAEd,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC1B,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM,GAAGC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC;EACnC,MAAM;IACJC,KAAK,EAAE;MAAEC,OAAO,EAAE;QAAEC;MAAc,CAAC,GAAG,CAAC;IAAE;EAC3C,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,IAAAC,gBAAS,EAAC,MAAM;IACdC,kBAAK,CAACC,SAAS,CAACb,UAAU,EAAEc,SAAS,CAAC;IACtC,OAAO,MAAMF,kBAAK,CAACG,WAAW,CAACf,UAAU,EAAEc,SAAS,CAAC;IACrD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAH,gBAAS,EAAC,MAAM;IACdV,KAAK,GAAG,CAAC,CAAC;EACZ,CAAC,EAAE,CAACQ,aAAa,CAAC,CAAC;EAEnB,MAAMK,SAAS,GAAIE,YAAY,IAAK;IAClC,IAAI,CAACA,YAAY,EAAE;IAEnB,MAAM;MAAEC,QAAQ;MAAEC,OAAO;MAAEC;IAAQ,CAAC,GAAGH,YAAY;IACnD,MAAMI,EAAE,MAAAC,MAAA,CAAM,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,OAAAF,MAAA,CAAIG,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAE;IAEhEzB,KAAK,CAACmB,EAAE,CAAC,GAAG;MAAE,GAAGJ,YAAY;MAAEW,OAAO,EAAE;IAAM,CAAC;IAC/CC,WAAW,CAAC,CAAC;IAEbC,UAAU,CAAC,MAAM;MACf5B,KAAK,CAACmB,EAAE,CAAC,CAACO,OAAO,GAAG,IAAI;MACxBC,WAAW,CAAC,CAAC;IACf,CAAC,EAAEE,WAAW,CAAC,CAAC,CAAC;IAEjB,IAAIb,QAAQ,IAAIC,OAAO,IAAIC,OAAO,EAAEU,UAAU,CAAC,MAAME,WAAW,CAACX,EAAE,CAAC,EAAEF,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;IAE7F;EACF,CAAC;EAED,MAAMa,WAAW,GAAIX,EAAE,IAAK;IAC1B,IAAI,CAACnB,KAAK,CAACmB,EAAE,CAAC,EAAE;IAEhBf,YAAY,CAAC,MAAM;MACjBJ,KAAK,CAACmB,EAAE,CAAC,CAACO,OAAO,GAAG,KAAK;MAEzBE,UAAU,CAAC,MAAM;QACf,OAAO5B,KAAK,CAACmB,EAAE,CAAC;QAChBQ,WAAW,CAAC,CAAC;MACf,CAAC,EAAEE,WAAW,CAAC,CAAC,CAAC;MAEjB,OAAO,IAAIR,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC;EAED,MAAMK,WAAW,GAAGA,CAAA,KAAMvB,YAAY,CAAC,IAAIiB,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EAE5D,MAAMO,WAAW,GAAGA,CAAA,KAAM;IACxB,MAAM;MAAEE,YAAY,GAAG;IAAO,CAAC,GAAGC,SAAK,CAACvD,GAAG,CAAC,CAAC;IAE7C,OAAOwD,UAAU,CAACF,YAAY,CAACG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;EACrD,CAAC;EAED,MAAMC,IAAI,GAAGtD,MAAM,CAACsD,IAAI,CAACnC,KAAK,CAAC;EAE/B,oBACElC,MAAA,CAAAS,OAAA,CAAA6D,aAAA,CAACvE,GAAA,CAAAwE,IAAI;IAACC,SAAS,EAAEtE,KAAK,CAACuE;EAAc,GAClCJ,IAAI,CAACK,IAAI,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC5C,GAAG,EAAE6C,KAAK,KAAK;IAC/B,MAAM;MAAEC,cAAc;MAAExB,EAAE;MAAEO,OAAO,GAAG,KAAK;MAAE,GAAGkB;IAAM,CAAC,GAAG5C,KAAK,CAACH,GAAG,CAAC;IAEpE,oBACE/B,MAAA,CAAAS,OAAA,CAAA6D,aAAA,CAACvE,GAAA,CAAAgF,YAAY,EAAAvD,QAAA,KACPsD,KAAK;MACT/C,GAAG,EAAEA,GAAI;MACTiD,IAAI;MACJC,OAAO,EAAEA,CAAA,KAAMjB,WAAW,CAACjC,GAAG,CAAE;MAChCyC,SAAS,EAAE,IAAAU,UAAM,EAAChF,KAAK,CAACiF,IAAI,EAAEvB,OAAO,IAAI1D,KAAK,CAAC0D,OAAO,CAAE;MACxD1D,KAAK,EAAE;QAAEkF,MAAM,EAAEf,IAAI,CAACxC,MAAM,GAAG+C;MAAM;IAAE,IAEtCxC,SAAS,CAAC;MAAEiB,EAAE;MAAEwB;IAAe,CAAC,CACrB,CAAC;EAEnB,CAAC,CACG,CAAC;AAEX,CAAC;AAACQ,OAAA,CAAAlD,aAAA,GAAAA,aAAA;AAEFA,aAAa,CAACmD,WAAW,GAAG,+BAA+B;AAE3DnD,aAAa,CAACoD,SAAS,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"Core.Notifications.js","names":["_dataSources","require","_locale","_ui","_react","_interopRequireWildcard","style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","EVENT_NAME","queue","Notifications","translate","useLocale","setTimestamp","useState","value","session","authorization","useStore","useEffect","Event","subscribe","handleAdd","unsubscribe","notification","window","IS_PLAYWRIGHT","contrast","success","warning","id","concat","Date","getTime","Math","random","toFixed","visible","forceRender","setTimeout","parseMotion","handleClose","motionExpand","Theme","parseFloat","replace","keys","createElement","View","className","notifications","sort","map","index","defaultMessage","props","Notification","wide","onClose","styles","item","zIndex","exports","displayName","propTypes"],"sources":["../src/Core.Notifications.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Notification, styles, Theme, View } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport * as style from './Core.Notifications.module.css';\n\nconst EVENT_NAME = 'notification';\nlet queue = {};\n\nconst Notifications = () => {\n const { translate } = useLocale();\n const [, setTimestamp] = useState();\n const {\n value: { session: { authorization } = {} },\n } = useStore();\n\n useEffect(() => {\n Event.subscribe(EVENT_NAME, handleAdd);\n return () => Event.unsubscribe(EVENT_NAME, handleAdd);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n queue = {};\n }, [authorization]);\n\n const handleAdd = (notification) => {\n if (!notification || window.IS_PLAYWRIGHT) return;\n\n const { contrast, success, warning } = notification;\n const id = `${new Date().getTime()}:${Math.random().toFixed(8)}`;\n\n queue[id] = { ...notification, visible: false };\n forceRender();\n\n setTimeout(() => {\n queue[id].visible = true;\n forceRender();\n }, parseMotion());\n\n if (contrast || success || warning) setTimeout(() => handleClose(id), success ? 5000 : 10000);\n\n return;\n };\n\n const handleClose = (id) => {\n if (!queue[id]) return;\n\n setTimestamp(() => {\n queue[id].visible = false;\n\n setTimeout(() => {\n delete queue[id];\n forceRender();\n }, parseMotion());\n\n return new Date().getTime();\n });\n };\n\n const forceRender = () => setTimestamp(new Date().getTime());\n\n const parseMotion = () => {\n const { motionExpand = '0.3s' } = Theme.get();\n\n return parseFloat(motionExpand.replace('s')) * 1000;\n };\n\n const keys = Object.keys(queue);\n\n return (\n <View className={style.notifications}>\n {keys.sort().map((key, index) => {\n const { defaultMessage, id, visible = false, ...props } = queue[key];\n\n return (\n <Notification\n {...props}\n key={key}\n wide\n onClose={() => handleClose(key)}\n className={styles(style.item, visible && style.visible)}\n style={{ zIndex: keys.length - index }}\n >\n {translate({ id, defaultMessage })}\n </Notification>\n );\n })}\n </View>\n );\n};\n\nNotifications.displayName = 'core:components:Notifications';\n\nNotifications.propTypes = {};\n\nexport { Notifications };\n"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`component:<Booking> inherit:className 1`] = `
4
4
  <DocumentFragment>
5
- <ui-view
5
+ <ui-header
6
6
  class="view wide"
7
7
  >
8
8
  <ui-view
@@ -167,7 +167,7 @@ exports[`component:<Booking> inherit:className 1`] = `
167
167
  </ui-tooltip>
168
168
  </ui-view>
169
169
  </ui-view>
170
- </ui-view>
170
+ </ui-header>
171
171
  <ui-view
172
172
  class="view mirai"
173
173
  >
@@ -281,7 +281,7 @@ exports[`component:<Booking> inherit:className 1`] = `
281
281
 
282
282
  exports[`component:<Booking> prop:skeleton 1`] = `
283
283
  <DocumentFragment>
284
- <ui-view
284
+ <ui-header
285
285
  class="view wide"
286
286
  >
287
287
  <ui-view
@@ -446,7 +446,7 @@ exports[`component:<Booking> prop:skeleton 1`] = `
446
446
  </ui-tooltip>
447
447
  </ui-view>
448
448
  </ui-view>
449
- </ui-view>
449
+ </ui-header>
450
450
  <ui-view
451
451
  class="view"
452
452
  >
@@ -560,7 +560,7 @@ exports[`component:<Booking> prop:skeleton 1`] = `
560
560
 
561
561
  exports[`component:<Booking> renders 1`] = `
562
562
  <DocumentFragment>
563
- <ui-view
563
+ <ui-header
564
564
  class="view wide"
565
565
  >
566
566
  <ui-view
@@ -725,7 +725,7 @@ exports[`component:<Booking> renders 1`] = `
725
725
  </ui-tooltip>
726
726
  </ui-view>
727
727
  </ui-view>
728
- </ui-view>
728
+ </ui-header>
729
729
  <ui-view
730
730
  class="view"
731
731
  >
@@ -839,7 +839,7 @@ exports[`component:<Booking> renders 1`] = `
839
839
 
840
840
  exports[`component:<Booking> testID 1`] = `
841
841
  <DocumentFragment>
842
- <ui-view
842
+ <ui-header
843
843
  class="view wide"
844
844
  >
845
845
  <ui-view
@@ -1004,7 +1004,7 @@ exports[`component:<Booking> testID 1`] = `
1004
1004
  </ui-tooltip>
1005
1005
  </ui-view>
1006
1006
  </ui-view>
1007
- </ui-view>
1007
+ </ui-header>
1008
1008
  <ui-view
1009
1009
  class="view"
1010
1010
  data-testid="mirai"
@@ -1119,7 +1119,7 @@ exports[`component:<Booking> testID 1`] = `
1119
1119
 
1120
1120
  exports[`component:<Booking> with a store 1`] = `
1121
1121
  <DocumentFragment>
1122
- <ui-view
1122
+ <ui-header
1123
1123
  class="view wide"
1124
1124
  >
1125
1125
  <ui-view
@@ -1284,7 +1284,7 @@ exports[`component:<Booking> with a store 1`] = `
1284
1284
  </ui-tooltip>
1285
1285
  </ui-view>
1286
1286
  </ui-view>
1287
- </ui-view>
1287
+ </ui-header>
1288
1288
  <ui-view
1289
1289
  class="view"
1290
1290
  >
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`component:<Checkout> Test A/B variant A 1`] = `
4
4
  <DocumentFragment>
5
- <ui-view
5
+ <ui-header
6
6
  class="view wide"
7
7
  >
8
8
  <ui-view
@@ -167,7 +167,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
167
167
  </ui-tooltip>
168
168
  </ui-view>
169
169
  </ui-view>
170
- </ui-view>
170
+ </ui-header>
171
171
  <ui-view
172
172
  class="view"
173
173
  >
@@ -264,7 +264,7 @@ exports[`component:<Checkout> Test A/B variant A 1`] = `
264
264
 
265
265
  exports[`component:<Checkout> Test A/B variant B 1`] = `
266
266
  <DocumentFragment>
267
- <ui-view
267
+ <ui-header
268
268
  class="view wide"
269
269
  >
270
270
  <ui-view
@@ -429,7 +429,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
429
429
  </ui-tooltip>
430
430
  </ui-view>
431
431
  </ui-view>
432
- </ui-view>
432
+ </ui-header>
433
433
  <ui-view
434
434
  class="view"
435
435
  >
@@ -526,7 +526,7 @@ exports[`component:<Checkout> Test A/B variant B 1`] = `
526
526
 
527
527
  exports[`component:<Checkout> inherit:className 1`] = `
528
528
  <DocumentFragment>
529
- <ui-view
529
+ <ui-header
530
530
  class="view wide"
531
531
  >
532
532
  <ui-view
@@ -691,7 +691,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
691
691
  </ui-tooltip>
692
692
  </ui-view>
693
693
  </ui-view>
694
- </ui-view>
694
+ </ui-header>
695
695
  <ui-view
696
696
  class="view mirai"
697
697
  >
@@ -788,7 +788,7 @@ exports[`component:<Checkout> inherit:className 1`] = `
788
788
 
789
789
  exports[`component:<Checkout> prop:session (false) 1`] = `
790
790
  <DocumentFragment>
791
- <ui-view
791
+ <ui-header
792
792
  class="view wide"
793
793
  >
794
794
  <ui-view
@@ -953,7 +953,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
953
953
  </ui-tooltip>
954
954
  </ui-view>
955
955
  </ui-view>
956
- </ui-view>
956
+ </ui-header>
957
957
  <ui-view
958
958
  class="view"
959
959
  >
@@ -1050,7 +1050,7 @@ exports[`component:<Checkout> prop:session (false) 1`] = `
1050
1050
 
1051
1051
  exports[`component:<Checkout> prop:skeleton 1`] = `
1052
1052
  <DocumentFragment>
1053
- <ui-view
1053
+ <ui-header
1054
1054
  class="view wide"
1055
1055
  >
1056
1056
  <ui-view
@@ -1215,7 +1215,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
1215
1215
  </ui-tooltip>
1216
1216
  </ui-view>
1217
1217
  </ui-view>
1218
- </ui-view>
1218
+ </ui-header>
1219
1219
  <ui-view
1220
1220
  class="view"
1221
1221
  >
@@ -1312,7 +1312,7 @@ exports[`component:<Checkout> prop:skeleton 1`] = `
1312
1312
 
1313
1313
  exports[`component:<Checkout> renders 1`] = `
1314
1314
  <DocumentFragment>
1315
- <ui-view
1315
+ <ui-header
1316
1316
  class="view wide"
1317
1317
  >
1318
1318
  <ui-view
@@ -1477,7 +1477,7 @@ exports[`component:<Checkout> renders 1`] = `
1477
1477
  </ui-tooltip>
1478
1478
  </ui-view>
1479
1479
  </ui-view>
1480
- </ui-view>
1480
+ </ui-header>
1481
1481
  <ui-view
1482
1482
  class="view"
1483
1483
  >
@@ -1574,7 +1574,7 @@ exports[`component:<Checkout> renders 1`] = `
1574
1574
 
1575
1575
  exports[`component:<Checkout> testID 1`] = `
1576
1576
  <DocumentFragment>
1577
- <ui-view
1577
+ <ui-header
1578
1578
  class="view wide"
1579
1579
  >
1580
1580
  <ui-view
@@ -1739,7 +1739,7 @@ exports[`component:<Checkout> testID 1`] = `
1739
1739
  </ui-tooltip>
1740
1740
  </ui-view>
1741
1741
  </ui-view>
1742
- </ui-view>
1742
+ </ui-header>
1743
1743
  <ui-view
1744
1744
  class="view"
1745
1745
  data-testid="mirai"
@@ -1837,7 +1837,7 @@ exports[`component:<Checkout> testID 1`] = `
1837
1837
 
1838
1838
  exports[`component:<Checkout> with a store 1`] = `
1839
1839
  <DocumentFragment>
1840
- <ui-view
1840
+ <ui-header
1841
1841
  class="view wide"
1842
1842
  >
1843
1843
  <ui-view
@@ -2002,7 +2002,7 @@ exports[`component:<Checkout> with a store 1`] = `
2002
2002
  </ui-tooltip>
2003
2003
  </ui-view>
2004
2004
  </ui-view>
2005
- </ui-view>
2005
+ </ui-header>
2006
2006
  <ui-view
2007
2007
  class="view"
2008
2008
  >
@@ -102,6 +102,7 @@ const Header = _ref => {
102
102
  type
103
103
  }) : '', " ").concat(name)) === null || _ref2 === void 0 ? void 0 : _ref2.trim();
104
104
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
105
+ tag: "header",
105
106
  wide: true,
106
107
  testId: others.testId,
107
108
  className: (0, _ui.styles)(style.header, others.className)
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Header","_Header2","style","_shared__","_helpers","_Session","_SessionLogin","_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","Header","_ref","_ref2","currency","showCurrency","locale","showLocale","login","showLogin","ghost","name","showName","others","isMobile","isDesktop","useDevice","track","useMetrics","translate","useLocale","value","finder","place","id","placeId","isHotel","title","placeName","hotel","features","url","session","useStore","modal","setModal","useState","useEffect","ServiceFeatures","FEATURE_HEADER_TRACKING","callback","visible","undefined","Event","subscribe","EVENT","LOGIN","unsubscribe","handleClose","handleLogin","concat","TRACKING","handleUrl","window","location","logo","type","largeName","nameProps","action","small","fullName","L10N","LABEL_PROPERTY_TYPE","trim","createElement","Fragment","View","wide","testId","className","styles","header","row","content","main","Pressable","onPress","dangerouslySetInnerHTML","__html","outerHTML","alt","tag","src","image","Text","bold","brand","textName","BookingProcess","noPrint","options","SelectEnvironment","compacted","headerMode","Account","Icon","headline","level","ICON","ACCOUNT","medium","ACTION_LOGIN","Modal","onClose","onSuccess","extra","exports","displayName","propTypes","PropTypes","bool","any","skeleton"],"sources":["../../../src/components/Header/Header.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Icon, Pressable, Text, useDevice, styles, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { BookingProcess } from './components';\nimport { FEATURE_HEADER_TRACKING, TRACKING } from './Header.constants';\nimport { L10N } from './Header.l10n';\nimport * as style from './Header.module.css';\nimport { SelectEnvironment } from '../__shared__';\nimport { EVENT, ICON } from '../helpers';\nimport { Account } from '../Session/Session.Account';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet hasTracking = false;\n\nconst Header = ({\n currency: showCurrency = false,\n locale: showLocale = true,\n login: showLogin = false,\n ghost,\n name: showName,\n ...others\n}) => {\n const { isMobile, isDesktop } = useDevice();\n const { track } = useMetrics();\n const { translate } = useLocale();\n const {\n value: {\n finder: { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = {},\n hotel: { features = {}, url } = {},\n id,\n locale,\n session,\n } = {},\n } = useStore();\n\n const [modal, setModal] = useState(false);\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_HEADER_TRACKING, id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const callback = ({ visible = true } = {}) => setModal(visible);\n\n Event.subscribe(EVENT.LOGIN, callback);\n return () => Event.unsubscribe(EVENT.LOGIN, callback);\n }, []);\n\n const handleClose = () => setModal(false);\n\n const handleLogin = () => {\n hasTracking && track(`${TRACKING}:ACTION:SHOW_LOGIN`, { locale });\n setModal(true);\n };\n\n const handleUrl = () => {\n window.location = url;\n };\n\n const { logo, name, type } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[id]) || {};\n const largeName = name?.length > 32;\n const nameProps = { action: (largeName && !isMobile) || (isMobile && !largeName), small: largeName && isMobile };\n const fullName = `${type ? translate(L10N.LABEL_PROPERTY_TYPE, { type }) : ''} ${name}`?.trim();\n\n return (\n <>\n <View wide testId={others.testId} className={styles(style.header, others.className)}>\n <View row wide className={style.content}>\n <View row className={style.main}>\n {(logo || ghost || (!logo && name)) && (\n <Pressable onPress={url ? handleUrl : undefined}>\n {ghost ? (\n <View dangerouslySetInnerHTML={{ __html: ghost.outerHTML }} />\n ) : logo ? (\n <View alt={fullName} tag=\"img\" src={logo} className={style.image} />\n ) : (\n <Text {...nameProps} bold brand className={style.textName}>\n {fullName}\n </Text>\n )}\n </Pressable>\n )}\n\n {isDesktop && <BookingProcess className={style.noPrint} />}\n </View>\n\n <View row className={[style.options, style.noPrint]}>\n {showLocale && <SelectEnvironment compacted={isMobile} headerMode name=\"locale\" />}\n {showCurrency && <SelectEnvironment compacted={isMobile} headerMode name=\"currency\" />}\n {showLogin && (\n <>\n {session ? (\n <Account compacted />\n ) : (\n <>\n <Pressable onPress={handleLogin} className={style.login}>\n <View row>\n <Icon headline level={2} value={ICON.ACCOUNT} />\n\n {!isMobile && (\n <Text action medium>\n {translate(L10N.ACTION_LOGIN)}\n </Text>\n )}\n </View>\n </Pressable>\n <ModalLogin visible={modal} onClose={handleClose} onSuccess={handleClose} />\n </>\n )}\n </>\n )}\n </View>\n </View>\n </View>\n\n {showName && logo && name && (\n <View className={styles(style.header, style.extra, others.className)}>\n <View row wide className={style.content}>\n <Text {...nameProps}>{fullName}</Text>\n </View>\n </View>\n )}\n\n {!isDesktop && <BookingProcess />}\n </>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Header';\n\nHeader.propTypes = {\n currency: PropTypes.bool,\n ghost: PropTypes.any,\n locale: PropTypes.bool,\n login: PropTypes.bool,\n name: PropTypes.bool,\n skeleton: PropTypes.bool,\n};\n\nexport { Header };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Header","_Header2","style","_shared__","_helpers","_Session","_SessionLogin","_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","Header","_ref","_ref2","currency","showCurrency","locale","showLocale","login","showLogin","ghost","name","showName","others","isMobile","isDesktop","useDevice","track","useMetrics","translate","useLocale","value","finder","place","id","placeId","isHotel","title","placeName","hotel","features","url","session","useStore","modal","setModal","useState","useEffect","ServiceFeatures","FEATURE_HEADER_TRACKING","callback","visible","undefined","Event","subscribe","EVENT","LOGIN","unsubscribe","handleClose","handleLogin","concat","TRACKING","handleUrl","window","location","logo","type","largeName","nameProps","action","small","fullName","L10N","LABEL_PROPERTY_TYPE","trim","createElement","Fragment","View","tag","wide","testId","className","styles","header","row","content","main","Pressable","onPress","dangerouslySetInnerHTML","__html","outerHTML","alt","src","image","Text","bold","brand","textName","BookingProcess","noPrint","options","SelectEnvironment","compacted","headerMode","Account","Icon","headline","level","ICON","ACCOUNT","medium","ACTION_LOGIN","Modal","onClose","onSuccess","extra","exports","displayName","propTypes","PropTypes","bool","any","skeleton"],"sources":["../../../src/components/Header/Header.jsx"],"sourcesContent":["import { Event, useMetrics, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Icon, Pressable, Text, useDevice, styles, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { BookingProcess } from './components';\nimport { FEATURE_HEADER_TRACKING, TRACKING } from './Header.constants';\nimport { L10N } from './Header.l10n';\nimport * as style from './Header.module.css';\nimport { SelectEnvironment } from '../__shared__';\nimport { EVENT, ICON } from '../helpers';\nimport { Account } from '../Session/Session.Account';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet hasTracking = false;\n\nconst Header = ({\n currency: showCurrency = false,\n locale: showLocale = true,\n login: showLogin = false,\n ghost,\n name: showName,\n ...others\n}) => {\n const { isMobile, isDesktop } = useDevice();\n const { track } = useMetrics();\n const { translate } = useLocale();\n const {\n value: {\n finder: { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = {},\n hotel: { features = {}, url } = {},\n id,\n locale,\n session,\n } = {},\n } = useStore();\n\n const [modal, setModal] = useState(false);\n\n useEffect(() => {\n hasTracking = ServiceFeatures.get(FEATURE_HEADER_TRACKING, id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const callback = ({ visible = true } = {}) => setModal(visible);\n\n Event.subscribe(EVENT.LOGIN, callback);\n return () => Event.unsubscribe(EVENT.LOGIN, callback);\n }, []);\n\n const handleClose = () => setModal(false);\n\n const handleLogin = () => {\n hasTracking && track(`${TRACKING}:ACTION:SHOW_LOGIN`, { locale });\n setModal(true);\n };\n\n const handleUrl = () => {\n window.location = url;\n };\n\n const { logo, name, type } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[id]) || {};\n const largeName = name?.length > 32;\n const nameProps = { action: (largeName && !isMobile) || (isMobile && !largeName), small: largeName && isMobile };\n const fullName = `${type ? translate(L10N.LABEL_PROPERTY_TYPE, { type }) : ''} ${name}`?.trim();\n\n return (\n <>\n <View tag=\"header\" wide testId={others.testId} className={styles(style.header, others.className)}>\n <View row wide className={style.content}>\n <View row className={style.main}>\n {(logo || ghost || (!logo && name)) && (\n <Pressable onPress={url ? handleUrl : undefined}>\n {ghost ? (\n <View dangerouslySetInnerHTML={{ __html: ghost.outerHTML }} />\n ) : logo ? (\n <View alt={fullName} tag=\"img\" src={logo} className={style.image} />\n ) : (\n <Text {...nameProps} bold brand className={style.textName}>\n {fullName}\n </Text>\n )}\n </Pressable>\n )}\n\n {isDesktop && <BookingProcess className={style.noPrint} />}\n </View>\n\n <View row className={[style.options, style.noPrint]}>\n {showLocale && <SelectEnvironment compacted={isMobile} headerMode name=\"locale\" />}\n {showCurrency && <SelectEnvironment compacted={isMobile} headerMode name=\"currency\" />}\n {showLogin && (\n <>\n {session ? (\n <Account compacted />\n ) : (\n <>\n <Pressable onPress={handleLogin} className={style.login}>\n <View row>\n <Icon headline level={2} value={ICON.ACCOUNT} />\n\n {!isMobile && (\n <Text action medium>\n {translate(L10N.ACTION_LOGIN)}\n </Text>\n )}\n </View>\n </Pressable>\n <ModalLogin visible={modal} onClose={handleClose} onSuccess={handleClose} />\n </>\n )}\n </>\n )}\n </View>\n </View>\n </View>\n\n {showName && logo && name && (\n <View className={styles(style.header, style.extra, others.className)}>\n <View row wide className={style.content}>\n <Text {...nameProps}>{fullName}</Text>\n </View>\n </View>\n )}\n\n {!isDesktop && <BookingProcess />}\n </>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Header';\n\nHeader.propTypes = {\n currency: PropTypes.bool,\n ghost: PropTypes.any,\n locale: PropTypes.bool,\n login: PropTypes.bool,\n name: PropTypes.bool,\n skeleton: PropTypes.bool,\n};\n\nexport { Header };\n"],"mappings":"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"}
@@ -42,11 +42,9 @@ const Search = _ref => {
42
42
  }
43
43
  };
44
44
  const handlePress = event => {
45
+ setVisible(false);
45
46
  onChange(value, event);
46
47
  };
47
- const handleToggle = () => {
48
- setVisible(!visible);
49
- };
50
48
  return /*#__PURE__*/_react.default.createElement(_ui.Menu, {
51
49
  options: [{
52
50
  children: /*#__PURE__*/_react.default.createElement(_ui.View, {
@@ -63,7 +61,8 @@ const Search = _ref => {
63
61
  disabled: !value,
64
62
  wide: true,
65
63
  onPress: handlePress,
66
- className: style.button
64
+ className: style.button,
65
+ testId: "button-search"
67
66
  }, translate(_Bookings.L10N.ACTION_SEARCH_CTA)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
68
67
  bold: true,
69
68
  small: true
@@ -72,11 +71,13 @@ const Search = _ref => {
72
71
  }, translate(_Bookings.L10N.LABEL_RESERVATION_CODE_DESCRIPTION)))
73
72
  }],
74
73
  visible: visible,
75
- onPress: handleToggle,
76
- className: style.search
74
+ onPress: () => setVisible(false),
75
+ className: style.search,
76
+ testId: "menu-search-bookings"
77
77
  }, /*#__PURE__*/_react.default.createElement(_ui.Action, {
78
- onPress: handleToggle,
79
- className: style.actionSearch
78
+ onPress: () => setVisible(true),
79
+ className: style.actionSearch,
80
+ testId: "show-search"
80
81
  }, translate(_Bookings.L10N.ACTION_SEARCH)));
81
82
  };
82
83
  exports.Search = Search;