@mirai/core 0.3.406 → 0.3.408
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/Finder/workflows/occupation.workflow.js +16 -2
- package/__tests__/Rates/__mocks__/extras-one-success.json +138 -0
- package/__tests__/Rates/__mocks__/extras-success.json +397 -0
- package/__tests__/Rates/workflows/extras.js +9 -0
- package/__tests__/Rates/workflows/extrasExpect.js +11 -0
- package/__tests__/Rates/workflows/index.js +4 -0
- package/__tests__/Rates/workflows/multiroom.js +26 -0
- package/__tests__/Rates/workflows/rates.js +9 -0
- package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-one-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/Desktop/Search-multiroom-with-some-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-one-extras-1.png +0 -0
- package/__tests__/__screenshots__/rates.spec.jsx/iPhone-12/Search-multiroom-with-some-extras-1.png +0 -0
- package/__tests__/finder.spec.js +10 -0
- package/__tests__/rates.spec.jsx +31 -12
- package/build/components/Rates/Rates.Footer.js +5 -1
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/Rates.Header.js +12 -10
- package/build/components/Rates/Rates.Header.js.map +1 -1
- package/build/components/Rates/Rates.js +23 -7
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/__tests__/__snapshots__/Rates.test.js.snap +70 -59
- package/build/components/Rates/components/Filters/Filters.js +15 -5
- package/build/components/Rates/components/Filters/Filters.js.map +1 -1
- package/build/components/Rates/components/Filters/Filters.l10n.js +3 -0
- package/build/components/Rates/components/Filters/Filters.l10n.js.map +1 -1
- package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js +4 -1
- package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +5 -5
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Summary.js +14 -7
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
- package/build/components/Rates/components/Item/Item.js +3 -2
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.l10n.js +3 -0
- package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
- package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.module.css +2 -2
- package/build/components/Rates/components/ModalExtras/ModalExtras.js +7 -2
- package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
- package/build/components/Rates/helpers/select.js +7 -1
- package/build/components/Rates/helpers/select.js.map +1 -1
- package/build/contexts/PerfomanceManager/PerfomanceManager.js +1 -1
- package/build/contexts/PerfomanceManager/PerfomanceManager.js.map +1 -1
- package/package.json +1 -1
- package/playwright.config.js +1 -0
- package/public/routes/Step1-Rates.jsx +1 -1
|
@@ -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","timeoutRange","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","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","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","scrollIndicator","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","type","Option","board","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;\nlet timeoutRange;\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 if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems);\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(() => {\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n }, 500);\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\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 Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\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 !== undefined || 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={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} 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, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\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={(value) => handleRange('priceRange', value)}\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={(value) => handleRange('sizeRange', value)}\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","timeoutRange","Filters","_ref","clubConditions","items","propItems","priceFactor","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","JSON","stringify","nextFilters","handleModal","next","publish","METRICS","handleAmenity","amenities","filter","item","amenity","handleOption","field","concat","handleRange","clearTimeout","setTimeout","handleBookingOption","fetch","handleClearAll","handleSubmit","nextCounter","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","scrollIndicator","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","type","Option","board","outlined","option","prices","InputRange","LABEL_SET_PRICE_RANGE","LABEL_NIGHTLY_PRICES","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","number","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;\nlet timeoutRange;\n\nconst Filters = ({ clubConditions, items: propItems = [], priceFactor = 1, 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, { priceFactor }));\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 if (JSON.stringify(propItems) !== JSON.stringify(items)) setItems(propItems);\n\n const nextFilters = getAvailableFilters(propItems, { priceFactor });\n if (JSON.stringify(nextFilters) !== JSON.stringify(filters)) setFilters(nextFilters);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propItems]);\n\n const handleModal = () => {\n let next = !visible;\n\n setVisible(next);\n if (next) Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS', counter });\n };\n\n const handleAmenity = (id, value) => {\n setForm({ ...form, amenities: value ? [...form.amenities, id] : form.amenities.filter((item) => item !== id) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:AMENITY', amenity: id, value });\n };\n\n const handleOption = (field, id) => {\n setForm({ ...form, [field]: form[field] === id ? undefined : id });\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}` });\n };\n\n const handleRange = (field, value) => {\n setForm({ ...form, [field]: value });\n\n clearTimeout(timeoutRange);\n timeoutRange = setTimeout(() => {\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\n }, 500);\n };\n\n const handleBookingOption = async (field, value) => {\n const next = { ...form, [field]: value };\n setForm(next);\n\n Event.publish(EVENT.METRICS, { id: `RATES:FILTERS:${field}`, value });\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 Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:CLEAR_ALL' });\n };\n\n const handleSubmit = () => {\n memoizeForm = form;\n setVisible(false);\n const nextCounter = countFilters(form);\n setCounter(nextCounter);\n onSubmit({ ...form, strictSearch: getStrictSearch(form) });\n Event.publish(EVENT.METRICS, { id: 'RATES:FILTERS:SUBMIT', counter: nextCounter });\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, { priceFactor }));\n\n setBusy(false);\n };\n\n const has = {\n clubDiscount: (discount !== undefined || 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, { priceFactor }).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={handleModal} />\n\n <Modal\n fit\n portal\n title={translate(L10N.LABEL_FILTERS)}\n visible={visible}\n onClose={handleModal}\n className={[style.modal, others.className]}\n >\n <ScrollView scrollIndicator scrollTo={visible ? 0.5 : undefined} 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, type }) => (\n <Option\n checked={form.board === type}\n key={`board:${id}`}\n inline={inlineBoards}\n outlined\n title={text}\n onPress={() => handleOption('board', type)}\n className={style.option}\n />\n ))}\n </View>\n </View>\n )}\n\n {filters.prices.length > 1 && (\n <InputRange\n caption={translate(priceFactor === 1 ? L10N.LABEL_SET_PRICE_RANGE : L10N.LABEL_NIGHTLY_PRICES)}\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={(value) => handleRange('priceRange', value)}\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={(value) => handleRange('sizeRange', value)}\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 priceFactor: PropTypes.number,\n onSubmit: PropTypes.func,\n};\n\nexport { Filters };\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.l10n.js","names":["L10N","exports","ACTION_CLEAR_ALL","id","ACTION_CLUB_VIEW_CONDITIONS","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_AMENITIES","LABEL_BED_TYPE","LABEL_BED_TYPE_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BOOKING_OPTIONS","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_CLUB_BENEFITS","LABEL_CLUB_CONDITIONS","LABEL_FREE_CANCELLATION","LABEL_FILTERS","LABEL_NO_EXACT_MATCHES","LABEL_OTHERS","LABEL_PRICE_RANGE","LABEL_ROOM_SIZE","LABEL_SET_PRICE_RANGE","LABEL_SHOW_COUNT_RESULTS","LABEL_SHOW_ONLY_DEALS","LABEL_SHOW_ONLY_PROMOTION","LABEL_SHOW_ONLY_ROOM"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_CLEAR_ALL: { id: 'common.action.clear_all' },\n ACTION_CLUB_VIEW_CONDITIONS: { id: 'finder.action.club_view_conditions' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_AMENITIES: { id: 'finder.label.amenities' },\n LABEL_BED_TYPE: { id: 'finder.label.bed_type' },\n LABEL_BED_TYPE_DOUBLE: { id: 'finder.label.bed_type_double' },\n LABEL_BED_TYPE_SINGLE: { id: 'finder.label.bed_type_single' },\n LABEL_BOOKING_OPTIONS: { id: 'finder.label.booking_options' },\n LABEL_CLUB_MEMBERS_EXCLUSIVE: { id: 'finder.label.club_members_exclusive' },\n LABEL_CLUB_BENEFITS: { id: 'finder.label.club_benefits' },\n LABEL_CLUB_CONDITIONS: { id: 'finder.label.club_conditions' },\n LABEL_FREE_CANCELLATION: { id: 'finder.label.free_cancellation' },\n LABEL_FILTERS: { id: 'common.label.filters' },\n LABEL_NO_EXACT_MATCHES: { id: 'finder.label.no_exact_matches' },\n LABEL_OTHERS: { id: 'common.label.others' },\n LABEL_PRICE_RANGE: { id: 'finder.label.price_range' },\n LABEL_ROOM_SIZE: { id: 'common.label.room_size' },\n LABEL_SET_PRICE_RANGE: { id: 'finder.label.set_price_range' },\n LABEL_SHOW_COUNT_RESULTS: { id: 'finder.label.show_count_results' },\n LABEL_SHOW_ONLY_DEALS: { id: 'common.label.show_only_deals' },\n LABEL_SHOW_ONLY_PROMOTION: { id: 'common.label.show_only_promotion' },\n LABEL_SHOW_ONLY_ROOM: { id: 'common.label.show_only_room' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,2BAA2B,EAAE;IAAED,EAAE,EAAE;EAAqC,CAAC;EACzEE,gBAAgB,EAAE;IAAEF,EAAE,EAAE;EAA0B,CAAC;EAEnDG,wBAAwB,EAAE;IAAEH,EAAE,EAAE;EAAkC,CAAC;EACnEI,eAAe,EAAE;IAAEJ,EAAE,EAAE;EAAyB,CAAC;EACjDK,cAAc,EAAE;IAAEL,EAAE,EAAE;EAAwB,CAAC;EAC/CM,qBAAqB,EAAE;IAAEN,EAAE,EAAE;EAA+B,CAAC;EAC7DO,qBAAqB,EAAE;IAAEP,EAAE,EAAE;EAA+B,CAAC;EAC7DQ,qBAAqB,EAAE;IAAER,EAAE,EAAE;EAA+B,CAAC;EAC7DS,4BAA4B,EAAE;IAAET,EAAE,EAAE;EAAsC,CAAC;EAC3EU,mBAAmB,EAAE;IAAEV,EAAE,EAAE;EAA6B,CAAC;EACzDW,qBAAqB,EAAE;IAAEX,EAAE,EAAE;EAA+B,CAAC;EAC7DY,uBAAuB,EAAE;IAAEZ,EAAE,EAAE;EAAiC,CAAC;EACjEa,aAAa,EAAE;IAAEb,EAAE,EAAE;EAAuB,CAAC;EAC7Cc,
|
|
1
|
+
{"version":3,"file":"Filters.l10n.js","names":["L10N","exports","ACTION_CLEAR_ALL","id","ACTION_CLUB_VIEW_CONDITIONS","ACTION_VIEW_MORE","LABEL_ACCOMMODATION_PLAN","LABEL_AMENITIES","LABEL_BED_TYPE","LABEL_BED_TYPE_DOUBLE","LABEL_BED_TYPE_SINGLE","LABEL_BOOKING_OPTIONS","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_CLUB_BENEFITS","LABEL_CLUB_CONDITIONS","LABEL_FREE_CANCELLATION","LABEL_FILTERS","LABEL_NIGHTLY_PRICES","LABEL_NO_EXACT_MATCHES","LABEL_OTHERS","LABEL_PRICE_RANGE","LABEL_ROOM_SIZE","LABEL_SET_PRICE_RANGE","LABEL_SHOW_COUNT_RESULTS","LABEL_SHOW_ONLY_DEALS","LABEL_SHOW_ONLY_PROMOTION","LABEL_SHOW_ONLY_ROOM"],"sources":["../../../../../src/components/Rates/components/Filters/Filters.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_CLEAR_ALL: { id: 'common.action.clear_all' },\n ACTION_CLUB_VIEW_CONDITIONS: { id: 'finder.action.club_view_conditions' },\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n\n LABEL_ACCOMMODATION_PLAN: { id: 'finder.label.accommodation_plan' },\n LABEL_AMENITIES: { id: 'finder.label.amenities' },\n LABEL_BED_TYPE: { id: 'finder.label.bed_type' },\n LABEL_BED_TYPE_DOUBLE: { id: 'finder.label.bed_type_double' },\n LABEL_BED_TYPE_SINGLE: { id: 'finder.label.bed_type_single' },\n LABEL_BOOKING_OPTIONS: { id: 'finder.label.booking_options' },\n LABEL_CLUB_MEMBERS_EXCLUSIVE: { id: 'finder.label.club_members_exclusive' },\n LABEL_CLUB_BENEFITS: { id: 'finder.label.club_benefits' },\n LABEL_CLUB_CONDITIONS: { id: 'finder.label.club_conditions' },\n LABEL_FREE_CANCELLATION: { id: 'finder.label.free_cancellation' },\n LABEL_FILTERS: { id: 'common.label.filters' },\n LABEL_NIGHTLY_PRICES: { id: 'common.label.nightly_prices' },\n LABEL_NO_EXACT_MATCHES: { id: 'finder.label.no_exact_matches' },\n LABEL_OTHERS: { id: 'common.label.others' },\n LABEL_PRICE_RANGE: { id: 'finder.label.price_range' },\n LABEL_ROOM_SIZE: { id: 'common.label.room_size' },\n LABEL_SET_PRICE_RANGE: { id: 'finder.label.set_price_range' },\n LABEL_SHOW_COUNT_RESULTS: { id: 'finder.label.show_count_results' },\n LABEL_SHOW_ONLY_DEALS: { id: 'common.label.show_only_deals' },\n LABEL_SHOW_ONLY_PROMOTION: { id: 'common.label.show_only_promotion' },\n LABEL_SHOW_ONLY_ROOM: { id: 'common.label.show_only_room' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,2BAA2B,EAAE;IAAED,EAAE,EAAE;EAAqC,CAAC;EACzEE,gBAAgB,EAAE;IAAEF,EAAE,EAAE;EAA0B,CAAC;EAEnDG,wBAAwB,EAAE;IAAEH,EAAE,EAAE;EAAkC,CAAC;EACnEI,eAAe,EAAE;IAAEJ,EAAE,EAAE;EAAyB,CAAC;EACjDK,cAAc,EAAE;IAAEL,EAAE,EAAE;EAAwB,CAAC;EAC/CM,qBAAqB,EAAE;IAAEN,EAAE,EAAE;EAA+B,CAAC;EAC7DO,qBAAqB,EAAE;IAAEP,EAAE,EAAE;EAA+B,CAAC;EAC7DQ,qBAAqB,EAAE;IAAER,EAAE,EAAE;EAA+B,CAAC;EAC7DS,4BAA4B,EAAE;IAAET,EAAE,EAAE;EAAsC,CAAC;EAC3EU,mBAAmB,EAAE;IAAEV,EAAE,EAAE;EAA6B,CAAC;EACzDW,qBAAqB,EAAE;IAAEX,EAAE,EAAE;EAA+B,CAAC;EAC7DY,uBAAuB,EAAE;IAAEZ,EAAE,EAAE;EAAiC,CAAC;EACjEa,aAAa,EAAE;IAAEb,EAAE,EAAE;EAAuB,CAAC;EAC7Cc,oBAAoB,EAAE;IAAEd,EAAE,EAAE;EAA8B,CAAC;EAC3De,sBAAsB,EAAE;IAAEf,EAAE,EAAE;EAAgC,CAAC;EAC/DgB,YAAY,EAAE;IAAEhB,EAAE,EAAE;EAAsB,CAAC;EAC3CiB,iBAAiB,EAAE;IAAEjB,EAAE,EAAE;EAA2B,CAAC;EACrDkB,eAAe,EAAE;IAAElB,EAAE,EAAE;EAAyB,CAAC;EACjDmB,qBAAqB,EAAE;IAAEnB,EAAE,EAAE;EAA+B,CAAC;EAC7DoB,wBAAwB,EAAE;IAAEpB,EAAE,EAAE;EAAkC,CAAC;EACnEqB,qBAAqB,EAAE;IAAErB,EAAE,EAAE;EAA+B,CAAC;EAC7DsB,yBAAyB,EAAE;IAAEtB,EAAE,EAAE;EAAmC,CAAC;EACrEuB,oBAAoB,EAAE;IAAEvB,EAAE,EAAE;EAA8B;AAC5D,CAAC"}
|
|
@@ -8,6 +8,9 @@ var _Rates = require("../../../Rates.constants");
|
|
|
8
8
|
var _Filters = require("../Filters.constants");
|
|
9
9
|
const getAvailableFilters = function () {
|
|
10
10
|
let items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
11
|
+
let {
|
|
12
|
+
priceFactor = 1
|
|
13
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
11
14
|
const filters = {
|
|
12
15
|
amenities: [],
|
|
13
16
|
bedTypes: [],
|
|
@@ -61,7 +64,7 @@ const getAvailableFilters = function () {
|
|
|
61
64
|
text,
|
|
62
65
|
type
|
|
63
66
|
});
|
|
64
|
-
filters.prices.push(price);
|
|
67
|
+
filters.prices.push(price / priceFactor);
|
|
65
68
|
});
|
|
66
69
|
const [firstFreeCancellation] = !filters.freeCancellation ? cancellations.filter(_ref => {
|
|
67
70
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAvailableFilters.js","names":["_Rates","require","_Filters","getAvailableFilters","items","arguments","length","undefined","filters","amenities","bedTypes","boards","freeCancellation","prices","sizes","sizeUnit","forEach","cancellations","size","rawSize","highlight","id","text","find","item","push","name","type","price","firstFreeCancellation","filter","_ref","toLowerCase","includes","FREE_CANCELLATION","title","caption","unit","split","parseInt","some","_ref2","index","MAX_AMENITIES","sort","a","b","MIN_BOARDS","MAX_BOARDS","slice","exports"],"sources":["../../../../../../src/components/Rates/components/Filters/helpers/getAvailableFilters.js"],"sourcesContent":["import { FREE_CANCELLATION } from '../../../Rates.constants';\nimport { MAX_AMENITIES, MAX_BOARDS, MIN_BOARDS } from '../Filters.constants';\n\nexport const getAvailableFilters = (items = []) => {\n const filters = {\n amenities: [],\n bedTypes: [],\n boards: [],\n freeCancellation: undefined,\n prices: [],\n sizes: [],\n sizeUnit: undefined,\n };\n\n // ! TODO: Should order by price asc?\n items.forEach(({ amenities = [], bedTypes = [], boards = [], cancellations = [], size: rawSize = '' } = {}) => {\n amenities.forEach(({ highlight, id, text } = {}) => {\n if (!filters.amenities.find((item = {}) => item.id === id)) filters.amenities.push({ highlight, id, text });\n });\n\n bedTypes.forEach((id = []) => {\n if (!filters.bedTypes.find((item) => item === id)) filters.bedTypes.push(id);\n });\n\n boards.forEach(({ id, name: text, type, price } = {}) => {\n if (!filters.boards.find((item = {}) => item.type === type)) filters.boards.push({ id, text, type });\n\n filters.prices.push(price);\n });\n\n const [firstFreeCancellation] = !filters.freeCancellation\n ? cancellations.filter(({ id }) => id.toLowerCase().includes(FREE_CANCELLATION))\n : [];\n\n if (firstFreeCancellation) {\n const { id, name: text, title: caption } = firstFreeCancellation;\n filters.freeCancellation = { id, text, caption };\n }\n\n const [size, unit] = rawSize.split(' ');\n if (size.length > 0 && !filters.sizes.find((item = {}) => item.size === parseInt(size))) {\n if (unit && !filters.sizeUnit) filters.sizeUnit = unit;\n filters.sizes.push(parseInt(size));\n }\n });\n\n // Clean filters\n if (!filters.amenities.some(({ highlight }) => highlight)) {\n filters.amenities.forEach((filter = {}, index) => {\n filters.amenities[index] = { ...filter, highlight: index < MAX_AMENITIES };\n });\n }\n\n filters.bedTypes = filters.bedTypes.sort((a, b) => a - b);\n\n if (filters.boards.length < MIN_BOARDS) filters.boards = [];\n else if (filters.boards.length > MAX_BOARDS) filters.boards = filters.boards.slice(0, MAX_BOARDS);\n\n return filters;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,mBAAmB,GAAG,SAAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"getAvailableFilters.js","names":["_Rates","require","_Filters","getAvailableFilters","items","arguments","length","undefined","priceFactor","filters","amenities","bedTypes","boards","freeCancellation","prices","sizes","sizeUnit","forEach","cancellations","size","rawSize","highlight","id","text","find","item","push","name","type","price","firstFreeCancellation","filter","_ref","toLowerCase","includes","FREE_CANCELLATION","title","caption","unit","split","parseInt","some","_ref2","index","MAX_AMENITIES","sort","a","b","MIN_BOARDS","MAX_BOARDS","slice","exports"],"sources":["../../../../../../src/components/Rates/components/Filters/helpers/getAvailableFilters.js"],"sourcesContent":["import { FREE_CANCELLATION } from '../../../Rates.constants';\nimport { MAX_AMENITIES, MAX_BOARDS, MIN_BOARDS } from '../Filters.constants';\n\nexport const getAvailableFilters = (items = [], { priceFactor = 1 } = {}) => {\n const filters = {\n amenities: [],\n bedTypes: [],\n boards: [],\n freeCancellation: undefined,\n prices: [],\n sizes: [],\n sizeUnit: undefined,\n };\n\n // ! TODO: Should order by price asc?\n items.forEach(({ amenities = [], bedTypes = [], boards = [], cancellations = [], size: rawSize = '' } = {}) => {\n amenities.forEach(({ highlight, id, text } = {}) => {\n if (!filters.amenities.find((item = {}) => item.id === id)) filters.amenities.push({ highlight, id, text });\n });\n\n bedTypes.forEach((id = []) => {\n if (!filters.bedTypes.find((item) => item === id)) filters.bedTypes.push(id);\n });\n\n boards.forEach(({ id, name: text, type, price } = {}) => {\n if (!filters.boards.find((item = {}) => item.type === type)) filters.boards.push({ id, text, type });\n\n filters.prices.push(price / priceFactor);\n });\n\n const [firstFreeCancellation] = !filters.freeCancellation\n ? cancellations.filter(({ id }) => id.toLowerCase().includes(FREE_CANCELLATION))\n : [];\n\n if (firstFreeCancellation) {\n const { id, name: text, title: caption } = firstFreeCancellation;\n filters.freeCancellation = { id, text, caption };\n }\n\n const [size, unit] = rawSize.split(' ');\n if (size.length > 0 && !filters.sizes.find((item = {}) => item.size === parseInt(size))) {\n if (unit && !filters.sizeUnit) filters.sizeUnit = unit;\n filters.sizes.push(parseInt(size));\n }\n });\n\n // Clean filters\n if (!filters.amenities.some(({ highlight }) => highlight)) {\n filters.amenities.forEach((filter = {}, index) => {\n filters.amenities[index] = { ...filter, highlight: index < MAX_AMENITIES };\n });\n }\n\n filters.bedTypes = filters.bedTypes.sort((a, b) => a - b);\n\n if (filters.boards.length < MIN_BOARDS) filters.boards = [];\n else if (filters.boards.length > MAX_BOARDS) filters.boards = filters.boards.slice(0, MAX_BOARDS);\n\n return filters;\n};\n"],"mappings":"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"}
|
|
@@ -32,9 +32,9 @@ const Rates = _ref => {
|
|
|
32
32
|
showOffersFirst = false,
|
|
33
33
|
showRateIncluded = false
|
|
34
34
|
} = {},
|
|
35
|
+
priceFactor = 1,
|
|
35
36
|
rates = [],
|
|
36
37
|
selectedBoard = {},
|
|
37
|
-
valueFactor = 1,
|
|
38
38
|
onBoard,
|
|
39
39
|
onCancellation,
|
|
40
40
|
onCancellationInfo,
|
|
@@ -107,7 +107,7 @@ const Rates = _ref => {
|
|
|
107
107
|
checked: id === cancellationId,
|
|
108
108
|
inline: has.inlineCancellations,
|
|
109
109
|
outlined: hideRadio,
|
|
110
|
-
value: !showOffersFirst ? price /
|
|
110
|
+
value: !showOffersFirst ? price / priceFactor : undefined,
|
|
111
111
|
onPress: () => onCancellation(id)
|
|
112
112
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
113
113
|
action: !isMobile,
|
|
@@ -189,7 +189,7 @@ const Rates = _ref => {
|
|
|
189
189
|
checked: id === rateId,
|
|
190
190
|
disabled: disabled,
|
|
191
191
|
outlined: hideRadio,
|
|
192
|
-
value: price /
|
|
192
|
+
value: price / priceFactor,
|
|
193
193
|
onPress: rates.length > 0 ? () => onRate({
|
|
194
194
|
id,
|
|
195
195
|
cancellationId
|
|
@@ -247,7 +247,7 @@ const Rates = _ref => {
|
|
|
247
247
|
inline: has.inlineBoards,
|
|
248
248
|
outlined: hideRadio,
|
|
249
249
|
title: name,
|
|
250
|
-
value: has.boards ? increment /
|
|
250
|
+
value: has.boards ? increment / priceFactor : undefined,
|
|
251
251
|
onPress: () => onBoard(board)
|
|
252
252
|
}, variants.length > 0 && /*#__PURE__*/_react.default.createElement(_components.TooltipDates, {
|
|
253
253
|
captions: variants.map(function () {
|
|
@@ -279,9 +279,9 @@ Rates.propTypes = {
|
|
|
279
279
|
showOffersFirst: _propTypes.default.bool,
|
|
280
280
|
showRateIncluded: _propTypes.default.bool
|
|
281
281
|
}),
|
|
282
|
+
priceFactor: _propTypes.default.number,
|
|
282
283
|
rates: _propTypes.default.arrayOf(_propTypes.default.any),
|
|
283
284
|
selectedBoard: _propTypes.default.shape({}),
|
|
284
|
-
valueFactor: _propTypes.default.number,
|
|
285
285
|
onBoard: _propTypes.default.func,
|
|
286
286
|
onCancellation: _propTypes.default.func,
|
|
287
287
|
onCancellationInfo: _propTypes.default.func,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_helpers2","_Rates","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Rates","_ref","availableBoards","availableRates","boards","cancellations","features","columnMode","hideRadio","highlightStandaloneOption","rowMode","showOffersFirst","showRateIncluded","rates","selectedBoard","valueFactor","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","useStore","cancellationId","rateId","id","boardId","length","filter","name","arguments","undefined","inlineBoards","inlineCancellations","rate","isClubRate","board","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","_ref2","map","_ref3","highlight","caption","price","cancellation","Option","key","checked","inline","outlined","onPress","medium","small","optionText","styles","tag","Pressable","Icon","paragraph","ICON","INFO","LABEL_OFFER","_ref4","countdown","description","disabled","included","restrictions","find","discount","breakdown","percentage","isClub","isPromocode","_ref5","type","DISCOUNT_TYPE","DEAL","PROMOTION","includes","discountPercentage","RateDetails","tags","DISCOUNT","toUpperCase","LABEL_DISCOUNT","concat","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","hideStandaloneBoard","number","func","onChange","displayName"],"sources":["../../../../../src/components/Rates/components/Item/Item.Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Option, RateDetails, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\nimport { isClubRate } from '../../helpers';\nimport { DISCOUNT_TYPE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n highlightStandaloneOption = false,\n rowMode,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n rates = [],\n selectedBoard = {},\n valueFactor = 1,\n onBoard,\n onCancellation,\n onCancellationInfo,\n onRate,\n onOfferInfo,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n\n const { value: { finder: { promocode } = {} } = {} } = useStore();\n\n const { cancellationId, rateId, id: boardId } = selectedBoard;\n\n const has = {\n cancellations: cancellations.length > 1 || highlightStandaloneOption,\n boards:\n (boards.length > 1 &&\n availableBoards.filter(({ name } = {}) => name === availableBoards[0].name).length !==\n availableBoards.length) ||\n highlightStandaloneOption,\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode || rowMode ? 3 : 2),\n inlineCancellations:\n hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode || rowMode ? 3 : 2),\n rates:\n cancellations.length !== availableRates.length ||\n highlightStandaloneOption ||\n availableRates.filter((rate) =>\n isClubRate({ board: availableBoards.filter(({ rateId } = {}) => rateId === rate.id)[0], rate }),\n ).length > 0,\n };\n\n const renderCancellations = () =>\n has.cancellations && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_CANCELLATION_POLICY)}\n </Text>\n\n {React.createElement(\n has.inlineCancellations ? View : React.Fragment,\n has.inlineCancellations ? { row: true, className: style.inlineOptions } : undefined,\n cancellations\n .filter(({ id }) => !showOffersFirst || (showOffersFirst && id === cancellationId))\n .map(({ highlight, id, name, caption, price, ...cancellation }) => (\n <Option\n key={id}\n caption={caption}\n checked={id === cancellationId}\n inline={has.inlineCancellations}\n outlined={hideRadio}\n value={!showOffersFirst ? price / valueFactor : undefined}\n onPress={() => onCancellation(id)}\n >\n <Text action={!isMobile} medium={highlight} small={isMobile} className={style.optionText}>\n {highlight ? (\n <Text\n action={!isMobile}\n medium={highlight}\n small={isMobile}\n className={styles(highlight && style.tag)}\n >\n {name}\n </Text>\n ) : (\n name\n )}\n\n <Pressable onPress={() => onCancellationInfo({ ...selectedBoard, cancellation })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n </Text>\n </Option>\n )),\n )}\n </View>\n );\n\n return (\n <>\n {!showOffersFirst && renderCancellations()}\n\n {has.rates && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_OFFER)}\n </Text>\n {rates.map(\n ({ id, cancellationId, countdown, description, disabled, included, name, price, restrictions }) => {\n const rate = rates.find((rate) => rate.id === id);\n const board = availableBoards.filter(({ rateId } = {}) => rateId === id)[0];\n const { discount: { breakdown = [], percentage } = {} } = board || {};\n const isClub = isClubRate({ board, rate });\n const isPromocode =\n promocode && breakdown.find(({ type }) => [DISCOUNT_TYPE.DEAL, DISCOUNT_TYPE.PROMOTION].includes(type));\n const discountPercentage = ((isClub || isPromocode) && percentage) || undefined;\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n discountPercentage,\n included: showRateIncluded ? included : undefined,\n isClub,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo(rate),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / valueFactor}\n onPress={rates.length > 0 ? () => onRate({ id, cancellationId }) : undefined}\n >\n {rates.length > 0 && (\n <Text medium={hideRadio} action={!isMobile} small={isMobile} className={style.optionText}>\n <View row className={style.tags}>\n {isPromocode && (\n <Text action={!isMobile} medium small={isMobile} className={[style.tag, style.highlight]}>\n <Icon action value={ICON.DISCOUNT} />\n {promocode.toUpperCase()}\n </Text>\n )}\n {discountPercentage && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo(rate)}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n </Text>\n )}\n </Option>\n );\n },\n )}\n </View>\n )}\n\n {showOffersFirst && renderCancellations()}\n\n {has.boards && (\n <View className={styles(style.offset, style.gap)}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n {React.createElement(\n has.inlineBoards ? View : React.Fragment,\n has.inlineBoards ? { row: true, className: style.inlineOptions } : undefined,\n boards.map((board = {}) => {\n const { disabled, id, increment, name, variants = [] } = board;\n\n return (\n <Option\n key={id}\n checked={id === boardId}\n disabled={disabled}\n inline={has.inlineBoards}\n outlined={hideRadio}\n title={name}\n value={has.boards ? increment / valueFactor : undefined}\n onPress={() => onBoard(board)}\n >\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </Option>\n );\n }),\n )}\n </View>\n )}\n\n <View />\n </>\n );\n};\n\nRates.propTypes = {\n availableBoards: PropTypes.arrayOf(PropTypes.any),\n availableRates: PropTypes.arrayOf(PropTypes.any),\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n columnMode: PropTypes.bool,\n hideStandaloneBoard: PropTypes.bool,\n highlightStandaloneOption: PropTypes.bool,\n rowMode: PropTypes.bool,\n showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n valueFactor: PropTypes.number,\n onBoard: PropTypes.func,\n onCancellation: PropTypes.func,\n onCancellationInfo: PropTypes.func,\n onChange: PropTypes.func,\n onOfferInfo: PropTypes.func,\n onRate: PropTypes.func,\n};\n\nRates.displayName = 'Mirai:Core:Rates:Item:Rates';\n\nexport { Rates };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_helpers2","_Rates","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Rates","_ref","availableBoards","availableRates","boards","cancellations","features","columnMode","hideRadio","highlightStandaloneOption","rowMode","showOffersFirst","showRateIncluded","priceFactor","rates","selectedBoard","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","useStore","cancellationId","rateId","id","boardId","length","filter","name","arguments","undefined","inlineBoards","inlineCancellations","rate","isClubRate","board","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","_ref2","map","_ref3","highlight","caption","price","cancellation","Option","key","checked","inline","outlined","onPress","medium","small","optionText","styles","tag","Pressable","Icon","paragraph","ICON","INFO","LABEL_OFFER","_ref4","countdown","description","disabled","included","restrictions","find","discount","breakdown","percentage","isClub","isPromocode","_ref5","type","DISCOUNT_TYPE","DEAL","PROMOTION","includes","discountPercentage","RateDetails","tags","DISCOUNT","toUpperCase","LABEL_DISCOUNT","concat","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","hideStandaloneBoard","number","func","onChange","displayName"],"sources":["../../../../../src/components/Rates/components/Item/Item.Rates.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { Icon, Pressable, styles, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Option, RateDetails, TooltipDates } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { ICON } from '../../../helpers';\nimport { isClubRate } from '../../helpers';\nimport { DISCOUNT_TYPE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n highlightStandaloneOption = false,\n rowMode,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n priceFactor = 1,\n rates = [],\n selectedBoard = {},\n onBoard,\n onCancellation,\n onCancellationInfo,\n onRate,\n onOfferInfo,\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n\n const { value: { finder: { promocode } = {} } = {} } = useStore();\n\n const { cancellationId, rateId, id: boardId } = selectedBoard;\n\n const has = {\n cancellations: cancellations.length > 1 || highlightStandaloneOption,\n boards:\n (boards.length > 1 &&\n availableBoards.filter(({ name } = {}) => name === availableBoards[0].name).length !==\n availableBoards.length) ||\n highlightStandaloneOption,\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode || rowMode ? 3 : 2),\n inlineCancellations:\n hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode || rowMode ? 3 : 2),\n rates:\n cancellations.length !== availableRates.length ||\n highlightStandaloneOption ||\n availableRates.filter((rate) =>\n isClubRate({ board: availableBoards.filter(({ rateId } = {}) => rateId === rate.id)[0], rate }),\n ).length > 0,\n };\n\n const renderCancellations = () =>\n has.cancellations && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_CANCELLATION_POLICY)}\n </Text>\n\n {React.createElement(\n has.inlineCancellations ? View : React.Fragment,\n has.inlineCancellations ? { row: true, className: style.inlineOptions } : undefined,\n cancellations\n .filter(({ id }) => !showOffersFirst || (showOffersFirst && id === cancellationId))\n .map(({ highlight, id, name, caption, price, ...cancellation }) => (\n <Option\n key={id}\n caption={caption}\n checked={id === cancellationId}\n inline={has.inlineCancellations}\n outlined={hideRadio}\n value={!showOffersFirst ? price / priceFactor : undefined}\n onPress={() => onCancellation(id)}\n >\n <Text action={!isMobile} medium={highlight} small={isMobile} className={style.optionText}>\n {highlight ? (\n <Text\n action={!isMobile}\n medium={highlight}\n small={isMobile}\n className={styles(highlight && style.tag)}\n >\n {name}\n </Text>\n ) : (\n name\n )}\n\n <Pressable onPress={() => onCancellationInfo({ ...selectedBoard, cancellation })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n </Text>\n </Option>\n )),\n )}\n </View>\n );\n\n return (\n <>\n {!showOffersFirst && renderCancellations()}\n\n {has.rates && (\n <View className={[style.offset, style.gap]}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_OFFER)}\n </Text>\n {rates.map(\n ({ id, cancellationId, countdown, description, disabled, included, name, price, restrictions }) => {\n const rate = rates.find((rate) => rate.id === id);\n const board = availableBoards.filter(({ rateId } = {}) => rateId === id)[0];\n const { discount: { breakdown = [], percentage } = {} } = board || {};\n const isClub = isClubRate({ board, rate });\n const isPromocode =\n promocode && breakdown.find(({ type }) => [DISCOUNT_TYPE.DEAL, DISCOUNT_TYPE.PROMOTION].includes(type));\n const discountPercentage = ((isClub || isPromocode) && percentage) || undefined;\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n discountPercentage,\n included: showRateIncluded ? included : undefined,\n isClub,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo(rate),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / priceFactor}\n onPress={rates.length > 0 ? () => onRate({ id, cancellationId }) : undefined}\n >\n {rates.length > 0 && (\n <Text medium={hideRadio} action={!isMobile} small={isMobile} className={style.optionText}>\n <View row className={style.tags}>\n {isPromocode && (\n <Text action={!isMobile} medium small={isMobile} className={[style.tag, style.highlight]}>\n <Icon action value={ICON.DISCOUNT} />\n {promocode.toUpperCase()}\n </Text>\n )}\n {discountPercentage && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo(rate)}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n </Text>\n )}\n </Option>\n );\n },\n )}\n </View>\n )}\n\n {showOffersFirst && renderCancellations()}\n\n {has.boards && (\n <View className={styles(style.offset, style.gap)}>\n <Text action={isMobile} bold>\n {translate(L10N.LABEL_ACCOMMODATION_PLAN)}\n </Text>\n\n {React.createElement(\n has.inlineBoards ? View : React.Fragment,\n has.inlineBoards ? { row: true, className: style.inlineOptions } : undefined,\n boards.map((board = {}) => {\n const { disabled, id, increment, name, variants = [] } = board;\n\n return (\n <Option\n key={id}\n checked={id === boardId}\n disabled={disabled}\n inline={has.inlineBoards}\n outlined={hideRadio}\n title={name}\n value={has.boards ? increment / priceFactor : undefined}\n onPress={() => onBoard(board)}\n >\n {variants.length > 0 && (\n <TooltipDates\n captions={variants.map(({ name } = {}) => name)}\n values={variants.map(({ value } = {}) => parseDate(value))}\n />\n )}\n </Option>\n );\n }),\n )}\n </View>\n )}\n\n <View />\n </>\n );\n};\n\nRates.propTypes = {\n availableBoards: PropTypes.arrayOf(PropTypes.any),\n availableRates: PropTypes.arrayOf(PropTypes.any),\n boards: PropTypes.arrayOf(PropTypes.any),\n cancellations: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n columnMode: PropTypes.bool,\n hideStandaloneBoard: PropTypes.bool,\n highlightStandaloneOption: PropTypes.bool,\n rowMode: PropTypes.bool,\n showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n priceFactor: PropTypes.number,\n rates: PropTypes.arrayOf(PropTypes.any),\n selectedBoard: PropTypes.shape({}),\n onBoard: PropTypes.func,\n onCancellation: PropTypes.func,\n onCancellationInfo: PropTypes.func,\n onChange: PropTypes.func,\n onOfferInfo: PropTypes.func,\n onRate: PropTypes.func,\n};\n\nRates.displayName = 'Mirai:Core:Rates:Item:Rates';\n\nexport { Rates };\n"],"mappings":"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"}
|
|
@@ -27,11 +27,12 @@ const Summary = _ref => {
|
|
|
27
27
|
multiRoom = false,
|
|
28
28
|
name: roomName,
|
|
29
29
|
nights = 2,
|
|
30
|
+
priceFactor = 1,
|
|
30
31
|
selected = {},
|
|
31
32
|
selectedBoard = {},
|
|
32
33
|
taxesType,
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
onSelect,
|
|
35
|
+
...others
|
|
35
36
|
} = _ref;
|
|
36
37
|
const {
|
|
37
38
|
isMobile
|
|
@@ -97,6 +98,9 @@ const Summary = _ref => {
|
|
|
97
98
|
return rateId === id;
|
|
98
99
|
})
|
|
99
100
|
});
|
|
101
|
+
const {
|
|
102
|
+
testId
|
|
103
|
+
} = others;
|
|
100
104
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
101
105
|
className: [style.offset, style.summary]
|
|
102
106
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -124,7 +128,7 @@ const Summary = _ref => {
|
|
|
124
128
|
}, currencyFormat({
|
|
125
129
|
currency,
|
|
126
130
|
maximumFractionDigits: 0,
|
|
127
|
-
value: price /
|
|
131
|
+
value: price / priceFactor
|
|
128
132
|
})), price !== originalPrice && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
129
133
|
action: true,
|
|
130
134
|
light: true,
|
|
@@ -132,14 +136,16 @@ const Summary = _ref => {
|
|
|
132
136
|
}, currencyFormat({
|
|
133
137
|
currency,
|
|
134
138
|
maximumFractionDigits: 0,
|
|
135
|
-
value: originalPrice /
|
|
139
|
+
value: originalPrice / priceFactor
|
|
136
140
|
}))), nights > 1 && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
137
141
|
small: !isMobile,
|
|
138
142
|
tiny: isMobile
|
|
139
143
|
}, "".concat(currencyFormat({
|
|
140
144
|
currency,
|
|
141
145
|
value: showPricePerNight ? price : dayPrice
|
|
142
|
-
}), " ").concat(translate(showPricePerNight ? _Item.L10N.
|
|
146
|
+
}), " ").concat(translate(showPricePerNight ? _Item.L10N.LABEL_FOR_NIGHTS : _Item.L10N.LABEL_PER_NIGHT, {
|
|
147
|
+
nights
|
|
148
|
+
}))), !!taxesType && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
143
149
|
light: true,
|
|
144
150
|
small: !isMobile,
|
|
145
151
|
tiny: isMobile
|
|
@@ -150,7 +156,8 @@ const Summary = _ref => {
|
|
|
150
156
|
busy: busy,
|
|
151
157
|
disabled: isSoldOut,
|
|
152
158
|
secondary: multiRoom && isSelected,
|
|
153
|
-
onPress: handlePress
|
|
159
|
+
onPress: handlePress,
|
|
160
|
+
testId: testId ? "".concat(testId, "-select") : undefined
|
|
154
161
|
}, translate(isSoldOut ? _Item.L10N.LABEL_NOT_AVAILABLE : multiRoom ? isSelected ? _Item.L10N.LABEL_DESELECT : _Item.L10N.LABEL_SELECT : _Item.L10N.ACTION_RESERVE)))));
|
|
155
162
|
};
|
|
156
163
|
exports.Summary = Summary;
|
|
@@ -165,10 +172,10 @@ Summary.propTypes = {
|
|
|
165
172
|
multiRoom: _propTypes.default.bool,
|
|
166
173
|
name: _propTypes.default.string,
|
|
167
174
|
nights: _propTypes.default.number,
|
|
175
|
+
priceFactor: _propTypes.default.number,
|
|
168
176
|
selected: _propTypes.default.shape({}),
|
|
169
177
|
selectedBoard: _propTypes.default.shape({}),
|
|
170
178
|
taxesType: _propTypes.default.number,
|
|
171
|
-
valueFactor: _propTypes.default.number,
|
|
172
179
|
onSelect: _propTypes.default.func
|
|
173
180
|
};
|
|
174
181
|
//# sourceMappingURL=Item.Summary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.Summary.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Summary","_ref","availableRates","features","showPricePerNight","id","roomId","isSoldOut","multiRoom","name","roomName","nights","selected","selectedBoard","taxesType","valueFactor","onSelect","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","busy","setBusy","useState","useEffect","keys","length","basePrice","cancellationId","checkoutPrice","confidential","dayPrice","deals","discount","fees","originalPrice","price","rateId","taxes","totalPriceRaw","isSelected","handlePress","undefined","percentage","discountPercentage","isClub","isClubRate","board","rate","find","_ref2","createElement","Fragment","View","className","offset","summary","row","Text","bold","small","tag","highlight","L10N","LABEL_ONLY_MEMBERS","accent","LABEL_DISCOUNT","concat","gap","content","end","headline","level","maximumFractionDigits","action","light","lineThrough","tiny","LABEL_TOTAL","LABEL_PER_NIGHT","getLabelTaxes","PriceDetails","priceDetails","Button","disabled","secondary","onPress","LABEL_NOT_AVAILABLE","LABEL_DESELECT","LABEL_SELECT","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","any","shape","bool","number","string","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Summary.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { PriceDetails } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { getLabelTaxes, isClubRate } from '../../helpers';\n\nconst Summary = ({\n availableRates = [],\n features: { showPricePerNight = false } = {},\n id: roomId,\n isSoldOut = false,\n multiRoom = false,\n name: roomName,\n nights = 2,\n selected = {},\n selectedBoard = {},\n taxesType,\n valueFactor = 1,\n onSelect,\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setBusy(false), [selected]);\n\n const {\n basePrice,\n cancellationId,\n checkoutPrice,\n confidential,\n dayPrice,\n deals,\n discount,\n fees,\n id,\n name,\n originalPrice = 0,\n price = 0,\n rateId,\n taxes,\n totalPriceRaw,\n } = selectedBoard;\n\n const isSelected = selected.id === id;\n\n const handlePress = () => {\n if (!multiRoom) setBusy(true);\n onSelect(\n !isSelected\n ? {\n basePrice,\n cancellationId,\n checkoutPrice,\n confidential,\n deals,\n discount,\n fees,\n id,\n name,\n price,\n rateId,\n roomId,\n roomName,\n taxes,\n totalPriceRaw,\n }\n : undefined,\n );\n };\n\n const { percentage: discountPercentage = 0 } = discount || {};\n\n const isClub = isClubRate({\n board: selectedBoard,\n rate: availableRates.find(({ id }) => rateId === id),\n });\n\n return (\n <>\n <View className={[style.offset, style.summary]}>\n <View row>\n {isClub && (\n <Text bold small className={[style.tag, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n )}\n\n {!isSoldOut && discountPercentage > 0 && (\n <Text accent bold small>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n )}\n </View>\n\n <View row className={[style.gap, style.content, isSoldOut && style.end]}>\n {!isSoldOut && (\n <View>\n <View row className={style.price}>\n <Text bold headline level={isMobile || multiRoom || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: price / valueFactor })}\n </Text>\n\n {price !== originalPrice && (\n <Text action light className={style.lineThrough}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: originalPrice / valueFactor })}\n </Text>\n )}\n </View>\n\n {nights > 1 && (\n <Text small={!isMobile} tiny={isMobile}>{`${currencyFormat({\n currency,\n value: showPricePerNight ? price : dayPrice,\n })} ${translate(showPricePerNight ? L10N.LABEL_TOTAL : L10N.LABEL_PER_NIGHT)}`}</Text>\n )}\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n {(discountPercentage > 0 || fees > 0 || taxes > 0) && (\n <PriceDetails {...{ board: selectedBoard }} className={style.priceDetails} />\n )}\n </View>\n )}\n\n <Button busy={busy} disabled={isSoldOut} secondary={multiRoom && isSelected} onPress={handlePress}>\n {translate(\n isSoldOut\n ? L10N.LABEL_NOT_AVAILABLE\n : multiRoom\n ? isSelected\n ? L10N.LABEL_DESELECT\n : L10N.LABEL_SELECT\n : L10N.ACTION_RESERVE,\n )}\n </Button>\n </View>\n </View>\n </>\n );\n};\n\nSummary.displayName = 'Mirai:Core:Rates:Item:Summary';\n\nSummary.propTypes = {\n availableRates: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n showPricePerNight: PropTypes.bool,\n }),\n id: PropTypes.number,\n isSoldOut: PropTypes.bool,\n multiRoom: PropTypes.bool,\n name: PropTypes.string,\n nights: PropTypes.number,\n selected: PropTypes.shape({}),\n selectedBoard: PropTypes.shape({}),\n taxesType: PropTypes.number,\n valueFactor: PropTypes.number,\n onSelect: PropTypes.func,\n};\n\nexport { Summary };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Item.Summary.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Summary","_ref","availableRates","features","showPricePerNight","id","roomId","isSoldOut","multiRoom","name","roomName","nights","priceFactor","selected","selectedBoard","taxesType","onSelect","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","useStore","busy","setBusy","useState","useEffect","keys","length","basePrice","cancellationId","checkoutPrice","confidential","dayPrice","deals","discount","fees","originalPrice","price","rateId","taxes","totalPriceRaw","isSelected","handlePress","undefined","percentage","discountPercentage","isClub","isClubRate","board","rate","find","_ref2","testId","createElement","Fragment","View","className","offset","summary","row","Text","bold","small","tag","highlight","L10N","LABEL_ONLY_MEMBERS","accent","LABEL_DISCOUNT","concat","gap","content","end","headline","level","maximumFractionDigits","action","light","lineThrough","tiny","LABEL_FOR_NIGHTS","LABEL_PER_NIGHT","getLabelTaxes","PriceDetails","priceDetails","Button","disabled","secondary","onPress","LABEL_NOT_AVAILABLE","LABEL_DESELECT","LABEL_SELECT","ACTION_RESERVE","exports","displayName","propTypes","PropTypes","arrayOf","any","shape","bool","number","string","func"],"sources":["../../../../../src/components/Rates/components/Item/Item.Summary.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { PriceDetails } from './components';\nimport { L10N } from './Item.l10n';\nimport * as style from './Item.module.css';\nimport { getLabelTaxes, isClubRate } from '../../helpers';\n\nconst Summary = ({\n availableRates = [],\n features: { showPricePerNight = false } = {},\n id: roomId,\n isSoldOut = false,\n multiRoom = false,\n name: roomName,\n nights = 2,\n priceFactor = 1,\n selected = {},\n selectedBoard = {},\n taxesType,\n onSelect,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency } = {} } = useStore();\n\n const [busy, setBusy] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setBusy(false), [selected]);\n\n const {\n basePrice,\n cancellationId,\n checkoutPrice,\n confidential,\n dayPrice,\n deals,\n discount,\n fees,\n id,\n name,\n originalPrice = 0,\n price = 0,\n rateId,\n taxes,\n totalPriceRaw,\n } = selectedBoard;\n\n const isSelected = selected.id === id;\n\n const handlePress = () => {\n if (!multiRoom) setBusy(true);\n onSelect(\n !isSelected\n ? {\n basePrice,\n cancellationId,\n checkoutPrice,\n confidential,\n deals,\n discount,\n fees,\n id,\n name,\n price,\n rateId,\n roomId,\n roomName,\n taxes,\n totalPriceRaw,\n }\n : undefined,\n );\n };\n\n const { percentage: discountPercentage = 0 } = discount || {};\n\n const isClub = isClubRate({\n board: selectedBoard,\n rate: availableRates.find(({ id }) => rateId === id),\n });\n\n const { testId } = others;\n\n return (\n <>\n <View className={[style.offset, style.summary]}>\n <View row>\n {isClub && (\n <Text bold small className={[style.tag, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n )}\n\n {!isSoldOut && discountPercentage > 0 && (\n <Text accent bold small>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n )}\n </View>\n\n <View row className={[style.gap, style.content, isSoldOut && style.end]}>\n {!isSoldOut && (\n <View>\n <View row className={style.price}>\n <Text bold headline level={isMobile || multiRoom || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: price / priceFactor })}\n </Text>\n\n {price !== originalPrice && (\n <Text action light className={style.lineThrough}>\n {currencyFormat({ currency, maximumFractionDigits: 0, value: originalPrice / priceFactor })}\n </Text>\n )}\n </View>\n\n {nights > 1 && (\n <Text small={!isMobile} tiny={isMobile}>{`${currencyFormat({\n currency,\n value: showPricePerNight ? price : dayPrice,\n })} ${translate(showPricePerNight ? L10N.LABEL_FOR_NIGHTS : L10N.LABEL_PER_NIGHT, { nights })}`}</Text>\n )}\n\n {!!taxesType && (\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n {(discountPercentage > 0 || fees > 0 || taxes > 0) && (\n <PriceDetails {...{ board: selectedBoard }} className={style.priceDetails} />\n )}\n </View>\n )}\n\n <Button\n busy={busy}\n disabled={isSoldOut}\n secondary={multiRoom && isSelected}\n onPress={handlePress}\n testId={testId ? `${testId}-select` : undefined}\n >\n {translate(\n isSoldOut\n ? L10N.LABEL_NOT_AVAILABLE\n : multiRoom\n ? isSelected\n ? L10N.LABEL_DESELECT\n : L10N.LABEL_SELECT\n : L10N.ACTION_RESERVE,\n )}\n </Button>\n </View>\n </View>\n </>\n );\n};\n\nSummary.displayName = 'Mirai:Core:Rates:Item:Summary';\n\nSummary.propTypes = {\n availableRates: PropTypes.arrayOf(PropTypes.any),\n features: PropTypes.shape({\n showPricePerNight: PropTypes.bool,\n }),\n id: PropTypes.number,\n isSoldOut: PropTypes.bool,\n multiRoom: PropTypes.bool,\n name: PropTypes.string,\n nights: PropTypes.number,\n priceFactor: PropTypes.number,\n selected: PropTypes.shape({}),\n selectedBoard: PropTypes.shape({}),\n taxesType: PropTypes.number,\n onSelect: PropTypes.func,\n};\n\nexport { Summary };\n"],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ const Item = exports.Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) =
|
|
|
26
26
|
filters = {},
|
|
27
27
|
metaBoard,
|
|
28
28
|
multiRoom,
|
|
29
|
+
priceFactor = 1,
|
|
29
30
|
rates = [],
|
|
30
31
|
selected,
|
|
31
32
|
onPreview,
|
|
@@ -120,7 +121,6 @@ const Item = exports.Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) =
|
|
|
120
121
|
rowMode,
|
|
121
122
|
showAllBoards,
|
|
122
123
|
showAllOffers,
|
|
123
|
-
showPricePerNight,
|
|
124
124
|
showOffersFirst
|
|
125
125
|
} = features;
|
|
126
126
|
const {
|
|
@@ -166,6 +166,7 @@ const Item = exports.Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) =
|
|
|
166
166
|
features,
|
|
167
167
|
isSoldOut,
|
|
168
168
|
multiRoom,
|
|
169
|
+
priceFactor,
|
|
169
170
|
rates: showOffersFirst ? rates.map(rate => ({
|
|
170
171
|
...rate,
|
|
171
172
|
price: rate.price + findPrice(rate.cancellationId, cancellations)
|
|
@@ -180,7 +181,6 @@ const Item = exports.Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) =
|
|
|
180
181
|
}).sort((a, b) => a.price - b.price) : rates.filter(rate => rate.cancellationId === cancellationId),
|
|
181
182
|
selected,
|
|
182
183
|
selectedBoard,
|
|
183
|
-
valueFactor: showPricePerNight && others.nights > 1 ? others.nights : 1,
|
|
184
184
|
onSelect
|
|
185
185
|
};
|
|
186
186
|
return /*#__PURE__*/_react.default.createElement(_shared__.Card, {
|
|
@@ -211,6 +211,7 @@ Item.propTypes = {
|
|
|
211
211
|
id: _propTypes.default.string
|
|
212
212
|
}),
|
|
213
213
|
multiRoom: _propTypes.default.bool,
|
|
214
|
+
priceFactor: _propTypes.default.number,
|
|
214
215
|
rates: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
215
216
|
selected: _propTypes.default.shape({
|
|
216
217
|
id: _propTypes.default.string
|