@mirai/core 0.3.334 → 0.3.336
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/Finder/Finder.js +2 -1
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.js +40 -29
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/components/Filters/helpers/getStrictSearch.js +1 -1
- package/build/components/Rates/components/Filters/helpers/getStrictSearch.js.map +1 -1
- package/build/helpers/consolidateStore.js +1 -1
- package/build/helpers/consolidateStore.js.map +1 -1
- package/package.json +1 -1
|
@@ -97,9 +97,10 @@ const Finder = _ref => {
|
|
|
97
97
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
98
|
}, [deviceWidth]);
|
|
99
99
|
(0, _react.useEffect)(() => {
|
|
100
|
-
setUnavailability({
|
|
100
|
+
unavailability && setUnavailability({
|
|
101
101
|
disabledDates: []
|
|
102
102
|
});
|
|
103
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
104
|
}, [value === null || value === void 0 ? void 0 : value.occupation, value === null || value === void 0 ? void 0 : value.place]);
|
|
104
105
|
(0, _react.useEffect)(() => {
|
|
105
106
|
var _fetchUrlParams;
|
|
@@ -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","storage","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","_fetchUrlParams","id","isHotel","fetchUrlParams","window","location","search","fetchCurrency","callback","calendar","handleSubmit","nextValue","skeleton","setTimeout","track","Event","subscribe","EVENT","FINDER","unsubscribe","timeout","handleScroll","clearTimeout","scrollY","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","setStorage","publish","FINDER_FIELD_CHANGE","previousValue","handlePlaceChange","event","VIEW","PLACE","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","rangeMinDays","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 { 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 memoizedScrollY = 0;\n\nconst Finder = ({\n assisted = true,\n compacted = false,\n icon = false,\n inline = true,\n layout,\n storage = true,\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 { 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({ 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 () => {\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 };\n\n const handlePlaceChange = async (place, event) => {\n setWarning();\n handleChange(VIEW.PLACE, place, event);\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 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 && 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 icon: PropTypes.bool,\n inline: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\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","memoizedScrollY","Finder","_ref","_dataSource$places","assisted","compacted","icon","inline","layout","storage","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","_fetchUrlParams","id","isHotel","fetchUrlParams","window","location","search","fetchCurrency","callback","calendar","handleSubmit","nextValue","skeleton","setTimeout","track","Event","subscribe","EVENT","FINDER","unsubscribe","timeout","handleScroll","clearTimeout","scrollY","GAP_SCROLL","JSON","stringify","concat","handleChange","field","fieldValue","next","setStorage","publish","FINDER_FIELD_CHANGE","previousValue","handlePlaceChange","event","VIEW","PLACE","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","rangeMinDays","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 { 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 memoizedScrollY = 0;\n\nconst Finder = ({\n assisted = true,\n compacted = false,\n icon = false,\n inline = true,\n layout,\n storage = true,\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 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({ 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 () => {\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 };\n\n const handlePlaceChange = async (place, event) => {\n setWarning();\n handleChange(VIEW.PLACE, place, event);\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 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 && 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 icon: PropTypes.bool,\n inline: PropTypes.bool,\n layout: PropTypes.oneOf(['column']),\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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"}
|
|
@@ -27,7 +27,7 @@ let memoizeForm;
|
|
|
27
27
|
const Filters = _ref => {
|
|
28
28
|
let {
|
|
29
29
|
clubConditions,
|
|
30
|
-
items = [],
|
|
30
|
+
items: propItems = [],
|
|
31
31
|
onSubmit = () => {},
|
|
32
32
|
...others
|
|
33
33
|
} = _ref;
|
|
@@ -64,8 +64,9 @@ const Filters = _ref => {
|
|
|
64
64
|
const [allAmenities, setAllAmenities] = (0, _react.useState)(false);
|
|
65
65
|
const [busy, setBusy] = (0, _react.useState)(false);
|
|
66
66
|
const [counter, setCounter] = (0, _react.useState)(0);
|
|
67
|
-
const [filters, setFilters] = (0, _react.useState)((0, _helpers.getAvailableFilters)(
|
|
67
|
+
const [filters, setFilters] = (0, _react.useState)((0, _helpers.getAvailableFilters)(propItems));
|
|
68
68
|
const [form, setForm] = (0, _react.useState)(_Filters4.DEFAULT_FORM);
|
|
69
|
+
const [items, setItems] = (0, _react.useState)(propItems);
|
|
69
70
|
const [visible, setVisible] = (0, _react.useState)(false);
|
|
70
71
|
(0, _react.useEffect)(() => {
|
|
71
72
|
const nextForm = memoizeForm || {
|
|
@@ -102,10 +103,11 @@ const Filters = _ref => {
|
|
|
102
103
|
return () => _dataSources.Event.unsubscribe(_helpers2.EVENT.RATES_FILTER_CLUB, callback);
|
|
103
104
|
}, [form]);
|
|
104
105
|
(0, _react.useEffect)(() => {
|
|
105
|
-
const nextFilters = (0, _helpers.getAvailableFilters)(
|
|
106
|
+
const nextFilters = (0, _helpers.getAvailableFilters)(propItems);
|
|
107
|
+
setItems(propItems);
|
|
106
108
|
if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);
|
|
107
109
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
108
|
-
}, [
|
|
110
|
+
}, [propItems]);
|
|
109
111
|
const handleAmenity = (id, value) => setForm({
|
|
110
112
|
...form,
|
|
111
113
|
amenities: value ? [...form.amenities, id] : form.amenities.filter(item => item !== id)
|
|
@@ -120,35 +122,18 @@ const Filters = _ref => {
|
|
|
120
122
|
[field]: value
|
|
121
123
|
};
|
|
122
124
|
setForm(next);
|
|
123
|
-
if (field !== 'freeCancellation')
|
|
124
|
-
setBusy(true);
|
|
125
|
-
const {
|
|
126
|
-
clubDiscount
|
|
127
|
-
} = next;
|
|
128
|
-
const strictSearch = (0, _helpers.getStrictSearch)(next);
|
|
129
|
-
const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>
|
|
130
|
-
const params = {
|
|
131
|
-
cart,
|
|
132
|
-
club,
|
|
133
|
-
clubDiscount,
|
|
134
|
-
finder,
|
|
135
|
-
hotel,
|
|
136
|
-
id,
|
|
137
|
-
locale,
|
|
138
|
-
maxRooms,
|
|
139
|
-
session,
|
|
140
|
-
strictSearch
|
|
141
|
-
};
|
|
142
|
-
const {
|
|
143
|
-
items: nextItems
|
|
144
|
-
} = (await (0, _helpers3.fetchRates)(params).catch(() => {})) || {};
|
|
145
|
-
if (nextItems) setFilters((0, _helpers.getAvailableFilters)(nextItems));
|
|
146
|
-
setBusy(false);
|
|
147
|
-
}
|
|
125
|
+
if (field !== 'freeCancellation') await fetch(next);
|
|
148
126
|
};
|
|
149
127
|
const handleClearAll = () => {
|
|
128
|
+
const {
|
|
129
|
+
clubDiscount,
|
|
130
|
+
offer,
|
|
131
|
+
promocode,
|
|
132
|
+
roomType
|
|
133
|
+
} = form || {};
|
|
150
134
|
setAllAmenities(false);
|
|
151
135
|
setForm(_Filters4.DEFAULT_FORM);
|
|
136
|
+
(clubDiscount || offer || promocode || roomType) && fetch(_Filters4.DEFAULT_FORM);
|
|
152
137
|
};
|
|
153
138
|
const handleSubmit = () => {
|
|
154
139
|
memoizeForm = form;
|
|
@@ -159,6 +144,32 @@ const Filters = _ref => {
|
|
|
159
144
|
strictSearch: (0, _helpers.getStrictSearch)(form)
|
|
160
145
|
});
|
|
161
146
|
};
|
|
147
|
+
const fetch = async next => {
|
|
148
|
+
setBusy(true);
|
|
149
|
+
const {
|
|
150
|
+
clubDiscount
|
|
151
|
+
} = next;
|
|
152
|
+
const strictSearch = (0, _helpers.getStrictSearch)(next);
|
|
153
|
+
const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>
|
|
154
|
+
const params = {
|
|
155
|
+
cart,
|
|
156
|
+
club,
|
|
157
|
+
clubDiscount,
|
|
158
|
+
finder,
|
|
159
|
+
hotel,
|
|
160
|
+
id,
|
|
161
|
+
locale,
|
|
162
|
+
maxRooms,
|
|
163
|
+
session,
|
|
164
|
+
strictSearch
|
|
165
|
+
};
|
|
166
|
+
const {
|
|
167
|
+
items: nextItems
|
|
168
|
+
} = (await (0, _helpers3.fetchRates)(params).catch(() => {})) || {};
|
|
169
|
+
setItems(nextItems);
|
|
170
|
+
if (nextItems) setFilters((0, _helpers.getAvailableFilters)(nextItems));
|
|
171
|
+
setBusy(false);
|
|
172
|
+
};
|
|
162
173
|
const has = {
|
|
163
174
|
clubDiscount: (discount || clubConditions !== undefined) && !session,
|
|
164
175
|
freeCancellation: true || !!filters.freeCancellation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","memoizeForm","Filters","_ref","clubConditions","items","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","nextFilters","JSON","stringify","handleAmenity","amenities","filter","item","handleOption","field","handleBookingOption","next","strictSearch","getStrictSearch","cart","params","nextItems","fetchRates","catch","handleClearAll","handleSubmit","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","small","href","target","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref2","text","Option","board","concat","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref3","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref4","underline","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet memoizeForm;\n\nconst Filters = ({ clubConditions, items = [], onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId },\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(items));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange) return;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const callback = (clubDiscount) => {\n const nextForm = { ...form, clubDiscount };\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, [form]);\n\n useEffect(() => {\n const nextFilters = getAvailableFilters(items);\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items]);\n\n const handleAmenity = (id, value) =>\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n\n const handleOption = (field, id) => setForm({ ...form, [field]: form[field] === id ? undefined : id });\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n if (field !== 'freeCancellation') {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n\n if (nextItems) setFilters(getAvailableFilters(nextItems));\n\n setBusy(false);\n }\n };\n\n const handleClearAll = () => {\n setAllAmenities(false);\n setForm(DEFAULT_FORM);\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n setCounter(countFilters(form));\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n };\n\n const has = {\n clubDiscount: (discount || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={() => setVisible(true)} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={() => setVisible(false)}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollTo={0} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action small href={clubConditions} target=\"_blank\" className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={handleBookingOption}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text }) => (\n <Option\n checked={form.board === text}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', text)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(L10N.LABEL_SET_PRICE_RANGE)}\n dataSource={filters.prices}\n resolution={isMobile ? 12 : 24}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(priceRange) => setForm({ ...form, priceRange })}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action underline onPress={() => setAllAmenities(true)}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(sizeRange) => setForm({ ...form, sizeRange })}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Filters","_Filters2","_Filters3","_Filters4","_Filters5","style","_helpers","_helpers2","_helpers3","_components2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","memoizeForm","Filters","_ref","clubConditions","items","propItems","onSubmit","others","isMobile","useDevice","translate","useLocale","value","currency","club","finder","hotel","id","locale","occupation","maxRooms","session","urlParams","idoffers","roomTypeId","useStore","discount","promocode","allAmenities","setAllAmenities","useState","busy","setBusy","counter","setCounter","filters","setFilters","getAvailableFilters","form","setForm","DEFAULT_FORM","setItems","visible","setVisible","useEffect","nextForm","clubDiscount","undefined","offer","roomType","countFilters","priceRange","callback","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","nextFilters","JSON","stringify","handleAmenity","amenities","filter","item","handleOption","field","handleBookingOption","next","fetch","handleClearAll","handleSubmit","strictSearch","getStrictSearch","cart","params","nextItems","fetchRates","catch","freeCancellation","filteredItems","select","availability","arguments","length","boardsLength","boards","inlineBoards","MAX_BOARDS","name","roomTypeName","find","parseInt","createElement","Fragment","Button","onPress","Modal","fit","portal","title","L10N","LABEL_FILTERS","onClose","className","modal","ScrollView","scrollTo","snap","scrollView","View","section","Text","bold","headline","LABEL_BOOKING_OPTIONS","BookingOption","caption","LABEL_CLUB_CONDITIONS","conditions","Action","small","href","target","textInline","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","checked","LABEL_CLUB_MEMBERS_EXCLUSIVE","onChange","BOOKING_OPTIONS","map","key","roomName","toUpperCase","LABEL_ACCOMMODATION_PLAN","row","styles","inline","_ref2","text","Option","board","concat","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","dataSource","resolution","LABEL_PRICE_RANGE","unit","currencySymbol","wide","LABEL_AMENITIES","highlight","_ref3","Amenity","includes","label","action","textOthers","LABEL_OTHERS","_ref4","underline","ACTION_VIEW_MORE","bedTypes","LABEL_BED_TYPE","bedType","icon","ICON","BED_SINGLE","BED_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BED_TYPE_DOUBLE","sizes","LABEL_ROOM_SIZE","sizeUnit","sizeRange","footer","spaceBetween","transparent","ACTION_CLEAR_ALL","disabled","LABEL_SHOW_COUNT_RESULTS","LABEL_NO_EXACT_MATCHES","count","exports","displayName","propTypes","PropTypes","bool","string","arrayOf","shape","func"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencySymbol, useLocale } from '@mirai/locale';\nimport { Action, Button, Modal, ScrollView, styles, useDevice, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { InputRange } from './components';\nimport { Amenity } from './Filters.Amenity';\nimport { BookingOption } from './Filters.BookingOption';\nimport { Button as ButtonFilters } from './Filters.Button';\nimport { BOOKING_OPTIONS, DEFAULT_FORM, MAX_BOARDS } from './Filters.constants';\nimport { L10N } from './Filters.l10n';\nimport * as style from './Filters.module.css';\nimport { countFilters, getAvailableFilters, getStrictSearch } from './helpers';\nimport { EVENT, ICON } from '../../../helpers';\nimport { fetchRates, select } from '../../helpers';\nimport { Option } from '../Item/components';\n\nlet memoizeForm;\n\nconst Filters = ({ clubConditions, items: propItems = [], onSubmit = () => {}, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: {\n currency,\n club = {},\n finder = {},\n hotel,\n id,\n locale,\n occupation: { maxRooms } = {},\n session,\n urlParams: { idoffers, roomTypeId },\n } = {},\n } = useStore();\n\n const { discount } = club;\n const { promocode } = finder;\n\n const [allAmenities, setAllAmenities] = useState(false);\n const [busy, setBusy] = useState(false);\n const [counter, setCounter] = useState(0);\n const [filters, setFilters] = useState(getAvailableFilters(propItems));\n const [form, setForm] = useState(DEFAULT_FORM);\n const [items, setItems] = useState(propItems);\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const nextForm = memoizeForm || {\n ...DEFAULT_FORM,\n clubDiscount: !session && discount !== undefined ? !!discount : undefined,\n offer: idoffers ? !!idoffers : undefined,\n promocode: promocode ? !!promocode : undefined,\n roomType: roomTypeId ? !!roomTypeId : undefined,\n };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!form.priceRange) return;\n const nextForm = { ...form, priceRange: undefined };\n\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currency]);\n\n useEffect(() => {\n const callback = (clubDiscount) => {\n const nextForm = { ...form, clubDiscount };\n setForm(nextForm);\n setCounter(countFilters(nextForm));\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n }, [form]);\n\n useEffect(() => {\n const nextFilters = getAvailableFilters(propItems);\n setItems(propItems);\n\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleAmenity = (id, value) =>\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n\n const handleOption = (field, id) => setForm({ ...form, [field]: form[field] === id ? undefined : id });\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n if (field !== 'freeCancellation') await fetch(next);\n };\n\n const handleClearAll = () => {\n const { clubDiscount, offer, promocode, roomType } = form || {};\n setAllAmenities(false);\n setForm(DEFAULT_FORM);\n\n (clubDiscount || offer || promocode || roomType) && fetch(DEFAULT_FORM);\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n setCounter(countFilters(form));\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n };\n\n const fetch = async (next) => {\n setBusy(true);\n\n const { clubDiscount } = next;\n const strictSearch = getStrictSearch(next);\n const cart = []; // ! TODO: [MF-2006] Store should get the current cart of <Rates>\n const params = { cart, club, clubDiscount, finder, hotel, id, locale, maxRooms, session, strictSearch };\n const { items: nextItems } = (await fetchRates(params).catch(() => {})) || {};\n setItems(nextItems);\n if (nextItems) setFilters(getAvailableFilters(nextItems));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount || clubConditions !== undefined) && !session,\n freeCancellation: true || !!filters.freeCancellation, // * We'll activate freeCancellation filter always.\n offer: !!idoffers,\n promocode: !!promocode,\n roomType: !!roomTypeId,\n };\n\n const filteredItems = select(items, form).filter(({ availability = 0 } = {}) => availability > 0);\n const { length: boardsLength } = filters.boards;\n const inlineBoards = !isMobile || (isMobile && boardsLength <= MAX_BOARDS - 1);\n const { name: roomTypeName } = items.find(({ id } = {}) => id === parseInt(roomTypeId)) || {};\n\n return (\n <>\n <ButtonFilters {...{ counter }} onPress={() => setVisible(true)} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={() => setVisible(false)}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollTo={0} snap={false} className={style.scrollView}>\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_BOOKING_OPTIONS)}\n </Text>\n\n {has.clubDiscount && (\n <BookingOption\n caption={\n clubConditions\n ? translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action small href={clubConditions} target=\"_blank\" className={style.textInline}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })\n : translate(L10N.LABEL_CLUB_BENEFITS)\n }\n checked={form.clubDiscount}\n club={club.name}\n field=\"clubDiscount\"\n title={L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE}\n onChange={handleBookingOption}\n />\n )}\n\n {BOOKING_OPTIONS.filter(({ field } = {}) => has[field]).map(({ field, title } = {}) => (\n <BookingOption\n key={field}\n checked={form[field]}\n {...{ field, title, roomName: roomTypeName, promocode: promocode?.toUpperCase() }}\n onChange={handleBookingOption}\n />\n ))}\n </View>\n\n {boardsLength > 1 && (\n <View className={style.section}>\n <Text bold headline>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n <View row={inlineBoards} className={styles(style.boards, inlineBoards && style.inline)}>\n {filters.boards.map(({ id, text }) => (\n <Option\n checked={form.board === text}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', text)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(L10N.LABEL_SET_PRICE_RANGE)}\n dataSource={filters.prices}\n resolution={isMobile ? 12 : 24}\n title={translate(L10N.LABEL_PRICE_RANGE)}\n unit={currencySymbol(currency, { locale })}\n value={form.priceRange}\n onChange={(priceRange) => setForm({ ...form, priceRange })}\n className={style.section}\n />\n )}\n\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_AMENITIES)}\n </Text>\n\n <View>\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n\n {allAmenities ? (\n <>\n <Text action bold wide className={style.textOthers}>\n {translate(L10N.LABEL_OTHERS)}\n </Text>\n\n <View row className={style.amenities}>\n {filters.amenities\n .filter((item) => !item.highlight)\n .map(({ id, text }) => (\n <Amenity\n checked={form.amenities.includes(id)}\n id={id}\n key={id}\n label={text}\n onChange={handleAmenity}\n />\n ))}\n </View>\n </>\n ) : (\n <Action underline onPress={() => setAllAmenities(true)}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Action>\n )}\n </View>\n </View>\n\n {filters.bedTypes.length > 1 && (\n <View className={style.section}>\n <Text bold headline wide>\n {translate(L10N.LABEL_BED_TYPE)}\n </Text>\n\n <View row>\n {filters.bedTypes.map((bedType) => (\n <Option\n key={`bedType:${bedType}`}\n checked={form.bedType === bedType}\n icon={bedType === 1 ? ICON.BED_SINGLE : ICON.BED_DOUBLE}\n inline\n outlined\n title={translate(bedType === 1 ? L10N.LABEL_BED_TYPE_SINGLE : L10N.LABEL_BED_TYPE_DOUBLE)}\n onPress={() => handleOption('bedType', bedType)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.sizes.length > 1 && (\n <InputRange\n dataSource={filters.sizes}\n resolution={isMobile ? 4 : 6}\n title={translate(L10N.LABEL_ROOM_SIZE)}\n unit={filters.sizeUnit}\n value={form.sizeRange}\n onChange={(sizeRange) => setForm({ ...form, sizeRange })}\n className={style.section}\n />\n )}\n </ScrollView>\n\n <View row className={[style.footer, style.spaceBetween]}>\n <Button transparent onPress={handleClearAll}>\n {translate(L10N.ACTION_CLEAR_ALL)}\n </Button>\n <Button busy={busy} disabled={!filteredItems.length} onPress={handleSubmit}>\n {translate(filteredItems.length ? L10N.LABEL_SHOW_COUNT_RESULTS : L10N.LABEL_NO_EXACT_MATCHES, {\n count: filteredItems.length,\n })}\n </Button>\n </View>\n </Modal>\n </>\n );\n};\n\nFilters.displayName = 'Mirai:Core:Rates:Filters';\n\nFilters.propTypes = {\n clubDiscount: PropTypes.bool,\n clubConditions: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({})),\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ const getStrictSearch = function () {
|
|
|
10
10
|
promocode,
|
|
11
11
|
roomType
|
|
12
12
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
13
|
-
return offer === true || promocode === true || roomType === true
|
|
13
|
+
return offer === true || promocode === true || roomType === true;
|
|
14
14
|
};
|
|
15
15
|
exports.getStrictSearch = getStrictSearch;
|
|
16
16
|
//# sourceMappingURL=getStrictSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStrictSearch.js","names":["getStrictSearch","offer","promocode","roomType","arguments","length","undefined","exports"],"sources":["../../../../../../src/components/Rates/components/Filters/helpers/getStrictSearch.js"],"sourcesContent":["export const getStrictSearch = ({ offer, promocode, roomType } = {}) =>\n offer === true || promocode === true || roomType === true
|
|
1
|
+
{"version":3,"file":"getStrictSearch.js","names":["getStrictSearch","offer","promocode","roomType","arguments","length","undefined","exports"],"sources":["../../../../../../src/components/Rates/components/Filters/helpers/getStrictSearch.js"],"sourcesContent":["export const getStrictSearch = ({ offer, promocode, roomType } = {}) =>\n offer === true || promocode === true || roomType === true;\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAG,SAAAA,CAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OACjEH,KAAK,KAAK,IAAI,IAAIC,SAAS,KAAK,IAAI,IAAIC,QAAQ,KAAK,IAAI;AAAA;AAACI,OAAA,CAAAP,eAAA,GAAAA,eAAA"}
|
|
@@ -69,7 +69,7 @@ const consolidateStore = async function () {
|
|
|
69
69
|
} = (0, _getLocale.getLocale)(instance, urlParams);
|
|
70
70
|
|
|
71
71
|
// -- currency -------------------------------------------------------------------------------------------------------
|
|
72
|
-
const currency =
|
|
72
|
+
const currency = urlParams.currency || instance.currency || (type === _Core.TYPE.HOTEL && !IS_JEST ? await (0, _fetchCurrency.fetchCurrency)(id) : _locale.DEFAULT_CURRENCY);
|
|
73
73
|
|
|
74
74
|
// -- club -----------------------------------------------------------------------------------------------------------
|
|
75
75
|
let club;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getLocale","_getMetaRates","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","forceUri","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","club","banner","discount","discountEnabled","rates","variants","active","authentication","idClub","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","CHAIN","variantDiscount","variantRates","find","toString","url","filter","map","enabled","accommodationType","getAccommodationType","lodgingDenomination","features","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","Object","entries","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","COMMISSION_TYPE","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","parseDate","UTC","checkout","parseInt","promo","showPromoNav","configPromo","promoText","place","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","promocode","code","host","document","protocol","isDevelopment","NODE_ENV","forwarder","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","reduce","_ref2","props","deals","lisa","meta","getMetaRates","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, COMMISSION_TYPE, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { forceUri = false, miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n (forceUri ? urlParams.currency : undefined) ||\n cookies.currency ||\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- club -----------------------------------------------------------------------------------------------------------\n let club;\n if (config.club) {\n let {\n accomodation: { club: { banner, discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { active, authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let discount;\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n discount = applyClubDiscount;\n if (discount === undefined) {\n discount = rates;\n if (type === TYPE.CHAIN) {\n let { discount: variantDiscount, rates: variantRates } =\n variants.find(({ id = '' } = {}) => id.toString() === idHotel.toString()) || {};\n discountEnabled = variantDiscount || discountEnabled;\n discount = variantRates || rates;\n }\n }\n\n club = {\n active,\n authentication,\n banner,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: variants\n .filter(({ club } = {}) => club)\n .map(({ club: { discount: enabled, rates: active } = {}, id } = {}) => ({ active, enabled, id })),\n };\n }\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || COMMISSION_TYPE[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (chainSelectorValue && tags) {\n place = tags.options.find(({ value } = {}) => value === Number(chainSelectorValue));\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation || undefined,\n promocode: clientCode || promo?.code || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development';\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club,\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n promo,\n session,\n tags,\n // -- components\n deals: undefined,\n finder,\n lisa: undefined, // ! TODO: Rename to chat\n rates: {\n meta: urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n },\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consolidateStore.js","names":["_dataSources","require","_locale","_fetchCurrency","_getAccommodationType","_getLocale","_getMetaRates","_getTags","_prepareRoom","_toOccupation","_Core","_process","_process$env","IS_JEST","process","env","JEST_WORKER_ID","consolidateStore","_config$accomodation","_config$accomodation2","_config$accomodation3","_config$accomodation4","_config$accomodation5","_config$accomodation6","_tags","_promo","_config$languages","components","config","cookies","instance","el","hotel","hotelId","id","type","session","urlParams","arguments","length","undefined","forceUri","miraiId","isRates","some","component","maxDays","maxNights","rangeMaxDays","nightsForDeal","rangeMinDays","prices","showPrices","pricesWithTaxes","pricesLegend","accomodation","calendar","TAXES","includes","TAX_DEFAULT","to","dateFormat","dateCalc","Date","CALENDAR_FORMAT","language","country","locale","getLocale","currency","TYPE","HOTEL","fetchCurrency","DEFAULT_CURRENCY","club","banner","discount","discountEnabled","rates","variants","active","authentication","idClub","name","conditionsUrl","conditions","privacyPolicyUrl","privacy","applyClubDiscount","idtokenprovider","idHotel","CHAIN","variantDiscount","variantRates","find","toString","url","filter","map","enabled","accommodationType","getAccommodationType","lodgingDenomination","features","home","window","location","origin","warningAvailability","minRoomsEngineNotification","hotels","Object","entries","_ref","key","occupation","dataSource","ADULT","min","age","CHILD","fulfill","maxRooms","rooms","maxOccupation","commissionCode","hsri","COMMISSION_TYPE","chainSelector","tags","placeHolder","trees","options","getTags","placeholder","storageFinder","Storage","adapter","LocalAdapter","get","concat","FINDER_STORAGE_KEY","chainSelectorValue","checkin","clientCode","nights","parties","parseDate","UTC","checkout","parseInt","promo","showPromoNav","configPromo","promoText","place","value","Number","finder","dateDiff","days","toOccupation","places","prepareRoom","promocode","code","host","document","protocol","isDevelopment","NODE_ENV","forwarder","SERVICE_BOOKING","booking","signup","SERVICE_USER","profile","locales","languages","COUNTRIES","reduce","_ref2","props","deals","lisa","meta","getMetaRates","exports"],"sources":["../../src/helpers/consolidateStore.js"],"sourcesContent":["import { LocalAdapter, Storage } from '@mirai/data-sources';\nimport { COUNTRIES, dateCalc, dateDiff, dateFormat, DEFAULT_CURRENCY, parseDate, UTC } from '@mirai/locale';\n\nimport { fetchCurrency } from './fetchCurrency';\nimport { getAccommodationType } from './getAccommodationType';\nimport { getLocale } from './getLocale';\nimport { getMetaRates } from './getMetaRates';\nimport { getTags } from './getTags';\nimport { prepareRoom } from './prepareRoom';\nimport { toOccupation } from './toOccupation';\nimport { CALENDAR_FORMAT, COMMISSION_TYPE, FINDER_STORAGE_KEY, TAX_DEFAULT, TAXES, TYPE } from '../Core.constants';\n\nconst IS_JEST = !!process?.env?.JEST_WORKER_ID;\n\n/* eslint-disable no-unused-vars */\nexport const consolidateStore = async ({\n components = [],\n config = {},\n cookies = {},\n instance: { el, hotel: hotelId, id, type, ...instance } = {},\n session,\n urlParams = {},\n} = {}) => {\n const { forceUri = false, miraiId } = urlParams;\n const isRates = components.some(({ component } = {}) => component === 'rates');\n\n // -- calendar -------------------------------------------------------------------------------------------------------\n const {\n maxDays = 365,\n maxNights: rangeMaxDays = 31,\n nightsForDeal: rangeMinDays,\n prices: showPrices = false,\n pricesWithTaxes: pricesLegend,\n } = config.accomodation?.calendar || {};\n const calendar = {\n rangeMaxDays,\n rangeMinDays,\n pricesLegend: TAXES.includes(pricesLegend) ? pricesLegend : showPrices ? TAX_DEFAULT : undefined,\n showPrices,\n to: !IS_JEST ? dateFormat(dateCalc(new Date(), maxDays, 'days'), CALENDAR_FORMAT) : undefined,\n };\n\n // -- language, country & locale -------------------------------------------------------------------------------------\n const { language, country, locale } = getLocale(instance, urlParams);\n\n // -- currency -------------------------------------------------------------------------------------------------------\n const currency =\n urlParams.currency ||\n instance.currency ||\n (type === TYPE.HOTEL && !IS_JEST ? await fetchCurrency(id) : DEFAULT_CURRENCY);\n\n // -- club -----------------------------------------------------------------------------------------------------------\n let club;\n if (config.club) {\n let {\n accomodation: { club: { banner, discount: discountEnabled = false, rates = false } = {}, variants = [] },\n club: {\n club: { active, authentication, idClub: id, name },\n conditionsUrl: conditions,\n privacyPolicyUrl: privacy,\n },\n } = config;\n\n let discount;\n let { applyClubDiscount, idtokenprovider: idHotel = '' } = urlParams;\n discount = applyClubDiscount;\n if (discount === undefined) {\n discount = rates;\n if (type === TYPE.CHAIN) {\n let { discount: variantDiscount, rates: variantRates } =\n variants.find(({ id = '' } = {}) => id.toString() === idHotel.toString()) || {};\n discountEnabled = variantDiscount || discountEnabled;\n discount = variantRates || rates;\n }\n }\n\n club = {\n active,\n authentication,\n banner,\n discount: active && discountEnabled ? discount : undefined,\n id,\n name,\n url: { conditions, privacy },\n variants: variants\n .filter(({ club } = {}) => club)\n .map(({ club: { discount: enabled, rates: active } = {}, id } = {}) => ({ active, enabled, id })),\n };\n }\n\n // -- hotel ----------------------------------------------------------------------------------------------------------\n const hotel = {\n accommodationType: getAccommodationType(config.lodgingDenomination, hotelId),\n features: config.accomodation?.features || {},\n id: type === TYPE.CHAIN ? urlParams.idtokenprovider || urlParams.idHotel || hotelId : id,\n url: urlParams.home || window.location.origin,\n warningAvailability: config.minRoomsEngineNotification,\n };\n\n if (type === TYPE.CHAIN) {\n const { hotels = {} } = config;\n hotel.variants = {};\n\n Object.entries(hotels).map(([key, { lodgingDenomination: accommodationType }]) => {\n hotel.variants[key] = { accommodationType };\n });\n }\n\n // -- occupation -----------------------------------------------------------------------------------------------------\n const occupation = {\n dataSource: config.accomodation?.occupation || [\n { type: TYPE.ADULT, min: 1, age: [18] },\n { type: TYPE.CHILD, age: [0, 17], fulfill: true },\n ],\n maxRooms: config.accomodation?.rooms?.maxOccupation,\n variants: config.accomodation?.variants || [],\n };\n\n // -- origin ---------------------------------------------------------------------------------------------------------\n const origin = {\n commissionCode: urlParams.hsri || COMMISSION_TYPE[type],\n };\n\n // -- tags -----------------------------------------------------------------------------------------------------------\n const { chainSelector } = config;\n let tags;\n if (type === TYPE.CHAIN && chainSelector) {\n const { placeHolder = {}, trees = [] } = chainSelector;\n tags = { options: getTags(trees, language), placeholder: placeHolder[language] };\n }\n\n // -- finder ---------------------------------------------------------------------------------------------------------\n const storageFinder = !isRates ? new Storage({ adapter: LocalAdapter }).get(`${FINDER_STORAGE_KEY}:${id}`) || {} : {};\n\n let { chainSelectorValue, checkin, clientCode, nights = isRates ? 1 : 0, parties } = urlParams;\n checkin = checkin ? parseDate(checkin) : isRates ? UTC(new Date()) : undefined;\n let checkout;\n\n if (checkin) checkout = dateCalc(checkin, parseInt(nights), 'days');\n\n let promo;\n if (config.showPromoNav) {\n const { accomodation: { promo: configPromo = {} } = {}, promoText: placeholder = {} } = config;\n promo = { ...configPromo, placeholder };\n }\n\n let place;\n if (chainSelectorValue && tags) {\n place = tags.options.find(({ value } = {}) => value === Number(chainSelectorValue));\n\n const { id: [id] = [] } = place || {};\n const { accommodationType } = hotel.variants[id] || {};\n if (accommodationType) hotel.accommodationType = accommodationType;\n }\n\n let finder = {\n place: place || storageFinder.place,\n calendar: checkin\n ? [checkin, checkout]\n : storageFinder.calendar && dateDiff(new Date(), new Date(storageFinder.calendar[0])).days > -1\n ? [new Date(storageFinder.calendar[0]), new Date(storageFinder.calendar[1])]\n : [],\n occupation: parties\n ? toOccupation({ chainSelectorValue, occupation, parties, places: tags?.options })\n : isRates\n ? [prepareRoom(occupation.dataSource)]\n : storageFinder.occupation || undefined,\n promocode: clientCode || promo?.code || storageFinder.promocode,\n };\n\n // -- forwarder ------------------------------------------------------------------------------------------------------\n const host = `${document.location.protocol}//${document.location.host}`;\n const isDevelopment = process.env.NODE_ENV === 'development';\n const forwarder = {\n rates: miraiId ? `${host}/step1-rates` : `${process.env.SERVICE_BOOKING}/miraiFrontDispatcher.htm`,\n checkout: miraiId ? `${host}/step2-checkout` : `${process.env.SERVICE_BOOKING}/forwarder_client_form.htm`,\n booking: miraiId ? `${host}/step3-booking` : `${process.env.SERVICE_BOOKING}/forwarder_manage_reservation.htm`,\n signup:\n miraiId || isDevelopment\n ? `${host}/signup`\n : `${process.env.SERVICE_USER}/club/v1/forwarder/registration_process`,\n profile:\n miraiId || isDevelopment ? `${host}/profile` : `${process.env.SERVICE_USER}/club/v1/forwarder/members_area`,\n };\n\n return {\n config,\n cookies,\n urlParams,\n ...instance,\n id,\n type,\n\n // region\n currency,\n language,\n country,\n locale,\n locales: config.languages\n ?.map((language) => (language === 'no' ? 'nb' : language))\n .map((language) => `${language}-${COUNTRIES[language]}`),\n\n // entities,\n calendar,\n club,\n components: components.reduce((value, { component, ...props }) => {\n value[component] = props;\n return value;\n }, {}),\n forwarder,\n hotel,\n occupation,\n origin,\n promo,\n session,\n tags,\n // -- components\n deals: undefined,\n finder,\n lisa: undefined, // ! TODO: Rename to chat\n rates: {\n meta: urlParams.rates ? getMetaRates(urlParams.rates) : undefined,\n },\n signup: undefined,\n };\n};\n"],"mappings":"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"}
|