@mirai/core 0.3.452 → 0.3.453
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.
|
@@ -197,7 +197,7 @@ const Finder = _ref => {
|
|
|
197
197
|
const handlePlaceChange = async place => {
|
|
198
198
|
setWarning(false);
|
|
199
199
|
handleChange(_Finder2.VIEW.PLACE, place);
|
|
200
|
-
assistant();
|
|
200
|
+
!is.rates && assistant();
|
|
201
201
|
};
|
|
202
202
|
const handleSubmit = function () {
|
|
203
203
|
var _value$calendar;
|
|
@@ -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","timeoutMetricChange","Finder","_ref","_dataSource$places","compacted","icon","inline","layout","metrics","skeleton","storage","text","onChange","onSubmit","others","isMobile","isTablet","mobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","components","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","window","addEventListener","handlePageShow","document","handleClickOutside","includes","Event","publish","EVENT","METRICS","id","removeEventListener","current","getAvailableWidth","disabledDates","place","_fetchUrlParams","isHotel","fetchUrlParams","location","search","fetchCurrency","callback","calendar","undefined","handleSubmit","nextValue","setTimeout","track","subscribe","FINDER","unsubscribe","JSON","stringify","concat","handleChange","field","fieldValue","next","setStorage","FINDER_FIELD_CHANGE","previousValue","clearTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","assistant","_value$calendar","dataSource","places","CALENDAR","firstError","keys","filter","forwarderUrl","getForwarderUrl","href","promocode","ids","getDataSource","hotel","idHotel","is","column","rates","fieldProps","className","centered","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","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","rangeMinDays","event","onError","onValid","top","calendarOnTop","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Button","large","tabindex","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, 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 { setStorage, track } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n inline = true,\n layout,\n metrics,\n skeleton,\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, isTablet, mobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { components = {}, 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 (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics && !metrics.includes('RATES')) Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\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 unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id, isHotel } = {} } = value || {};\n if (isHotel && !fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(id[0]));\n })();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [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({ mobile, 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 () => {\n if (JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder))) setValue(parseValue(storeFinder));\n },\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 storage && setStorage(next, store?.id);\n\n Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: fieldValue });\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = async ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n setValue(parseValue(storeFinder));\n };\n\n const handlePlaceChange = async (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n\n assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\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 if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\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: layout === 'column',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n rates: components.rates !== undefined,\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 && (\n <Compact\n {...{ value, dataSource }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\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={is.rates ? handleSubmit : 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 testId={others.testId ? `${others.testId}-calendar-field` : 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 rangeMinDays={1}\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 && !is.rates) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: 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={is.rates ? handleSubmit : 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 tabindex={4}\n role=\"finder-button\"\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 compacted: PropTypes.bool,\n icon: PropTypes.bool,\n inline: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n metrics: PropTypes.string,\n skeleton: PropTypes.bool,\n storage: 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","timeoutMetricChange","Finder","_ref","_dataSource$places","compacted","icon","inline","layout","metrics","skeleton","storage","text","onChange","onSubmit","others","isMobile","isTablet","mobile","width","deviceWidth","useDevice","dateFormat","translate","useLocale","ref","useRef","value","components","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","window","addEventListener","handlePageShow","document","handleClickOutside","includes","Event","publish","EVENT","METRICS","id","removeEventListener","current","getAvailableWidth","disabledDates","place","_fetchUrlParams","isHotel","fetchUrlParams","location","search","fetchCurrency","callback","calendar","undefined","handleSubmit","nextValue","setTimeout","track","subscribe","FINDER","unsubscribe","JSON","stringify","concat","handleChange","field","fieldValue","next","setStorage","FINDER_FIELD_CHANGE","previousValue","clearTimeout","_ref$current","contains","persisted","handlePlaceChange","VIEW","PLACE","is","rates","assistant","_value$calendar","dataSource","places","CALENDAR","firstError","keys","filter","forwarderUrl","getForwarderUrl","href","promocode","ids","getDataSource","hotel","idHotel","column","fieldProps","className","centered","maxWidth","createElement","Fragment","Compact","onExpand","View","role","row","tag","testId","styles","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","rangeMinDays","event","onError","onValid","top","calendarOnTop","FieldOccupation","getOccupationDataSource","hotels","getHotels","placesSource","maxRooms","OCCUPATION","withWarning","onWarning","FieldPromocode","PROMOCODE","onEnter","onLeave","Button","large","tabindex","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, 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 { setStorage, track } from './helpers';\nimport { getAvailableWidth } from './helpers/getAvailableWidth';\nimport { fetchCurrency, fetchUrlParams } from '../../helpers';\n// ! TODO: Why we don't publish prepareRoom in ../../helpers\nimport { prepareRoom } from '../../helpers/prepareRoom';\nimport { Field, FieldOccupation, FieldPromocode } from '../__shared__';\nimport { DATASOURCE } from '../__shared__/Occupation/Occupation.constants';\nimport { EVENT, getCalendarCaption, ICON } from '../helpers';\n\nconst { HOTEL } = TYPE;\nlet timeoutMetricChange;\n\nconst Finder = ({\n compacted = false,\n icon = false,\n inline = true,\n layout,\n metrics,\n skeleton,\n storage = true,\n text,\n onChange = () => {},\n onSubmit,\n ...others\n}) => {\n const { isMobile, isTablet, mobile, width: deviceWidth } = useDevice();\n const { dateFormat, translate } = useLocale();\n const ref = useRef(null);\n const {\n set,\n value: { components = {}, 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 (skeleton) return;\n\n if (!storeFinder?.occupation) set({ finder: { ...storeFinder, occupation: [prepareRoom(DATASOURCE)] } });\n\n window.addEventListener('pageshow', handlePageShow);\n !isMobile && document.addEventListener('click', handleClickOutside, true);\n\n if (metrics && !metrics.includes('RATES')) Event.publish(EVENT.METRICS, { id: 'FINDER:RENDER' });\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow);\n !isMobile && document.removeEventListener('click', handleClickOutside, true);\n };\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 unavailability && setUnavailability({ disabledDates: [] });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.occupation, value?.place]);\n\n useEffect(() => {\n const { place: { id, isHotel } = {} } = value || {};\n if (isHotel && !fetchUrlParams(window.location.search)?.currency) {\n // ! TODO: Same here, this should be responsibility of <Core>...\n (async () => {\n setCurrency(await fetchCurrency(id[0]));\n })();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [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({ mobile, 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 () => {\n if (JSON.stringify(value) !== JSON.stringify(parseValue(storeFinder))) setValue(parseValue(storeFinder));\n },\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 storage && setStorage(next, store?.id);\n\n Event.publish(EVENT.FINDER_FIELD_CHANGE, { field, previousValue: value[field], value: fieldValue });\n if (metrics) {\n clearTimeout(timeoutMetricChange);\n timeoutMetricChange = setTimeout(() => Event.publish(EVENT.METRICS, { id: `${metrics}:CHANGE:${field}` }), 500);\n }\n };\n\n const handleClickOutside = ({ target } = {}) => !ref.current?.contains(target) && setFocus(undefined);\n\n const handlePageShow = async ({ persisted } = {}) => {\n if (!persisted) return;\n\n setFocus();\n setVisited();\n setValue(parseValue(storeFinder));\n };\n\n const handlePlaceChange = async (place) => {\n setWarning(false);\n handleChange(VIEW.PLACE, place);\n\n !is.rates && assistant();\n };\n\n const handleSubmit = ({ nextValue = value } = {}) => {\n if (dataSource.places && value.place === undefined) return setFocus(VIEW.PLACE);\n\n if (value.calendar?.length !== 2) return setFocus(VIEW.CALENDAR);\n\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 if (metrics) Event.publish(EVENT.METRICS, { id: `${metrics}:SUBMIT`, ...nextValue });\n };\n\n const assistant = () => {\n const { calendar = [] } = value;\n if (focus === VIEW.PLACE && !visited.calendar && calendar.length !== 2) setFocus(VIEW.CALENDAR);\n else if (!compacted || [VIEW.CALENDAR, VIEW.PLACE].includes(focus)) setFocus(undefined);\n };\n\n const { calendar = [], occupation, place = {}, promocode } = value;\n const { id: ids = [], isHotel } = place;\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: layout === 'column',\n compacted: layout !== 'column' && (isMobile || (compacted && !focus)),\n rates: components.rates !== undefined,\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 && (\n <Compact\n {...{ value, dataSource }}\n onExpand={setFocus}\n onSubmit={!is.rates || (is.rates && !isMobile) ? handleSubmit : undefined}\n {...others}\n />\n )}\n\n <View\n ref={ref}\n role=\"finder\"\n row={!is.column}\n tag=\"finder\"\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={is.rates ? handleSubmit : 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 testId={others.testId ? `${others.testId}-calendar-field` : 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 rangeMinDays={1}\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 && !is.rates) assistant();\n }}\n onError={(calendar) => setError({ ...error, calendar })}\n onSubmit={is.rates ? handleSubmit : undefined}\n onValid={() => setError({ ...error, calendar: 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={is.rates ? handleSubmit : 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 tabindex={4}\n role=\"finder-button\"\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 compacted: PropTypes.bool,\n icon: PropTypes.bool,\n inline: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\n metrics: PropTypes.string,\n skeleton: PropTypes.bool,\n storage: PropTypes.bool,\n text: PropTypes.string,\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nexport { Finder };\n"],"mappings":"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"}
|