@mirai/core 0.3.294 → 0.3.295
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Deals/Deals.js +1 -0
- package/build/components/Deals/Deals.js.map +1 -1
- package/build/components/Deals/__tests__/__snapshots__/Deals.test.js.snap +0 -104
- package/build/components/Finder/Finder.constants.js +1 -1
- package/build/components/Finder/Finder.constants.js.map +1 -1
- package/build/components/Finder/Finder.js +16 -14
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Finder/Finder.module.css +42 -48
- package/build/components/Finder/__tests__/__snapshots__/Finder.test.js.snap +17 -605
- package/build/components/__shared__/Field/Field.js +2 -6
- package/build/components/__shared__/Field/Field.js.map +1 -1
- package/build/components/__shared__/FieldOccupation/FieldOccupation.js +3 -1
- package/build/components/__shared__/FieldOccupation/FieldOccupation.js.map +1 -1
- package/build/components/__shared__/FieldOccupation/__tests__/__snapshots__/FieldOccupation.test.js.snap +0 -147
- package/build/theme.css +2 -0
- package/package.json +1 -1
- package/public/themes/monalisa.theme.css +3 -1
|
@@ -187,6 +187,7 @@ const Deals = _ref => {
|
|
|
187
187
|
className: style.extras
|
|
188
188
|
}, /*#__PURE__*/_react.default.createElement(_shared__.FieldOccupation, _extends({}, dataSource === null || dataSource === void 0 ? void 0 : dataSource.occupation, {
|
|
189
189
|
error: !!error.occupation,
|
|
190
|
+
hideLabel: !isMobile,
|
|
190
191
|
hotels: [hotel === null || hotel === void 0 ? void 0 : hotel.id],
|
|
191
192
|
ref: ref,
|
|
192
193
|
value: occupation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Deals.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Deals","_Deals2","_Deals3","style","_helpers","_prepareRoom","_shared__","_toParties","_helpers2","_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","Deals","_ref","id","offerId","skeleton","others","isMobile","useDevice","translate","useLocale","value","cookies","currency","deals","hotel","language","locale","origin","urlParams","store","useStore","ref","useRef","busy","setBusy","useState","dataSource","setDataSource","error","setError","visible","setVisible","visited","setVisited","useEffect","handleClickOutside","_ref2","_ref$current","current","contains","type","document","addEventListener","removeEventListener","ServiceDeals","getCurrency","catch","occupation","minRooms","handleChange","Array","map","prepareRoom","concat","field","fieldValue","handleClear","undefined","handleSubmit","calendar","promoCode","params","idoffers","idtokenprovider","lang","checkin","dateFormat","format","nights","dateDiff","days","clientCode","parties","window","btoa","JSON","stringify","toParties","hsri","commissionCode","location","href","process","env","SERVICE_BOOKING","REDIRECT_PATH","toQueryString","className","testId","isValid","validate","createElement","View","role","styles","row","header","Text","bold","headline","level","markdown","L10N","LABEL_SELECT_DATES_PERSONS","Action","onPress","action","Icon","ICON","CLEAR","actionIcon","ACTION_CLEAR","Calendar","FIELD","CALENDAR","onChange","event","extras","FieldOccupation","hotels","OCCUPATION","onError","onValid","FieldPromocode","PROMOCODE","onEnter","onLeave","footer","Button","disabled","large","wide","cta","ACTION_SEARCH","exports","displayName","propTypes","PropTypes","string","bool"],"sources":["../../../src/components/Deals/Deals.jsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useStore } from '@mirai/data-sources';\nimport { dateFormat, dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceDeals } from '@mirai/services';\nimport { Action, Button, Icon, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar } from './Deals.Calendar';\nimport { FIELD, REDIRECT_PATH } from './Deals.constants';\nimport { L10N } from './Deals.l10n';\nimport * as style from './Deals.module.css';\nimport { getCurrency, validate } from './helpers';\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { FieldOccupation, FieldPromocode } from '../__shared__';\nimport { toParties } from '../__shared__/Occupation/helpers/toParties';\nimport { ICON, toQueryString } from '../helpers';\n\nconst Deals = ({ id: offerId, skeleton, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: { cookies = {}, currency, deals: value = {}, hotel, language, locale, origin, urlParams = {}, ...store },\n } = useStore();\n const ref = useRef(null);\n\n const [busy, setBusy] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState({});\n const [visible, setVisible] = useState();\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (isMobile) return;\n\n const handleClickOutside = ({ target }) => !ref.current?.contains(target) && target.type !== 'text' && setVisible();\n document.addEventListener('click', handleClickOutside, true);\n\n return () => {\n setBusy(false);\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () =>\n setDataSource(\n await ServiceDeals.get({\n ...store,\n currency: getCurrency({ cookies, currency, urlParams }),\n hotel,\n locale,\n offerId,\n }).catch(() => {}),\n ))();\n }, [currency, locale]);\n\n useEffect(() => {\n const { occupation: { minRooms = 1, dataSource: occupation = [] } = {} } = dataSource || {};\n\n !value?.occupation &&\n occupation.length > 0 &&\n handleChange(\n 'occupation',\n [...Array(minRooms)].map(() => prepareRoom(occupation)),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n visible && setVisited({ ...visited, [`${visible}`]: true });\n }, [visible]);\n\n const handleChange = (field, fieldValue) => {\n if (!dataSource) return;\n\n set({ deals: { ...value, [field]: fieldValue } });\n };\n\n const handleClear = () => {\n set({ deals: undefined });\n setError({});\n setVisited(false);\n };\n\n const handleSubmit = () => {\n setBusy(true);\n const { calendar, occupation, promoCode } = value;\n\n const params = {\n idoffers: offerId,\n idtokenprovider: hotel.id,\n lang: language,\n checkin: dateFormat(calendar[0], { format: 'DD/MM/YYYY' }),\n nights: dateDiff(calendar[0], calendar[1]).days,\n clientCode: promoCode || '',\n currency: getCurrency({ urlParams, cookies, currency }) || '',\n parties: window.btoa(JSON.stringify(toParties(occupation))),\n hsri: origin.commissionCode,\n };\n window.location.href = `${process.env.SERVICE_BOOKING}/${REDIRECT_PATH}${toQueryString(params)}`;\n\n setBusy(true);\n };\n\n const { className, testId } = others;\n const { calendar = [], occupation, promoCode = '' } = value;\n\n const isValid = validate({ dataSource, error, value });\n\n return (\n <View role=\"deals\" testId={others.testId} className={styles(style.deals, className)}>\n <View row className={style.header}>\n <Text bold headline level={isMobile ? 3 : 2} markdown={false}>\n {translate(L10N.LABEL_SELECT_DATES_PERSONS)}\n </Text>\n\n <Action onPress={handleClear} className={style.action}>\n <Icon value={ICON.CLEAR} className={style.actionIcon} />\n {translate(L10N.ACTION_CLEAR)}\n </Action>\n </View>\n\n <Calendar\n {...dataSource?.calendar}\n value={calendar}\n visible={visible === FIELD.CALENDAR}\n visited={visited.calendar}\n onChange={(calendar, event) => handleChange('calendar', calendar, event)}\n onPress={() => setVisible(visible !== FIELD.CALENDAR ? FIELD.CALENDAR : undefined)}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n\n <View row={!isMobile} className={style.extras}>\n <FieldOccupation\n {...dataSource?.occupation}\n error={!!error.occupation}\n hotels={[hotel?.id]}\n ref={ref}\n value={occupation}\n visible={visible === FIELD.OCCUPATION}\n onChange={(occupation) => handleChange('occupation', occupation)}\n onError={(occupation) => {\n if (!isMobile && visible !== FIELD.OCCUPATION) setVisible(FIELD.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setVisible(visible !== FIELD.OCCUPATION ? FIELD.OCCUPATION : undefined)}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n value={promoCode}\n visible={visible === FIELD.PROMOCODE}\n onChange={(promoCode) => handleChange('promoCode', promoCode)}\n onEnter={() => setVisible(FIELD.PROMOCODE)}\n onLeave={() => setVisible(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isMobile && <View className={style.footer} />}\n\n <Button\n busy={busy}\n disabled={!isValid}\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.cta}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {translate(L10N.ACTION_SEARCH)}\n </Button>\n </View>\n </View>\n );\n};\n\nDeals.displayName = 'Mirai:Core:Deals';\n\nDeals.propTypes = {\n id: PropTypes.string,\n skeleton: PropTypes.bool,\n};\n\nexport { Deals };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Deals.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Deals","_Deals2","_Deals3","style","_helpers","_prepareRoom","_shared__","_toParties","_helpers2","_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","Deals","_ref","id","offerId","skeleton","others","isMobile","useDevice","translate","useLocale","value","cookies","currency","deals","hotel","language","locale","origin","urlParams","store","useStore","ref","useRef","busy","setBusy","useState","dataSource","setDataSource","error","setError","visible","setVisible","visited","setVisited","useEffect","handleClickOutside","_ref2","_ref$current","current","contains","type","document","addEventListener","removeEventListener","ServiceDeals","getCurrency","catch","occupation","minRooms","handleChange","Array","map","prepareRoom","concat","field","fieldValue","handleClear","undefined","handleSubmit","calendar","promoCode","params","idoffers","idtokenprovider","lang","checkin","dateFormat","format","nights","dateDiff","days","clientCode","parties","window","btoa","JSON","stringify","toParties","hsri","commissionCode","location","href","process","env","SERVICE_BOOKING","REDIRECT_PATH","toQueryString","className","testId","isValid","validate","createElement","View","role","styles","row","header","Text","bold","headline","level","markdown","L10N","LABEL_SELECT_DATES_PERSONS","Action","onPress","action","Icon","ICON","CLEAR","actionIcon","ACTION_CLEAR","Calendar","FIELD","CALENDAR","onChange","event","extras","FieldOccupation","hideLabel","hotels","OCCUPATION","onError","onValid","FieldPromocode","PROMOCODE","onEnter","onLeave","footer","Button","disabled","large","wide","cta","ACTION_SEARCH","exports","displayName","propTypes","PropTypes","string","bool"],"sources":["../../../src/components/Deals/Deals.jsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useStore } from '@mirai/data-sources';\nimport { dateFormat, dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceDeals } from '@mirai/services';\nimport { Action, Button, Icon, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar } from './Deals.Calendar';\nimport { FIELD, REDIRECT_PATH } from './Deals.constants';\nimport { L10N } from './Deals.l10n';\nimport * as style from './Deals.module.css';\nimport { getCurrency, validate } from './helpers';\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { FieldOccupation, FieldPromocode } from '../__shared__';\nimport { toParties } from '../__shared__/Occupation/helpers/toParties';\nimport { ICON, toQueryString } from '../helpers';\n\nconst Deals = ({ id: offerId, skeleton, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: { cookies = {}, currency, deals: value = {}, hotel, language, locale, origin, urlParams = {}, ...store },\n } = useStore();\n const ref = useRef(null);\n\n const [busy, setBusy] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [error, setError] = useState({});\n const [visible, setVisible] = useState();\n const [visited, setVisited] = useState({});\n\n useEffect(() => {\n if (isMobile) return;\n\n const handleClickOutside = ({ target }) => !ref.current?.contains(target) && target.type !== 'text' && setVisible();\n document.addEventListener('click', handleClickOutside, true);\n\n return () => {\n setBusy(false);\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n useEffect(() => {\n if (skeleton) return;\n\n (async () =>\n setDataSource(\n await ServiceDeals.get({\n ...store,\n currency: getCurrency({ cookies, currency, urlParams }),\n hotel,\n locale,\n offerId,\n }).catch(() => {}),\n ))();\n }, [currency, locale]);\n\n useEffect(() => {\n const { occupation: { minRooms = 1, dataSource: occupation = [] } = {} } = dataSource || {};\n\n !value?.occupation &&\n occupation.length > 0 &&\n handleChange(\n 'occupation',\n [...Array(minRooms)].map(() => prepareRoom(occupation)),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n useEffect(() => {\n visible && setVisited({ ...visited, [`${visible}`]: true });\n }, [visible]);\n\n const handleChange = (field, fieldValue) => {\n if (!dataSource) return;\n\n set({ deals: { ...value, [field]: fieldValue } });\n };\n\n const handleClear = () => {\n set({ deals: undefined });\n setError({});\n setVisited(false);\n };\n\n const handleSubmit = () => {\n setBusy(true);\n const { calendar, occupation, promoCode } = value;\n\n const params = {\n idoffers: offerId,\n idtokenprovider: hotel.id,\n lang: language,\n checkin: dateFormat(calendar[0], { format: 'DD/MM/YYYY' }),\n nights: dateDiff(calendar[0], calendar[1]).days,\n clientCode: promoCode || '',\n currency: getCurrency({ urlParams, cookies, currency }) || '',\n parties: window.btoa(JSON.stringify(toParties(occupation))),\n hsri: origin.commissionCode,\n };\n window.location.href = `${process.env.SERVICE_BOOKING}/${REDIRECT_PATH}${toQueryString(params)}`;\n\n setBusy(true);\n };\n\n const { className, testId } = others;\n const { calendar = [], occupation, promoCode = '' } = value;\n\n const isValid = validate({ dataSource, error, value });\n\n return (\n <View role=\"deals\" testId={others.testId} className={styles(style.deals, className)}>\n <View row className={style.header}>\n <Text bold headline level={isMobile ? 3 : 2} markdown={false}>\n {translate(L10N.LABEL_SELECT_DATES_PERSONS)}\n </Text>\n\n <Action onPress={handleClear} className={style.action}>\n <Icon value={ICON.CLEAR} className={style.actionIcon} />\n {translate(L10N.ACTION_CLEAR)}\n </Action>\n </View>\n\n <Calendar\n {...dataSource?.calendar}\n value={calendar}\n visible={visible === FIELD.CALENDAR}\n visited={visited.calendar}\n onChange={(calendar, event) => handleChange('calendar', calendar, event)}\n onPress={() => setVisible(visible !== FIELD.CALENDAR ? FIELD.CALENDAR : undefined)}\n testId={testId ? `${testId}-calendar` : undefined}\n />\n\n <View row={!isMobile} className={style.extras}>\n <FieldOccupation\n {...dataSource?.occupation}\n error={!!error.occupation}\n hideLabel={!isMobile}\n hotels={[hotel?.id]}\n ref={ref}\n value={occupation}\n visible={visible === FIELD.OCCUPATION}\n onChange={(occupation) => handleChange('occupation', occupation)}\n onError={(occupation) => {\n if (!isMobile && visible !== FIELD.OCCUPATION) setVisible(FIELD.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setVisible(visible !== FIELD.OCCUPATION ? FIELD.OCCUPATION : undefined)}\n onValid={() => setError({ ...error, occupation: undefined })}\n testId={testId ? `${testId}-occupation` : undefined}\n />\n\n <FieldPromocode\n value={promoCode}\n visible={visible === FIELD.PROMOCODE}\n onChange={(promoCode) => handleChange('promoCode', promoCode)}\n onEnter={() => setVisible(FIELD.PROMOCODE)}\n onLeave={() => setVisible(undefined)}\n testId={testId ? `${testId}-promocode` : undefined}\n />\n\n {!isMobile && <View className={style.footer} />}\n\n <Button\n busy={busy}\n disabled={!isValid}\n large\n wide={isMobile}\n onPress={handleSubmit}\n className={style.cta}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {translate(L10N.ACTION_SEARCH)}\n </Button>\n </View>\n </View>\n );\n};\n\nDeals.displayName = 'Mirai:Core:Deals';\n\nDeals.propTypes = {\n id: PropTypes.string,\n skeleton: PropTypes.bool,\n};\n\nexport { Deals };\n"],"mappings":"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"}
|
|
@@ -1625,38 +1625,12 @@ exports[`component:<Deals> inherit:className 1`] = `
|
|
|
1625
1625
|
<div
|
|
1626
1626
|
class="view"
|
|
1627
1627
|
>
|
|
1628
|
-
<span
|
|
1629
|
-
class="text small"
|
|
1630
|
-
>
|
|
1631
|
-
finder.label.who
|
|
1632
|
-
</span>
|
|
1633
1628
|
<span
|
|
1634
1629
|
class="text action"
|
|
1635
1630
|
>
|
|
1636
1631
|
· 1 common.label.accommodation_type
|
|
1637
1632
|
</span>
|
|
1638
1633
|
</div>
|
|
1639
|
-
<span
|
|
1640
|
-
class="icon headline-3"
|
|
1641
|
-
>
|
|
1642
|
-
<svg
|
|
1643
|
-
fill="currentColor"
|
|
1644
|
-
height="1em"
|
|
1645
|
-
stroke="currentColor"
|
|
1646
|
-
stroke-width="0"
|
|
1647
|
-
viewBox="0 0 24 24"
|
|
1648
|
-
width="1em"
|
|
1649
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
1650
|
-
>
|
|
1651
|
-
<path
|
|
1652
|
-
d="M0 0h24v24H0z"
|
|
1653
|
-
fill="none"
|
|
1654
|
-
/>
|
|
1655
|
-
<path
|
|
1656
|
-
d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
|
|
1657
|
-
/>
|
|
1658
|
-
</svg>
|
|
1659
|
-
</span>
|
|
1660
1634
|
</div>
|
|
1661
1635
|
</span>
|
|
1662
1636
|
<div
|
|
@@ -3574,11 +3548,6 @@ exports[`component:<Deals> prop:value 1`] = `
|
|
|
3574
3548
|
<div
|
|
3575
3549
|
class="view"
|
|
3576
3550
|
>
|
|
3577
|
-
<span
|
|
3578
|
-
class="text small"
|
|
3579
|
-
>
|
|
3580
|
-
finder.label.who
|
|
3581
|
-
</span>
|
|
3582
3551
|
<span
|
|
3583
3552
|
class="text action"
|
|
3584
3553
|
>
|
|
@@ -3597,27 +3566,6 @@ exports[`component:<Deals> prop:value 1`] = `
|
|
|
3597
3566
|
type
|
|
3598
3567
|
</span>
|
|
3599
3568
|
</div>
|
|
3600
|
-
<span
|
|
3601
|
-
class="icon headline-3"
|
|
3602
|
-
>
|
|
3603
|
-
<svg
|
|
3604
|
-
fill="currentColor"
|
|
3605
|
-
height="1em"
|
|
3606
|
-
stroke="currentColor"
|
|
3607
|
-
stroke-width="0"
|
|
3608
|
-
viewBox="0 0 24 24"
|
|
3609
|
-
width="1em"
|
|
3610
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
3611
|
-
>
|
|
3612
|
-
<path
|
|
3613
|
-
d="M0 0h24v24H0z"
|
|
3614
|
-
fill="none"
|
|
3615
|
-
/>
|
|
3616
|
-
<path
|
|
3617
|
-
d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
|
|
3618
|
-
/>
|
|
3619
|
-
</svg>
|
|
3620
|
-
</span>
|
|
3621
3569
|
</div>
|
|
3622
3570
|
</span>
|
|
3623
3571
|
<div
|
|
@@ -5675,38 +5623,12 @@ exports[`component:<Deals> renders 1`] = `
|
|
|
5675
5623
|
<div
|
|
5676
5624
|
class="view"
|
|
5677
5625
|
>
|
|
5678
|
-
<span
|
|
5679
|
-
class="text small"
|
|
5680
|
-
>
|
|
5681
|
-
finder.label.who
|
|
5682
|
-
</span>
|
|
5683
5626
|
<span
|
|
5684
5627
|
class="text action"
|
|
5685
5628
|
>
|
|
5686
5629
|
· 1 common.label.accommodation_type
|
|
5687
5630
|
</span>
|
|
5688
5631
|
</div>
|
|
5689
|
-
<span
|
|
5690
|
-
class="icon headline-3"
|
|
5691
|
-
>
|
|
5692
|
-
<svg
|
|
5693
|
-
fill="currentColor"
|
|
5694
|
-
height="1em"
|
|
5695
|
-
stroke="currentColor"
|
|
5696
|
-
stroke-width="0"
|
|
5697
|
-
viewBox="0 0 24 24"
|
|
5698
|
-
width="1em"
|
|
5699
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
5700
|
-
>
|
|
5701
|
-
<path
|
|
5702
|
-
d="M0 0h24v24H0z"
|
|
5703
|
-
fill="none"
|
|
5704
|
-
/>
|
|
5705
|
-
<path
|
|
5706
|
-
d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
|
|
5707
|
-
/>
|
|
5708
|
-
</svg>
|
|
5709
|
-
</span>
|
|
5710
5632
|
</div>
|
|
5711
5633
|
</span>
|
|
5712
5634
|
<div
|
|
@@ -7623,38 +7545,12 @@ exports[`component:<Deals> testID 1`] = `
|
|
|
7623
7545
|
<div
|
|
7624
7546
|
class="view"
|
|
7625
7547
|
>
|
|
7626
|
-
<span
|
|
7627
|
-
class="text small"
|
|
7628
|
-
>
|
|
7629
|
-
finder.label.who
|
|
7630
|
-
</span>
|
|
7631
7548
|
<span
|
|
7632
7549
|
class="text action"
|
|
7633
7550
|
>
|
|
7634
7551
|
· 1 common.label.accommodation_type
|
|
7635
7552
|
</span>
|
|
7636
7553
|
</div>
|
|
7637
|
-
<span
|
|
7638
|
-
class="icon headline-3"
|
|
7639
|
-
>
|
|
7640
|
-
<svg
|
|
7641
|
-
fill="currentColor"
|
|
7642
|
-
height="1em"
|
|
7643
|
-
stroke="currentColor"
|
|
7644
|
-
stroke-width="0"
|
|
7645
|
-
viewBox="0 0 24 24"
|
|
7646
|
-
width="1em"
|
|
7647
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
7648
|
-
>
|
|
7649
|
-
<path
|
|
7650
|
-
d="M0 0h24v24H0z"
|
|
7651
|
-
fill="none"
|
|
7652
|
-
/>
|
|
7653
|
-
<path
|
|
7654
|
-
d="M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"
|
|
7655
|
-
/>
|
|
7656
|
-
</svg>
|
|
7657
|
-
</span>
|
|
7658
7554
|
</div>
|
|
7659
7555
|
</span>
|
|
7660
7556
|
<div
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Finder.constants.js","names":["_Core","require","_helpers","CHAIN","HOTEL","coreTYPE","FIELD","exports","PLACE","icon","ICON","LOCATION","tabIndex","CALENDAR","OCCUPATION","PEOPLE","PROMOCODE","DISCOUNT","inputMode","GAP_SCROLL","VIEW","TYPE"],"sources":["../../../src/components/Finder/Finder.constants.js"],"sourcesContent":["import { TYPE as coreTYPE } from '../../Core.constants';\nimport { ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = coreTYPE;\n\nconst FIELD = {\n PLACE: {\n icon: ICON.LOCATION,\n tabIndex: 0,\n },\n CALENDAR: {\n icon: ICON.CALENDAR,\n tabIndex: 1,\n },\n OCCUPATION: {\n icon: ICON.PEOPLE,\n tabIndex: 2,\n },\n PROMOCODE: {\n icon: ICON.DISCOUNT,\n inputMode: true,\n tabIndex: 3,\n },\n};\n\nconst GAP_SCROLL =
|
|
1
|
+
{"version":3,"file":"Finder.constants.js","names":["_Core","require","_helpers","CHAIN","HOTEL","coreTYPE","FIELD","exports","PLACE","icon","ICON","LOCATION","tabIndex","CALENDAR","OCCUPATION","PEOPLE","PROMOCODE","DISCOUNT","inputMode","GAP_SCROLL","VIEW","TYPE"],"sources":["../../../src/components/Finder/Finder.constants.js"],"sourcesContent":["import { TYPE as coreTYPE } from '../../Core.constants';\nimport { ICON } from '../helpers';\n\nconst { CHAIN, HOTEL } = coreTYPE;\n\nconst FIELD = {\n PLACE: {\n icon: ICON.LOCATION,\n tabIndex: 0,\n },\n CALENDAR: {\n icon: ICON.CALENDAR,\n tabIndex: 1,\n },\n OCCUPATION: {\n icon: ICON.PEOPLE,\n tabIndex: 2,\n },\n PROMOCODE: {\n icon: ICON.DISCOUNT,\n inputMode: true,\n tabIndex: 3,\n },\n};\n\nconst GAP_SCROLL = 32;\n\nconst VIEW = {\n PLACE: 'place',\n CALENDAR: 'calendar',\n OCCUPATION: 'occupation',\n PROMOCODE: 'promocode',\n};\n\nconst TYPE = {\n CHAIN,\n HOTEL,\n};\n\nexport { FIELD, GAP_SCROLL, TYPE, VIEW };\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,MAAM;EAAEE,KAAK;EAAEC;AAAM,CAAC,GAAGC,UAAQ;AAEjC,MAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG;EACZE,KAAK,EAAE;IACLC,IAAI,EAAEC,aAAI,CAACC,QAAQ;IACnBC,QAAQ,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACRJ,IAAI,EAAEC,aAAI,CAACG,QAAQ;IACnBD,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAE;IACVL,IAAI,EAAEC,aAAI,CAACK,MAAM;IACjBH,QAAQ,EAAE;EACZ,CAAC;EACDI,SAAS,EAAE;IACTP,IAAI,EAAEC,aAAI,CAACO,QAAQ;IACnBC,SAAS,EAAE,IAAI;IACfN,QAAQ,EAAE;EACZ;AACF,CAAC;AAED,MAAMO,UAAU,GAAAZ,OAAA,CAAAY,UAAA,GAAG,EAAE;AAErB,MAAMC,IAAI,GAAAb,OAAA,CAAAa,IAAA,GAAG;EACXZ,KAAK,EAAE,OAAO;EACdK,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBE,SAAS,EAAE;AACb,CAAC;AAED,MAAMK,IAAI,GAAAd,OAAA,CAAAc,IAAA,GAAG;EACXlB,KAAK;EACLC;AACF,CAAC"}
|
|
@@ -44,6 +44,7 @@ const Finder = _ref => {
|
|
|
44
44
|
} = _ref;
|
|
45
45
|
const {
|
|
46
46
|
isMobile,
|
|
47
|
+
isTablet,
|
|
47
48
|
width: deviceWidth
|
|
48
49
|
} = (0, _ui.useDevice)();
|
|
49
50
|
const {
|
|
@@ -126,14 +127,15 @@ const Finder = _ref => {
|
|
|
126
127
|
(0, _react.useEffect)(() => setCurrency(propCurrency), [propCurrency]);
|
|
127
128
|
(0, _react.useEffect)(() => {
|
|
128
129
|
if (!compacted) return;
|
|
130
|
+
let timeout;
|
|
129
131
|
const handleScroll = () => {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
132
|
+
clearTimeout(timeout);
|
|
133
|
+
timeout = setTimeout(() => {
|
|
134
|
+
if (window.scrollY > memoizedScrollY + _Finder2.GAP_SCROLL || window.scrollY < memoizedScrollY - _Finder2.GAP_SCROLL) {
|
|
135
|
+
memoizedScrollY = window.scrollY;
|
|
136
|
+
setFocus(undefined);
|
|
137
|
+
}
|
|
138
|
+
}, 16);
|
|
137
139
|
};
|
|
138
140
|
window.addEventListener('scroll', handleScroll);
|
|
139
141
|
return () => window.removeEventListener('scroll', handleScroll);
|
|
@@ -219,8 +221,8 @@ const Finder = _ref => {
|
|
|
219
221
|
} = store;
|
|
220
222
|
const id = type !== HOTEL ? isHotel && ids.length === 1 ? ids[0] : undefined : idHotel;
|
|
221
223
|
const is = {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
+
column: isMobile || layout === 'column',
|
|
225
|
+
compacted: compacted && isMobile || compacted && !isMobile && !focus
|
|
224
226
|
};
|
|
225
227
|
const fieldProps = {
|
|
226
228
|
compacted: is.compacted,
|
|
@@ -242,9 +244,9 @@ const Finder = _ref => {
|
|
|
242
244
|
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
243
245
|
role: "finder",
|
|
244
246
|
ref: ref,
|
|
245
|
-
row: !
|
|
247
|
+
row: !is.column,
|
|
246
248
|
testId: others.testId,
|
|
247
|
-
className: !is.compacted ? (0, _ui.styles)(style.finder,
|
|
249
|
+
className: !is.compacted ? (0, _ui.styles)(style.finder, is.column && style.column, others.className) : undefined
|
|
248
250
|
}, dataSource.places && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_shared__.Field, _extends({}, _Finder2.FIELD.PLACE, {
|
|
249
251
|
caption: (0, _helpers.getPlaceCaption)(place.value, dataSource.places.options),
|
|
250
252
|
label: translate(_Finder3.L10N.LABEL_WHERE),
|
|
@@ -336,11 +338,11 @@ const Finder = _ref => {
|
|
|
336
338
|
testId: others.testId ? "".concat(others.testId, "-promocode") : undefined
|
|
337
339
|
}, fieldProps)), !is.compacted && /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
338
340
|
large: true,
|
|
339
|
-
wide:
|
|
341
|
+
wide: is.column,
|
|
340
342
|
onPress: handleSubmit,
|
|
341
|
-
className: (0, _ui.styles)(style.button, icon && !is.column && style.withIcon),
|
|
343
|
+
className: (0, _ui.styles)(style.button, (icon && !is.column || isTablet) && style.withIcon),
|
|
342
344
|
testId: others.testId ? "".concat(others.testId, "-submit") : undefined
|
|
343
|
-
}, icon && !is.column ? /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
345
|
+
}, icon && !is.column || isTablet ? /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
344
346
|
value: _helpers3.ICON.SEARCH
|
|
345
347
|
}) : text || translate(_Finder3.L10N.ACTION_SEARCH))));
|
|
346
348
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_Occupation","_helpers3","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","assisted","compacted","icon","inline","layout","text","onChange","onSubmit","others","isMobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","propCurrency","finder","storeFinder","forwarder","locale","type","store","useStore","calendarPosition","setCalendarPosition","useState","setCurrency","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","getAvailableWidth","disabledDates","place","callback","calendar","handleSubmit","nextValue","skeleton","setTimeout","track","Event","subscribe","EVENT","FINDER","unsubscribe","handleScroll","scrollY","window","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","handlePlaceChange","event","_fetchUrlParams","VIEW","PLACE","isHotel","fetchUrlParams","location","search","fetchCurrency","id","assistant","firstError","keys","filter","forwarderUrl","getForwarderUrl","href","CALENDAR","includes","promocode","ids","dataSource","getDataSource","hotel","idHotel","is","column","fieldProps","className","centered","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","testId","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","LABEL_WHEN","onPosition","Calendar","parseCalendarProps","variants","onError","onValid","top","calendarOnTop","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Button","large","wide","button","withIcon","Icon","ICON","SEARCH","ACTION_SEARCH","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { track } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT, ICON } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({\n assisted = true,\n compacted = false,\n icon = false,\n inline = true,\n layout,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency: propCurrency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [calendarPosition, setCalendarPosition] = useState();\n const [currency, setCurrency] = useState();\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (layout === 'column' && ref.current) setWidth(getAvailableWidth(ref.current));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n setUnavailability({ disabledDates: [] });\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const callback = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n !others?.skeleton && !onSubmit && setTimeout(() => track({ isMobile, type, ...store }), 10);\n\n Event.subscribe(EVENT.FINDER, callback);\n\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(() => {\n if (!compacted) return;\n\n const handleScroll = () => {\n const { scrollY } = window;\n if (scrollY > memoizedScrollY + GAP_SCROLL || scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = scrollY;\n setFocus(undefined);\n }\n };\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handlePlaceChange = async (place, event) => {\n setWarning();\n handleChange(VIEW.PLACE, place, event);\n if (place.isHotel && !fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n setCurrency(await fetchCurrency(place.id[0]));\n }\n assisted && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || (assisted && [VIEW.CALENDAR, VIEW.PLACE].includes(focus))) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const is = {\n compacted: (compacted && isMobile) || (compacted && !isMobile && !focus),\n column: !isMobile && layout === 'column',\n };\n\n const fieldProps = {\n compacted: is.compacted,\n inline,\n className: style.field,\n ...(is.column ? { centered: true, style: width ? { maxWidth: width, width } : undefined } : undefined),\n };\n\n return (\n <>\n {is.compacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n\n <View\n role=\"finder\"\n ref={ref}\n row={!isMobile}\n testId={others.testId}\n className={\n !is.compacted\n ? styles(style.finder, inline && style.inline, layout && style[layout], others.className)\n : undefined\n }\n >\n {dataSource.places && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n text={compacted ? text : undefined}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPosition={setCalendarPosition}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n className={styles(calendarPosition?.top && style.calendarOnTop)}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {inline && <View className={style.separator} />}\n\n <FieldOccupation\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n withWarning={warning}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted && (\n <Button\n large\n wide={isMobile || is.column}\n onPress={handleSubmit}\n className={styles(style.button, icon && !is.column && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {icon && !is.column ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n icon: PropTypes.bool,\n inline: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Finder.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Finder","_Finder2","_Finder3","style","_helpers","_getAvailableWidth","_helpers2","_prepareRoom","_shared__","_Occupation","_helpers3","_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","HOTEL","TYPE","memoizedScrollY","Finder","_ref","_dataSource$places","assisted","compacted","icon","inline","layout","text","onChange","onSubmit","others","isMobile","isTablet","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","currency","propCurrency","finder","storeFinder","forwarder","locale","type","store","useStore","calendarPosition","setCalendarPosition","useState","setCurrency","error","setError","focus","setFocus","unavailability","setUnavailability","setValue","parseValue","visited","setVisited","warning","setWarning","setWidth","useEffect","occupation","prepareRoom","DATASOURCE","handleClickOutside","_ref$current","undefined","current","contains","document","addEventListener","removeEventListener","getAvailableWidth","disabledDates","place","callback","calendar","handleSubmit","nextValue","skeleton","setTimeout","track","Event","subscribe","EVENT","FINDER","unsubscribe","timeout","handleScroll","clearTimeout","window","scrollY","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","handlePlaceChange","event","_fetchUrlParams","VIEW","PLACE","isHotel","fetchUrlParams","location","search","fetchCurrency","id","assistant","firstError","keys","filter","forwarderUrl","getForwarderUrl","href","CALENDAR","includes","promocode","ids","dataSource","getDataSource","hotel","idHotel","is","column","fieldProps","className","centered","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","testId","styles","places","Field","FIELD","caption","getPlaceCaption","options","label","L10N","LABEL_WHERE","placeholder","LABEL_WHERE_PLACEHOLDER","visible","onPress","Places","autoColumn","separator","getCalendarCaption","LABEL_WHEN","onPosition","Calendar","parseCalendarProps","variants","onError","onValid","top","calendarOnTop","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Button","large","wide","button","withIcon","Icon","ICON","SEARCH","ACTION_SEARCH","exports","displayName","propTypes","PropTypes","bool","oneOf","string","func"],"sources":["../../../src/components/Finder/Finder.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Button, styles, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Calendar, Places } from './components';\nimport { Compact } from './Finder.compact';\nimport { FIELD, GAP_SCROLL, TYPE, VIEW } from './Finder.constants';\nimport { L10N } from './Finder.l10n';\nimport * as style from './Finder.module.css';\nimport {\n getDataSource,\n getForwarderUrl,\n getHotels,\n getOccupationDataSource,\n getPlaceCaption,\n parseCalendarProps,\n parseValue,\n} from './helpers';\nimport { track } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { getCalendarCaption } from '../helpers';\nimport { EVENT, ICON } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet memoizedScrollY = 0;\n\nconst Finder = ({\n assisted = true,\n compacted = false,\n icon = false,\n inline = true,\n layout,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, isTablet, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { currency: propCurrency, finder: storeFinder, forwarder, locale, type = HOTEL, ...store },\n } = useStore();\n\n const [calendarPosition, setCalendarPosition] = useState();\n const [currency, setCurrency] = useState();\n const [error, setError] = useState({});\n const [focus, setFocus] = useState();\n const [unavailability, setUnavailability] = useState();\n const [value, setValue] = useState(parseValue(storeFinder));\n const [visited, setVisited] = useState({});\n const [warning, setWarning] = useState();\n const [width, setWidth] = useState();\n\n useEffect(() => {\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n if (isMobile) return;\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n document.addEventListener('click', handleClickOutside, true);\n\n return () => document.removeEventListener('click', handleClickOutside, true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (layout === 'column' && ref.current) setWidth(getAvailableWidth(ref.current));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceWidth]);\n\n useEffect(() => {\n setUnavailability({ disabledDates: [] });\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const callback = ({ calendar, finder, focus } = {}) => {\n if (finder) return handleSubmit({ nextValue: finder });\n\n setUnavailability(calendar);\n if (focus) setFocus(focus);\n };\n\n !others?.skeleton && !onSubmit && setTimeout(() => track({ isMobile, type, ...store }), 10);\n\n Event.subscribe(EVENT.FINDER, callback);\n\n return () => Event.unsubscribe(EVENT.FINDER, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // ! TODO: Why this one? Is not responsibility of <Finder> change the currency when prop changes.\n useEffect(() => setCurrency(propCurrency), [propCurrency]);\n\n useEffect(() => {\n if (!compacted) return;\n let timeout;\n\n const handleScroll = () => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if (window.scrollY > memoizedScrollY + GAP_SCROLL || window.scrollY < memoizedScrollY - GAP_SCROLL) {\n memoizedScrollY = window.scrollY;\n setFocus(undefined);\n }\n }, 16);\n };\n\n window.addEventListener('scroll', handleScroll);\n\n return () => window.removeEventListener('scroll', handleScroll);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [compacted]);\n\n useEffect(\n () => JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder)) && setValue(parseValue(storeFinder)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [storeFinder],\n );\n\n useEffect(() => {\n focus && setVisited({ ...visited, [`${focus}`]: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focus]);\n\n const handleChange = (field, fieldValue) => {\n const next = { ...value, [field]: fieldValue };\n\n setValue(next);\n onChange(next, field, fieldValue);\n };\n\n const handlePlaceChange = async (place, event) => {\n setWarning();\n handleChange(VIEW.PLACE, place, event);\n if (place.isHotel && !fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n setCurrency(await fetchCurrency(place.id[0]));\n }\n assisted && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n const [firstError] = Object.keys(error).filter((key) => !!error[key]);\n if (firstError) return setFocus(firstError);\n\n setWarning(false);\n setFocus(undefined);\n set({ finder: nextValue });\n const forwarderUrl = getForwarderUrl({ ...nextValue, currency, forwarder, locale, store, type });\n\n if (onSubmit) onSubmit({ ...nextValue, forwarderUrl });\n else window.location.href = forwarderUrl;\n };\n\n const assistant = () => {\n if (!assisted) return setFocus(undefined);\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || (assisted && [VIEW.CALENDAR, VIEW.PLACE].includes(focus))) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\n\n const dataSource = getDataSource({ type, ...store });\n const { hotel: { id: idHotel } = {} } = store;\n const id = type !== HOTEL ? (isHotel && ids.length === 1 ? ids[0] : undefined) : idHotel;\n\n const is = {\n column: isMobile || layout === 'column',\n compacted: (compacted && isMobile) || (compacted && !isMobile && !focus),\n };\n\n const fieldProps = {\n compacted: is.compacted,\n inline,\n className: style.field,\n ...(is.column ? { centered: true, style: width ? { maxWidth: width, width } : undefined } : undefined),\n };\n\n return (\n <>\n {is.compacted && <Compact {...{ value, dataSource }} onExpand={setFocus} onSubmit={handleSubmit} />}\n\n <View\n role=\"finder\"\n ref={ref}\n row={!is.column}\n testId={others.testId}\n className={!is.compacted ? styles(style.finder, is.column && style.column, others.className) : undefined}\n >\n {dataSource.places && (\n <>\n <Field\n {...FIELD.PLACE}\n caption={getPlaceCaption(place.value, dataSource.places.options)}\n label={translate(L10N.LABEL_WHERE)}\n placeholder={dataSource.places.placeholder || translate(L10N.LABEL_WHERE_PLACEHOLDER)}\n visible={focus === VIEW.PLACE}\n onPress={() => setFocus(focus !== VIEW.PLACE ? VIEW.PLACE : undefined)}\n {...fieldProps}\n >\n <Places\n autoColumn={focus === VIEW.PLACE}\n dataSource={dataSource.places.options}\n text={compacted ? text : undefined}\n value={place.value}\n onChange={handlePlaceChange}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n testId={others.testId ? `${others.testId}-places` : undefined}\n />\n </Field>\n\n {inline && <View className={style.separator} />}\n </>\n )}\n\n <Field\n {...FIELD.CALENDAR}\n caption={calendar.length ? getCalendarCaption(calendar, translate, dateFormat) : undefined}\n centered={type !== HOTEL}\n label={translate(L10N.LABEL_WHEN)}\n placeholder={getCalendarCaption(undefined, translate, dateFormat)}\n visible={focus === VIEW.CALENDAR}\n onPosition={setCalendarPosition}\n onPress={() => setFocus(focus !== VIEW.CALENDAR ? VIEW.CALENDAR : undefined)}\n {...fieldProps}\n >\n <Calendar\n {...parseCalendarProps(dataSource.calendar, id, occupation, type, unavailability, dataSource.variants)}\n id={id}\n currency={currency}\n locale={locale}\n text={compacted ? text : undefined}\n unavailability={unavailability}\n value={calendar}\n onChange={(calendar, event) => {\n handleChange(VIEW.CALENDAR, calendar, event);\n if (calendar.length === 2 && assisted) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onValid={() => setError({ ...error, calendar: undefined })}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n className={styles(calendarPosition?.top && style.calendarOnTop)}\n testId={others.testId ? `${others.testId}-calendar` : undefined}\n />\n </Field>\n\n {inline && <View className={style.separator} />}\n\n <FieldOccupation\n dataSource={getOccupationDataSource({\n ...dataSource,\n places: dataSource.places?.options,\n place: place?.value,\n })}\n hotels={getHotels(dataSource.placesSource, place.value)}\n maxRooms={dataSource.maxRooms}\n text={compacted ? text : undefined}\n value={occupation}\n visible={focus === VIEW.OCCUPATION}\n withWarning={warning}\n onChange={(occupation, event) => handleChange(VIEW.OCCUPATION, occupation, event)}\n onError={(occupation) => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n setError({ ...error, occupation });\n }}\n onPress={() => setFocus(focus !== VIEW.OCCUPATION ? VIEW.OCCUPATION : undefined)}\n onSubmit={isMobile ? (compacted ? handleSubmit : assisted ? assistant : undefined) : undefined}\n onValid={() => setError({ ...error, occupation: undefined })}\n onWarning={() => {\n if (!isMobile && focus !== VIEW.OCCUPATION) setFocus(VIEW.OCCUPATION);\n }}\n testId={others.testId ? `${others.testId}-occupation` : undefined}\n {...fieldProps}\n />\n\n {inline && <View className={style.separator} />}\n\n <FieldPromocode\n value={promocode}\n visible={focus === VIEW.PROMOCODE}\n onChange={(promocode, event) => handleChange(VIEW.PROMOCODE, promocode, event)}\n onEnter={!compacted ? () => setFocus(VIEW.PROMOCODE) : undefined}\n onLeave={!compacted ? () => setFocus(undefined) : undefined}\n onPress={\n isMobile && compacted ? () => setFocus(focus !== VIEW.PROMOCODE ? VIEW.PROMOCODE : undefined) : undefined\n }\n onSubmit={isMobile && compacted ? handleSubmit : undefined}\n testId={others.testId ? `${others.testId}-promocode` : undefined}\n {...fieldProps}\n />\n\n {!is.compacted && (\n <Button\n large\n wide={is.column}\n onPress={handleSubmit}\n className={styles(style.button, ((icon && !is.column) || isTablet) && style.withIcon)}\n testId={others.testId ? `${others.testId}-submit` : undefined}\n >\n {(icon && !is.column) || isTablet ? <Icon value={ICON.SEARCH} /> : text || translate(L10N.ACTION_SEARCH)}\n </Button>\n )}\n </View>\n </>\n );\n};\n\nFinder.displayName = 'Mirai:Core:Finder';\n\nFinder.propTypes = {\n assisted: PropTypes.bool,\n compacted: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n icon: PropTypes.bool,\n inline: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
|
|
@@ -1,36 +1,66 @@
|
|
|
1
1
|
.finder {
|
|
2
|
-
border
|
|
3
|
-
gap: var(--mirai-finder-gap);
|
|
4
|
-
overflow: hidden;
|
|
2
|
+
border: var(--mirai-finder-border);
|
|
5
3
|
flex: 0;
|
|
6
4
|
justify-content: center;
|
|
5
|
+
gap: var(--mirai-finder-gap);
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.finder:not(.column) {
|
|
10
|
+
border-radius: var(--mirai-finder-border-radius);
|
|
11
|
+
width: fit-content;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.finder:not(.column):not(.compact) {
|
|
7
15
|
padding: var(--mirai-finder-padding);
|
|
8
16
|
}
|
|
9
17
|
|
|
18
|
+
.finder.column {
|
|
19
|
+
border-radius: var(--mirai-finder-column-border-radius);
|
|
20
|
+
padding: var(--mirai-finder-column-padding);
|
|
21
|
+
width: 100%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.finder.column .button {
|
|
25
|
+
margin-top: calc(var(--mirai-finder-padding) / 2);
|
|
26
|
+
width: 100%;
|
|
27
|
+
}
|
|
28
|
+
|
|
10
29
|
.finder:not(.compact) {
|
|
11
30
|
background-color: var(--mirai-finder-background);
|
|
12
31
|
}
|
|
13
32
|
|
|
14
|
-
.
|
|
15
|
-
|
|
16
|
-
border: var(--mirai-finder-border);
|
|
17
|
-
border-radius: var(--mirai-finder-border-radius);
|
|
33
|
+
.field {
|
|
34
|
+
height: var(--mirai-finder-field-height);
|
|
18
35
|
}
|
|
19
36
|
|
|
20
37
|
.separator {
|
|
21
38
|
background-color: var(--mirai-finder-border-color);
|
|
22
39
|
}
|
|
23
40
|
|
|
24
|
-
.
|
|
41
|
+
.finder.column .separator {
|
|
42
|
+
height: var(--mirai-ui-border-width);
|
|
43
|
+
width: 100%;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.finder:not(.column) .separator {
|
|
25
47
|
height: var(--mirai-finder-field-height);
|
|
48
|
+
width: var(--mirai-ui-border-width);
|
|
26
49
|
}
|
|
27
50
|
|
|
28
51
|
.button {
|
|
29
|
-
border-radius: var(--mirai-finder-border-radius) !important;
|
|
30
52
|
height: var(--mirai-finder-field-height);
|
|
31
53
|
}
|
|
32
54
|
|
|
33
|
-
.
|
|
55
|
+
.finder:not(.column) .button {
|
|
56
|
+
border-radius: var(--mirai-finder-border-radius) !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.finder.column .button {
|
|
60
|
+
border-radius: var(--mirai-finder-column-border-radius) !important;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.finder:not(.column) .button.withIcon {
|
|
34
64
|
max-height: var(--mirai-finder-field-height);
|
|
35
65
|
max-width: var(--mirai-finder-field-height);
|
|
36
66
|
min-height: var(--mirai-finder-field-height);
|
|
@@ -38,7 +68,8 @@
|
|
|
38
68
|
padding: 0 !important;
|
|
39
69
|
}
|
|
40
70
|
|
|
41
|
-
|
|
71
|
+
/* -- compact */
|
|
72
|
+
.compact {
|
|
42
73
|
background-color: var(--mirai-ui-base);
|
|
43
74
|
transition: border-color var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing),
|
|
44
75
|
box-shadow var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
|
|
@@ -76,19 +107,6 @@
|
|
|
76
107
|
|
|
77
108
|
/* S */
|
|
78
109
|
@media only screen and (max-width: 430px) {
|
|
79
|
-
.finder {
|
|
80
|
-
width: 100%;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.separator {
|
|
84
|
-
height: var(--mirai-ui-border-width);
|
|
85
|
-
width: 100%;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.button {
|
|
89
|
-
margin-top: calc(var(--mirai-finder-padding) / 2);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
110
|
.compact {
|
|
93
111
|
justify-content: center;
|
|
94
112
|
padding: var(--mirai-ui-space-XS) 0;
|
|
@@ -111,30 +129,6 @@
|
|
|
111
129
|
|
|
112
130
|
/* M & L */
|
|
113
131
|
@media only screen and (min-width: 431px) {
|
|
114
|
-
.finder {
|
|
115
|
-
width: fit-content;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.finder:not(.column) .separator {
|
|
119
|
-
height: var(--mirai-finder-field-height);
|
|
120
|
-
width: var(--mirai-ui-border-width);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.finder.column {
|
|
124
|
-
flex-direction: column;
|
|
125
|
-
width: 100%;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.finder.column .separator {
|
|
129
|
-
height: var(--mirai-ui-border-width);
|
|
130
|
-
width: 100%;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.finder.column .button {
|
|
134
|
-
margin-top: calc(var(--mirai-finder-padding) / 2);
|
|
135
|
-
width: 100%;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
132
|
.finder .calendarOnTop {
|
|
139
133
|
min-height: calc(calc(var(--mirai-ui-calendar-cell) * 8) + var(--mirai-ui-space-XXS));
|
|
140
134
|
}
|