@mirai/core 0.4.147 → 0.4.149
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/Rates/Rates.js +1 -1
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js +42 -27
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.l10n.js +2 -2
- package/build/components/Rates/components/CardHotel/CardHotel.l10n.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.module.css +9 -1
- package/build/components/Rates/components/Item/Item.Rates.js +2 -2
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Summary.js +2 -2
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
- package/package.json +1 -1
|
@@ -494,7 +494,7 @@ const Rates = _ref => {
|
|
|
494
494
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Header.Header, {
|
|
495
495
|
currency: true,
|
|
496
496
|
login: club.active,
|
|
497
|
-
name:
|
|
497
|
+
name: features.showNameInHeader,
|
|
498
498
|
skeleton: skeleton
|
|
499
499
|
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
500
500
|
ref: refRoomSelector,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_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","timeoutItemFitsInViewport","Rates","_ref","_select","_dataSource$hotels","_responseError$tracki","_responseError$tracki2","_dataSource$items","testId","others","height","isDesktop","isMobile","mobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","refItems","value","club","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","rates","cart","storeCart","meta","session","skeleton","urlParams","variant","useStore","busy","setBusy","useState","cancellationInfo","setCancellationInfo","setCart","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","filters","setFilters","metaBoard","setMetaBoard","itemInfo","setItemInfo","itemUrl","setItemUrl","mapView","setMapView","offerInfo","setOfferInfo","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","Event","publish","EVENT","METRICS","getFeatures","features","multiRoom","callback","next","subscribe","RATES_FILTER_CLUB","unsubscribe","getBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","clearTimeout","current","setTimeout","clientHeight","itemHeight","keys","visible","debounceFetch","offsetHeight","offsetTop","scrollTo","tracking","RATES_RESPONSE","error","event","response","fetch","nextOccupation","nextPromocode","promocode","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","device","selectedIds","map","roomId","join","parseToParties","nextDataSource","ServiceRates","externalSignout","signout","checkNotifications","hotels","debounce","handleFilters","nextStrictSearch","handleFinder","values","handleSelect","nextCart","scrollToRoom","RATES_ADD_TO_CART","handleSubmit","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","showClubRate","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","handleCheckout","filter","item","included","_ref2","_baseValue","amount","baseValue","valueAmount","valueNights","parseInt","price","selectableExtras","some","document","href","getForwarderUrl","checkoutParams","JSON","stringify","occupationTotals","SUBMIT_DELAY","handleCloseLogin","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","window","top","behavior","_refItems$current$roo","getBoundingClientRect","scrollY","contentBackground","Theme","days","dateDiff","roomSelectorProps","onPress","priceFactor","showPricePerNight","createElement","Fragment","Header","login","name","SHOW_NAME_IN_HEADER","View","ref","className","styles","blur","sticky","backgroundColor","opacity","row","wrapper","Finder","compacted","icon","metrics","concat","onSubmit","Filters","Progress","indeterminate","progress","RoomSelector","role","container","content","Content","onMapView","onSelect","Cards","select","items","_ref3","index","Item","filterItem","taxesType","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onViewUrl","info","CardHotel","hotelInfoBAR","Unavailability","Notification","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","ModalClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceRates } from '@mirai/services';\nimport { Notification, Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport {\n CardHotel,\n Filters,\n Item,\n ModalCancellationInfo,\n ModalClubRate,\n ModalExtras,\n ModalItemInfo,\n ModalItemUrl,\n ModalMapView,\n ModalOfferInfo,\n} from './components';\nimport {\n filterItem,\n getBoard,\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n select,\n showClubRate,\n signout,\n} from './helpers';\nimport { FEATURES, NOTIFICATION, UTM_SOURCE_NAME } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer as RatesFooter } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ERROR } from '../../Core.constants';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams, SUBMIT_DELAY } from '../helpers';\n\nlet timeoutItemFitsInViewport;\n\nconst Rates = ({ testId, ...others }) => {\n const { height, isDesktop, isMobile, mobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const refItems = useRef({});\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n rates: { cart: storeCart = [], meta } = {},\n session,\n skeleton = false,\n urlParams,\n variant,\n },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [cancellationInfo, setCancellationInfo] = useState();\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filters, setFilters] = useState({});\n const [metaBoard, setMetaBoard] = useState();\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(\n () =>\n Event.publish(EVENT.METRICS, {\n id: 'RATES:RENDER',\n ...getFeatures(hotel.features, urlParams, { isDesktop }, multiRoom),\n multiRoom,\n variant,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n // * Remove this hook if feature/flag \"showPreviewPrice\" is deemed unnecessary.\n useEffect(() => {\n clearTimeout(timeoutItemFitsInViewport);\n if (!dataSource || !refItems.current) return;\n\n timeoutItemFitsInViewport = setTimeout(() => {\n const { clientHeight: itemHeight } = refItems.current[Object.keys(refItems.current)[0]] || {};\n if (!itemHeight) return;\n\n Event.publish(EVENT.METRICS, { id: 'RATES:CARD', visible: height >= itemHeight - (208 + 48) });\n }, 100);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, height]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n scrollTo(offsetTop + (isMobile ? offsetHeight : 0));\n }\n setDataSource();\n }\n\n room !== undefined && debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation, nextPromocode = finder.promocode) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n // ! TODO: [MF-2005] Use helper fetchRates() within <Rates>\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && room === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleFilters = (next = {}) => {\n const { strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation, values.promocode);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n scrollToRoom(board.roomId);\n\n Event.publish(EVENT.RATES_ADD_TO_CART, {\n event: EVENT.RATES_ADD_TO_CART,\n response: { board, cart: nextCart, ...dataSource },\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n clubRate && setClubRate(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n\n if (multiRoom) {\n Event.publish(EVENT.METRICS, { id: 'RATES:SELECT_ROOM' });\n if (board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) set({ rates: undefined });\n }\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setClubRate(false);\n\n if (showClubRate({ cart, clubDiscount, dataSource, isPestana, session: sessionProp })) return setClubRate(true);\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n clubDiscount: !!session || clubDiscount,\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n\n if (variant === 'B')\n return handleCheckout(\n cart,\n extras\n .filter((item) => item.included)\n .map(({ amount, baseValue, nights, id, included, valueAmount, valueNights }) => ({\n id,\n included,\n amount: parseInt(valueAmount || amount),\n nights: parseInt(valueNights || nights),\n value: baseValue[valueAmount || amount][valueNights || nights]?.price,\n })),\n variant,\n );\n\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = [], variant = 'A') => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n setBusy(false);\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n dataSource,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n variant,\n checkoutParams: JSON.stringify(\n getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ),\n occupationTotals: JSON.stringify(getOccupationTotals({ infantAge: dataSource.infantAge, occupation })),\n });\n }, SUBMIT_DELAY);\n };\n\n const handleCloseLogin = () => {\n multiRoom ? setClubRate(false) : handleSelect();\n };\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const scrollTo = (value = 0) => window.scrollTo({ top: value, behavior: 'smooth' });\n\n const scrollToRoom = (roomId) => {\n const { top } = refItems?.current[roomId]?.getBoundingClientRect() || {};\n\n if (top) scrollTo(top + window.scrollY - (isMobile ? 16 : 16 * 5));\n };\n\n const { contentBackground } = Theme.get();\n const multiRoom = occupation?.length > 1;\n const { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const features = getFeatures(hotel.features, urlParams, { isDesktop });\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n\n return (\n <>\n <Header\n currency\n login={club.active}\n name={ServiceFeatures.get(FEATURES.SHOW_NAME_IN_HEADER, hotel.id)}\n skeleton={skeleton}\n />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <View row={isMobile} className={style.wrapper}>\n <Finder\n compacted={!isDesktop}\n icon\n metrics={`${dataSource?.hotels ? 'HOTELS' : responseError ? 'UNAVAILAVILITY' : 'RATES'}:FINDER`}\n onSubmit={handleFinder}\n testId={testId ? `${testId}-finder` : undefined}\n />\n {!responseError && <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />}\n </View>\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n )}\n\n <View role=\"rates\" testId={testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} skeleton={skeleton} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader {...{ dataSource, multiRoom, onMapView: setMapView, onSelect: handleSelect }}>\n {!isMobile ? (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n ) : undefined}\n </RatesHeader>\n )}\n\n {response ? (\n <Cards>\n {select(dataSource.items, filters, { priceFactor })?.map(({ id, ...item }, index) => (\n <Item\n {...{\n ...filterItem(item, filters),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n }}\n key={`${id || index}:${fetching}:${width}`}\n ref={(el) => (refItems.current[id] = el)}\n selected={cart[room || 0]}\n onCancellationInfo={(rate) => setCancellationInfo({ ...rate, name: item.name })}\n onMoreInfo={() => setItemInfo(item)}\n onOfferInfo={(rate) => setOfferInfo(rate)}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n testId={testId ? `${testId}-item-${index}` : undefined}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...{ ...item, nights, priceFactor }} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel || responseError.tracking?.hotelInfoBAR?.length === 0 ? (\n <Unavailability {...{ ...responseError, nights, priceFactor }} onMapView={setMapView} />\n ) : (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code || ERROR.UNKNOWN])}\n </Notification>\n )\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n <RatesFooter\n {...{ cart: multiRoom ? cart : [], clubRate, dataSource, extras, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : undefined)}\n testId={testId ? `${testId}-footer` : undefined}\n />\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalCancellationInfo\n {...cancellationInfo}\n visible={!!cancellationInfo}\n onClose={() => setCancellationInfo()}\n />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalOfferInfo {...{ ...offerInfo }} visible={!!offerInfo} onClose={() => setOfferInfo()} />\n <ModalExtras\n {...{ ...dataSource, busy, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n testId={testId ? `${testId}-modalExtras` : undefined}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalClubRate\n dataSource={dataSource}\n cart={cart}\n visible={clubRate}\n onClose={handleCloseLogin}\n onSubmit={(session) => handleSubmit(cart, session)}\n />\n )}\n </>\n )}\n\n <ModalMapView items={mapView} nights={nights} visible={!!mapView} onClose={() => setMapView()} />\n\n <Footer />\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n testId: PropTypes.string,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Rates","_Rates2","_Rates3","_Rates4","_Rates5","style","_Rates6","_Rates7","_Rates8","_Core","_helpers2","_shared__","_Finder","_Header","_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","timeoutItemFitsInViewport","Rates","_ref","_select","_dataSource$hotels","_responseError$tracki","_responseError$tracki2","_dataSource$items","testId","others","height","isDesktop","isMobile","mobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","refItems","value","club","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","rates","cart","storeCart","meta","session","skeleton","urlParams","variant","useStore","busy","setBusy","useState","cancellationInfo","setCancellationInfo","setCart","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","filters","setFilters","metaBoard","setMetaBoard","itemInfo","setItemInfo","itemUrl","setItemUrl","mapView","setMapView","offerInfo","setOfferInfo","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","useEffect","Event","publish","EVENT","METRICS","getFeatures","features","multiRoom","callback","next","subscribe","RATES_FILTER_CLUB","unsubscribe","getBoard","then","board","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","clearTimeout","current","setTimeout","clientHeight","itemHeight","keys","visible","debounceFetch","offsetHeight","offsetTop","scrollTo","tracking","RATES_RESPONSE","error","event","response","fetch","nextOccupation","nextPromocode","promocode","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","device","selectedIds","map","roomId","join","parseToParties","nextDataSource","ServiceRates","externalSignout","signout","checkNotifications","hotels","debounce","handleFilters","nextStrictSearch","handleFinder","values","handleSelect","nextCart","scrollToRoom","RATES_ADD_TO_CART","handleSubmit","sessionProp","isPestana","ServiceFeatures","FEATURES","PESTANA","showClubRate","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","handleCheckout","filter","item","included","_ref2","_baseValue","amount","baseValue","valueAmount","valueNights","parseInt","price","selectableExtras","some","document","href","getForwarderUrl","checkoutParams","JSON","stringify","occupationTotals","SUBMIT_DELAY","handleCloseLogin","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","window","top","behavior","_refItems$current$roo","getBoundingClientRect","scrollY","contentBackground","Theme","days","dateDiff","roomSelectorProps","onPress","priceFactor","showPricePerNight","createElement","Fragment","Header","login","name","showNameInHeader","View","ref","className","styles","blur","sticky","backgroundColor","opacity","row","wrapper","Finder","compacted","icon","metrics","concat","onSubmit","Filters","Progress","indeterminate","progress","RoomSelector","role","container","content","Content","onMapView","onSelect","Cards","select","items","_ref3","index","Item","filterItem","taxesType","el","selected","onCancellationInfo","rate","onMoreInfo","onOfferInfo","onViewUrl","info","CardHotel","hotelInfoBAR","Unavailability","Notification","large","NOTIFICATION_ERROR","code","ERROR","UNKNOWN","Footer","ModalItemInfo","onClose","ModalCancellationInfo","ModalItemUrl","ModalOfferInfo","ModalExtras","onCancel","ModalClubRate","ModalMapView","exports","displayName","propTypes","PropTypes","string"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures, ServiceRates } from '@mirai/services';\nimport { Notification, Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport {\n CardHotel,\n Filters,\n Item,\n ModalCancellationInfo,\n ModalClubRate,\n ModalExtras,\n ModalItemInfo,\n ModalItemUrl,\n ModalMapView,\n ModalOfferInfo,\n} from './components';\nimport {\n filterItem,\n getBoard,\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n select,\n showClubRate,\n signout,\n} from './helpers';\nimport { FEATURES, NOTIFICATION, UTM_SOURCE_NAME } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer as RatesFooter } from './Rates.Footer';\nimport { Header as RatesHeader } from './Rates.Header';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { RoomSelector } from './Rates.RoomSelector';\nimport Skeleton from './Rates.Skeleton';\nimport { Unavailability } from './Rates.Unavailability';\nimport { ERROR } from '../../Core.constants';\nimport { debounce, fetchUrlParams } from '../../helpers';\nimport { Cards, Footer } from '../__shared__';\nimport { Finder } from '../Finder';\nimport { Header } from '../Header';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams, SUBMIT_DELAY } from '../helpers';\n\nlet timeoutItemFitsInViewport;\n\nconst Rates = ({ testId, ...others }) => {\n const { height, isDesktop, isMobile, mobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const refItems = useRef({});\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n rates: { cart: storeCart = [], meta } = {},\n session,\n skeleton = false,\n urlParams,\n variant,\n },\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [cancellationInfo, setCancellationInfo] = useState();\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [filters, setFilters] = useState({});\n const [metaBoard, setMetaBoard] = useState();\n const [itemInfo, setItemInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [mapView, setMapView] = useState();\n const [offerInfo, setOfferInfo] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(\n () =>\n Event.publish(EVENT.METRICS, {\n id: 'RATES:RENDER',\n ...getFeatures(hotel.features, urlParams, { isDesktop }, multiRoom),\n multiRoom,\n variant,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n // * Remove this hook if feature/flag \"showPreviewPrice\" is deemed unnecessary.\n useEffect(() => {\n clearTimeout(timeoutItemFitsInViewport);\n if (!dataSource || !refItems.current) return;\n\n timeoutItemFitsInViewport = setTimeout(() => {\n const { clientHeight: itemHeight } = refItems.current[Object.keys(refItems.current)[0]] || {};\n if (!itemHeight) return;\n\n Event.publish(EVENT.METRICS, { id: 'RATES:CARD', visible: height >= itemHeight - (208 + 48) });\n }, 100);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, height]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n scrollTo(offsetTop + (isMobile ? offsetHeight : 0));\n }\n setDataSource();\n }\n\n room !== undefined && debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation, nextPromocode = finder.promocode) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n // ! TODO: [MF-2005] Use helper fetchRates() within <Rates>\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (room !== undefined) params.parties = parseToParties([nextOccupation[room || 0]]);\n\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && room === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleFilters = (next = {}) => {\n const { strictSearch: nextStrictSearch } = next;\n\n setCart([]);\n setRoom(undefined);\n setFilters(next);\n\n if (strictSearch !== nextStrictSearch) setStrictSearch(nextStrictSearch);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n setRoom();\n setMetaBoard();\n scrollTo(0);\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation, values.promocode);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n scrollToRoom(board.roomId);\n\n Event.publish(EVENT.RATES_ADD_TO_CART, {\n event: EVENT.RATES_ADD_TO_CART,\n response: { board, cart: nextCart, ...dataSource },\n });\n }\n\n setCart(nextCart);\n setExtras();\n setMetaBoard(undefined);\n clubRate && setClubRate(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n\n if (multiRoom) {\n Event.publish(EVENT.METRICS, { id: 'RATES:SELECT_ROOM' });\n if (board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) set({ rates: undefined });\n }\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart, sessionProp = session) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setClubRate(false);\n\n if (showClubRate({ cart, clubDiscount, dataSource, isPestana, session: sessionProp })) return setClubRate(true);\n\n const { extras = [] } =\n (await ServiceRates.extras({\n ...getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n clubDiscount: !!session || clubDiscount,\n device,\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {})) || {};\n\n if (variant === 'B')\n return handleCheckout(\n cart,\n extras\n .filter((item) => item.included)\n .map(({ amount, baseValue, nights, id, included, valueAmount, valueNights }) => ({\n id,\n included,\n amount: parseInt(valueAmount || amount),\n nights: parseInt(valueNights || nights),\n value: baseValue[valueAmount || amount][valueNights || nights]?.price,\n })),\n variant,\n );\n\n const selectableExtras = extras.some(({ included } = {}) => !included);\n\n if (selectableExtras) setExtras(extras);\n else handleCheckout(cart, extras);\n };\n\n const handleCheckout = (cart = [], extras = [], variant = 'A') => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'RATES:SUBMIT' });\n\n setTimeout(() => {\n setBusy(false);\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n dataSource,\n extras,\n forwarder,\n session,\n urlParams: { ...fetchUrlParams(location.search), device },\n variant,\n checkoutParams: JSON.stringify(\n getCheckoutParams({\n cart,\n clubDiscount,\n currency,\n dataSource,\n forwarder,\n urlParams: fetchUrlParams(location.search),\n }),\n ),\n occupationTotals: JSON.stringify(getOccupationTotals({ infantAge: dataSource.infantAge, occupation })),\n });\n }, SUBMIT_DELAY);\n };\n\n const handleCloseLogin = () => {\n multiRoom ? setClubRate(false) : handleSelect();\n };\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const scrollTo = (value = 0) => window.scrollTo({ top: value, behavior: 'smooth' });\n\n const scrollToRoom = (roomId) => {\n const { top } = refItems?.current[roomId]?.getBoundingClientRect() || {};\n\n if (top) scrollTo(top + window.scrollY - (isMobile ? 16 : 16 * 5));\n };\n\n const { contentBackground } = Theme.get();\n const multiRoom = occupation?.length > 1;\n const { days: nights } = dateDiff(calendar[0], calendar[1]);\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n const features = getFeatures(hotel.features, urlParams, { isDesktop });\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const priceFactor = features.showPricePerNight && nights > 1 ? nights : 1;\n\n return (\n <>\n <Header currency login={club.active} name={features.showNameInHeader} skeleton={skeleton} />\n\n <View\n ref={refRoomSelector}\n className={styles(style.finder, style.blur, (!multiRoom || responseError) && style.sticky)}\n style={!isMobile ? { backgroundColor: opacity(contentBackground, 0.66) } : undefined}\n >\n <View row={isMobile} className={style.wrapper}>\n <Finder\n compacted={!isDesktop}\n icon\n metrics={`${dataSource?.hotels ? 'HOTELS' : responseError ? 'UNAVAILAVILITY' : 'RATES'}:FINDER`}\n onSubmit={handleFinder}\n testId={testId ? `${testId}-finder` : undefined}\n />\n {!responseError && <Filters {...dataSource} {...{ priceFactor }} onSubmit={handleFilters} />}\n </View>\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n )}\n\n <View role=\"rates\" testId={testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {!responseError && <Content {...dataSource} {...others} skeleton={skeleton} />}\n\n {(response || (multiRoom && !responseError)) && (\n <RatesHeader {...{ dataSource, multiRoom, onMapView: setMapView, onSelect: handleSelect }}>\n {!isMobile ? (\n <RoomSelector {...roomSelectorProps} testId={testId ? `${testId}-multiroom` : undefined} />\n ) : undefined}\n </RatesHeader>\n )}\n\n {response ? (\n <Cards>\n {select(dataSource.items, filters, { priceFactor })?.map(({ id, ...item }, index) => (\n <Item\n {...{\n ...filterItem(item, filters),\n cart,\n features,\n filters,\n metaBoard,\n id,\n multiRoom,\n nights,\n priceFactor,\n room,\n taxesType: dataSource.taxesType,\n }}\n key={`${id || index}:${fetching}:${width}`}\n ref={(el) => (refItems.current[id] = el)}\n selected={cart[room || 0]}\n onCancellationInfo={(rate) => setCancellationInfo({ ...rate, name: item.name })}\n onMoreInfo={() => setItemInfo(item)}\n onOfferInfo={(rate) => setOfferInfo(rate)}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n testId={testId ? `${testId}-item-${index}` : undefined}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...{ ...item, nights, priceFactor }} />\n ))}\n </Cards>\n ) : responseError ? (\n responseError.hotel || responseError.tracking?.hotelInfoBAR?.length === 0 ? (\n <Unavailability {...{ ...responseError, nights, priceFactor }} onMapView={setMapView} />\n ) : (\n <Notification error large className={style.error}>\n {translate(L10N.NOTIFICATION_ERROR[responseError.code || ERROR.UNKNOWN])}\n </Notification>\n )\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n <RatesFooter\n {...{ cart: multiRoom ? cart : [], clubRate, dataSource, extras, multiRoom, occupation }}\n onSubmit={() => (multiRoom ? handleSubmit(cart) : undefined)}\n testId={testId ? `${testId}-footer` : undefined}\n />\n </View>\n\n {response && (\n <>\n <ModalItemInfo\n {...{ ...itemInfo, features, room }}\n visible={!!itemInfo}\n onClose={() => setItemInfo()}\n onViewUrl={(info) => setItemUrl(info)}\n />\n <ModalCancellationInfo\n {...cancellationInfo}\n visible={!!cancellationInfo}\n onClose={() => setCancellationInfo()}\n />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalOfferInfo {...{ ...offerInfo }} visible={!!offerInfo} onClose={() => setOfferInfo()} />\n <ModalExtras\n {...{ ...dataSource, busy, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n testId={testId ? `${testId}-modalExtras` : undefined}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalClubRate\n dataSource={dataSource}\n cart={cart}\n visible={clubRate}\n onClose={handleCloseLogin}\n onSubmit={(session) => handleSubmit(cart, session)}\n />\n )}\n </>\n )}\n\n <ModalMapView items={mapView} nights={nights} visible={!!mapView} onClose={() => setMapView()} />\n\n <Footer />\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n testId: PropTypes.string,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
@@ -25,7 +25,6 @@ const DEFAULT_WIDTH = 374;
|
|
|
25
25
|
const CardHotel = function () {
|
|
26
26
|
let {
|
|
27
27
|
board = {},
|
|
28
|
-
discountPercentage = 0,
|
|
29
28
|
features: {
|
|
30
29
|
distance,
|
|
31
30
|
location,
|
|
@@ -135,6 +134,33 @@ const CardHotel = function () {
|
|
|
135
134
|
maximumFractionDigits: 0,
|
|
136
135
|
minimumFractionDigits: 0
|
|
137
136
|
};
|
|
137
|
+
const promocodeForAll = breakdown.find(_ref => {
|
|
138
|
+
let {
|
|
139
|
+
type
|
|
140
|
+
} = _ref;
|
|
141
|
+
return type === _Rates.DISCOUNT_TYPE.PROMOTION;
|
|
142
|
+
}) || breakdown.find(_ref2 => {
|
|
143
|
+
let {
|
|
144
|
+
type
|
|
145
|
+
} = _ref2;
|
|
146
|
+
return type === _Rates.DISCOUNT_TYPE.DEAL;
|
|
147
|
+
}) && confidential;
|
|
148
|
+
const {
|
|
149
|
+
percentage: clubPercentage = 0
|
|
150
|
+
} = breakdown.find(function () {
|
|
151
|
+
let {
|
|
152
|
+
type
|
|
153
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
154
|
+
return type === _Rates.DISCOUNT_TYPE.CLUB;
|
|
155
|
+
}) || {};
|
|
156
|
+
const {
|
|
157
|
+
percentage: promoPercentage = 0
|
|
158
|
+
} = breakdown.find(function () {
|
|
159
|
+
let {
|
|
160
|
+
type
|
|
161
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
162
|
+
return type === _Rates.DISCOUNT_TYPE.PROMOTION;
|
|
163
|
+
}) || {};
|
|
138
164
|
return /*#__PURE__*/_react.default.createElement(_shared__.Card, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
139
165
|
ref: ref,
|
|
140
166
|
className: style.card
|
|
@@ -146,22 +172,7 @@ const CardHotel = function () {
|
|
|
146
172
|
metrics: "HOTELS:ITEM",
|
|
147
173
|
width: sliderWidth,
|
|
148
174
|
className: style.slider
|
|
149
|
-
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
150
|
-
row: true,
|
|
151
|
-
className: style.tags
|
|
152
|
-
}, promocode && (breakdown === null || breakdown === void 0 ? void 0 : breakdown.find(function () {
|
|
153
|
-
let {
|
|
154
|
-
type
|
|
155
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
156
|
-
return type === _Rates.DISCOUNT_TYPE.PROMOTION || type === _Rates.DISCOUNT_TYPE.DEAL && confidential;
|
|
157
|
-
})) && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
158
|
-
bold: true,
|
|
159
|
-
small: true,
|
|
160
|
-
className: style.tag
|
|
161
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
162
|
-
action: true,
|
|
163
|
-
value: _helpers3.ICON.DISCOUNT
|
|
164
|
-
}), " ".concat(promocode.toUpperCase())))), distance && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
175
|
+
})), distance && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
165
176
|
row: true,
|
|
166
177
|
className: [style.offset, style.spaceBetween]
|
|
167
178
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -200,19 +211,24 @@ const CardHotel = function () {
|
|
|
200
211
|
})
|
|
201
212
|
}, translate(_CardHotel.L10N.ACTION_VIEW_HOTEL))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
202
213
|
className: [style.offset, style.summary]
|
|
203
|
-
},
|
|
204
|
-
row: true
|
|
214
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
215
|
+
row: true,
|
|
216
|
+
className: style.tags
|
|
205
217
|
}, hasDiscountClub && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
206
218
|
bold: true,
|
|
207
219
|
small: true,
|
|
208
|
-
className: style.tag
|
|
209
|
-
}, translate(_CardHotel.L10N.
|
|
210
|
-
|
|
220
|
+
className: [style.tag, style.highlight]
|
|
221
|
+
}, translate(_CardHotel.L10N.LABEL_ONLY_MEMBERS_DISCOUNT, {
|
|
222
|
+
value: clubPercentage > 0 ? " -".concat(Math.round(clubPercentage), "%") : ''
|
|
223
|
+
}).trimEnd()), promocode && promocodeForAll && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
211
224
|
bold: true,
|
|
212
|
-
small: true
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
225
|
+
small: true,
|
|
226
|
+
className: [style.tag, style.highlight]
|
|
227
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
228
|
+
bold: true,
|
|
229
|
+
small: true,
|
|
230
|
+
className: promocode.length > (isMobile ? _Rates.MAX_PROMOCODE.MOBILE : _Rates.MAX_PROMOCODE.DESKTOP) && style.truncate
|
|
231
|
+
}, promocode.toUpperCase()), promoPercentage ? " -".concat(Math.round(promoPercentage), "%") : '')), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
216
232
|
row: true,
|
|
217
233
|
className: [style.gap, style.content]
|
|
218
234
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
@@ -246,7 +262,6 @@ exports.CardHotel = CardHotel;
|
|
|
246
262
|
CardHotel.displayName = 'Mirai:Core:Rates:CardHotel';
|
|
247
263
|
CardHotel.propTypes = {
|
|
248
264
|
board: _propTypes.default.shape({}),
|
|
249
|
-
discountPercentage: _propTypes.default.number,
|
|
250
265
|
features: _propTypes.default.shape({
|
|
251
266
|
distance: _propTypes.default.string,
|
|
252
267
|
location: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_Rates","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","board","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","nights","price","originalPrice","priceFactor","stars","taxes","unavailability","arguments","length","undefined","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","busy","setBusy","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","handlePress","Event","publish","EVENT","METRICS","setTimeout","find","isHotel","ids","includes","toString","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","SUBMIT_DELAY","caption","action","small","placeId","title","placeName","promocode","hotelName","confidential","discount","breakdown","showPricePerNight","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","createElement","Card","View","className","card","preview","Slider","height","metrics","slider","row","type","DISCOUNT_TYPE","PROMOTION","DEAL","Text","bold","tag","Icon","ICON","DISCOUNT","toUpperCase","offset","spaceBetween","LOCATION","L10N","LABEL_DISTANCE","Intl","NumberFormat","unit","format","headline","level","Array","from","Action","getHotelUrl","target","underline","onPress","ACTION_VIEW_HOTEL","summary","LABEL_ONLY_MEMBERS","accent","LABEL_DISCOUNT","gap","content","currencyFormat","tiny","LABEL_FOR_NIGHTS","LABEL_PER_NIGHT","light","getLabelTaxes","PriceDetails","Button","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","shape","number","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, ICON, SUBMIT_DELAY, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { DISCOUNT_TYPE } from '../../Rates.constants';\nimport { PriceDetails, Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n board = {},\n discountPercentage = 0,\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n nights = 1,\n price: originalPrice,\n priceFactor = 1,\n stars,\n taxes,\n unavailability,\n} = {}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [busy, setBusy] = useState(false);\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SELECT' });\n\n setTimeout(() => {\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n setBusy(false);\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, SUBMIT_DELAY);\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features = {} } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {}, promocode } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n const { confidential, discount: { breakdown = [] } = {} } = board;\n const price = originalPrice / priceFactor;\n const showPricePerNight = priceFactor > 1;\n const currencyFormatProps = { currency, locale, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View className={style.preview}>\n <Slider height={208} images={images} metrics=\"HOTELS:ITEM\" width={sliderWidth} className={style.slider} />\n\n <View row className={style.tags}>\n {promocode &&\n breakdown?.find(\n ({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION || (type === DISCOUNT_TYPE.DEAL && confidential),\n ) && (\n <Text bold small className={style.tag}>\n <Icon action value={ICON.DISCOUNT} />\n {` ${promocode.toUpperCase()}`}\n </Text>\n )}\n </View>\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action\n href={unavailability ? getHotelUrl(url) : url}\n small={isMobile}\n target=\"_blank\"\n underline\n onPress={() => Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SITE' })}\n >\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View className={[style.offset, style.summary]}>\n {(hasDiscountClub || discountPercentage > 0) && (\n <View row>\n {hasDiscountClub && (\n <Text bold small className={style.tag}>\n {translate(L10N.LABEL_ONLY_MEMBERS)}\n </Text>\n )}\n\n {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]}>\n <View>\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2} className={style.price}>\n {currencyFormat({ ...currencyFormatProps, value: price })}\n </Text>\n\n {nights > 1 && (\n <Text small={!isMobile} tiny={isMobile}>{`${currencyFormat({\n ...currencyFormatProps,\n value: showPricePerNight ? originalPrice : price / nights,\n })} ${translate(showPricePerNight ? L10N.LABEL_FOR_NIGHTS : L10N.LABEL_PER_NIGHT, { nights })}`}</Text>\n )}\n\n <Text light={!isMobile} small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n\n <PriceDetails board={board} />\n </View>\n\n <Button busy={busy} onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n board: PropTypes.shape({}),\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n nights: PropTypes.number,\n price: PropTypes.number,\n priceFactor: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n unavailability: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_Rates","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","board","features","distance","location","url","hasDiscountClub","id","images","name","nights","price","originalPrice","priceFactor","stars","taxes","unavailability","arguments","length","undefined","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","busy","setBusy","useState","sliderWidth","setSliderWidth","useEffect","_ref$current","current","clientWidth","handlePress","Event","publish","EVENT","METRICS","setTimeout","find","isHotel","ids","includes","toString","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","SUBMIT_DELAY","caption","action","small","placeId","title","placeName","promocode","hotelName","confidential","discount","breakdown","showPricePerNight","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","promocodeForAll","_ref","type","DISCOUNT_TYPE","PROMOTION","_ref2","DEAL","percentage","clubPercentage","CLUB","promoPercentage","createElement","Card","View","className","card","preview","Slider","height","metrics","slider","row","offset","spaceBetween","Icon","ICON","LOCATION","Text","L10N","LABEL_DISTANCE","Intl","NumberFormat","unit","format","bold","headline","level","Array","from","Action","getHotelUrl","target","underline","onPress","ACTION_VIEW_HOTEL","summary","tag","highlight","LABEL_ONLY_MEMBERS_DISCOUNT","Math","round","trimEnd","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","gap","content","currencyFormat","tiny","LABEL_FOR_NIGHTS","LABEL_PER_NIGHT","light","getLabelTaxes","PriceDetails","Button","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","shape","string","bool","oneOfType","number","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, ICON, SUBMIT_DELAY, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\nimport { PriceDetails, Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n board = {},\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n nights = 1,\n price: originalPrice,\n priceFactor = 1,\n stars,\n taxes,\n unavailability,\n} = {}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [busy, setBusy] = useState(false);\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n setBusy(true);\n Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SELECT' });\n\n setTimeout(() => {\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n setBusy(false);\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n }, SUBMIT_DELAY);\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features = {} } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {}, promocode } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n const { confidential, discount: { breakdown = [] } = {} } = board;\n const price = originalPrice / priceFactor;\n const showPricePerNight = priceFactor > 1;\n const currencyFormatProps = { currency, locale, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n const promocodeForAll =\n breakdown.find(({ type }) => type === DISCOUNT_TYPE.PROMOTION) ||\n (breakdown.find(({ type }) => type === DISCOUNT_TYPE.DEAL) && confidential);\n const { percentage: clubPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.CLUB) || {};\n const { percentage: promoPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View className={style.preview}>\n <Slider height={208} images={images} metrics=\"HOTELS:ITEM\" width={sliderWidth} className={style.slider} />\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action\n href={unavailability ? getHotelUrl(url) : url}\n small={isMobile}\n target=\"_blank\"\n underline\n onPress={() => Event.publish(EVENT.METRICS, { id: 'HOTELS:ITEM:SITE' })}\n >\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View className={[style.offset, style.summary]}>\n <View row className={style.tags}>\n {hasDiscountClub && (\n <Text bold small className={[style.tag, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS_DISCOUNT, {\n value: clubPercentage > 0 ? ` -${Math.round(clubPercentage)}%` : '',\n }).trimEnd()}\n </Text>\n )}\n {promocode && promocodeForAll && (\n <Text bold small className={[style.tag, style.highlight]}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) && style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${Math.round(promoPercentage)}%` : ''}\n </Text>\n )}\n </View>\n <View row className={[style.gap, style.content]}>\n <View>\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2} className={style.price}>\n {currencyFormat({ ...currencyFormatProps, value: price })}\n </Text>\n\n {nights > 1 && (\n <Text small={!isMobile} tiny={isMobile}>{`${currencyFormat({\n ...currencyFormatProps,\n value: showPricePerNight ? originalPrice : price / nights,\n })} ${translate(showPricePerNight ? L10N.LABEL_FOR_NIGHTS : L10N.LABEL_PER_NIGHT, { nights })}`}</Text>\n )}\n\n <Text light={!isMobile} small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n\n <PriceDetails board={board} />\n </View>\n\n <Button busy={busy} onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n board: PropTypes.shape({}),\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n nights: PropTypes.number,\n price: PropTypes.number,\n priceFactor: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n unavailability: PropTypes.bool,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
|
|
@@ -26,8 +26,8 @@ const L10N = exports.L10N = {
|
|
|
26
26
|
LABEL_INCLUDES_TAXES_FEES: {
|
|
27
27
|
id: 'finder.label.includes_taxes_fees'
|
|
28
28
|
},
|
|
29
|
-
|
|
30
|
-
id: 'finder.label.
|
|
29
|
+
LABEL_ONLY_MEMBERS_DISCOUNT: {
|
|
30
|
+
id: 'finder.label.only_members_discount'
|
|
31
31
|
},
|
|
32
32
|
LABEL_PER_NIGHT: {
|
|
33
33
|
id: 'finder.label.per_night'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHotel.l10n.js","names":["L10N","exports","ACTION_VIEW_MORE","id","ACTION_VIEW_HOTEL","LABEL_DISCOUNT","LABEL_DISTANCE","LABEL_EXCLUDES_TAXES_FEES","LABEL_FOR_NIGHTS","LABEL_INCLUDES_TAXES_FEES","
|
|
1
|
+
{"version":3,"file":"CardHotel.l10n.js","names":["L10N","exports","ACTION_VIEW_MORE","id","ACTION_VIEW_HOTEL","LABEL_DISCOUNT","LABEL_DISTANCE","LABEL_EXCLUDES_TAXES_FEES","LABEL_FOR_NIGHTS","LABEL_INCLUDES_TAXES_FEES","LABEL_ONLY_MEMBERS_DISCOUNT","LABEL_PER_NIGHT"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n ACTION_VIEW_HOTEL: { id: 'common.action.view_hotel' },\n\n LABEL_DISCOUNT: { id: 'finder.label.discount' },\n LABEL_DISTANCE: { id: 'finder.label.distance' },\n LABEL_EXCLUDES_TAXES_FEES: { id: 'finder.label.excludes_taxes_fees' },\n LABEL_FOR_NIGHTS: { id: 'common.label.for_nights' },\n LABEL_INCLUDES_TAXES_FEES: { id: 'finder.label.includes_taxes_fees' },\n LABEL_ONLY_MEMBERS_DISCOUNT: { id: 'finder.label.only_members_discount' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,iBAAiB,EAAE;IAAED,EAAE,EAAE;EAA2B,CAAC;EAErDE,cAAc,EAAE;IAAEF,EAAE,EAAE;EAAwB,CAAC;EAC/CG,cAAc,EAAE;IAAEH,EAAE,EAAE;EAAwB,CAAC;EAC/CI,yBAAyB,EAAE;IAAEJ,EAAE,EAAE;EAAmC,CAAC;EACrEK,gBAAgB,EAAE;IAAEL,EAAE,EAAE;EAA0B,CAAC;EACnDM,yBAAyB,EAAE;IAAEN,EAAE,EAAE;EAAmC,CAAC;EACrEO,2BAA2B,EAAE;IAAEP,EAAE,EAAE;EAAqC,CAAC;EACzEQ,eAAe,EAAE;IAAER,EAAE,EAAE;EAAyB;AAClD,CAAC"}
|
|
@@ -56,6 +56,11 @@
|
|
|
56
56
|
top: 0;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
.summary .tags {
|
|
60
|
+
flex-wrap: wrap;
|
|
61
|
+
gap: var(--mirai-ui-space-XXS);
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
.preview .tags .tag,
|
|
60
65
|
.summary .tag {
|
|
61
66
|
align-items: center;
|
|
@@ -71,10 +76,13 @@
|
|
|
71
76
|
display: inline-flex;
|
|
72
77
|
gap: calc(var(--mirai-ui-space-XXS) / 2);
|
|
73
78
|
padding: 0 var(--mirai-ui-space-XXS);
|
|
74
|
-
margin-right: var(--mirai-ui-space-XXS);
|
|
75
79
|
width: fit-content;
|
|
76
80
|
}
|
|
77
81
|
|
|
82
|
+
.summary .tag > ui-text {
|
|
83
|
+
color: var(--mirai-ui-base);
|
|
84
|
+
}
|
|
85
|
+
|
|
78
86
|
/* S */
|
|
79
87
|
@media only screen and (max-width: 480px) {
|
|
80
88
|
.card .gap {
|
|
@@ -207,7 +207,7 @@ const Rates = _ref => {
|
|
|
207
207
|
small: isMobile,
|
|
208
208
|
className: style.tag
|
|
209
209
|
}, translate(_Item.L10N.LABEL_DISCOUNT, {
|
|
210
|
-
value: "".concat(offerPercentage, "%")
|
|
210
|
+
value: "".concat(Math.round(offerPercentage), "%")
|
|
211
211
|
}))), name, (description || included.length > 0) && /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
|
|
212
212
|
onPress: () => onOfferInfo({
|
|
213
213
|
...rate,
|
|
@@ -224,7 +224,7 @@ const Rates = _ref => {
|
|
|
224
224
|
bold: true,
|
|
225
225
|
small: true,
|
|
226
226
|
className: promocode.length > (isMobile ? _Rates.MAX_PROMOCODE.MOBILE : _Rates.MAX_PROMOCODE.DESKTOP) && style.truncate
|
|
227
|
-
}, promocode.toUpperCase()), promoPercentage ? " -".concat(promoPercentage, "%") : '')));
|
|
227
|
+
}, promocode.toUpperCase()), promoPercentage ? " -".concat(Math.round(promoPercentage), "%") : '')));
|
|
228
228
|
})), showOffersFirst && renderCancellations(), has.boards && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
229
229
|
className: (0, _ui.styles)(style.offset, style.gap)
|
|
230
230
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_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","hideStandaloneBoard","showOffersFirst","showRateIncluded","priceFactor","promocodeForAll","rates","selectedBoard","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","useStore","cancellationId","rateId","id","boardId","length","inlineBoards","inlineCancellations","cancellationsFiltered","filter","_ref2","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","undefined","map","_ref3","highlight","name","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","rate","find","board","arguments","confidential","discount","breakdown","isPromocode","type","DISCOUNT_TYPE","PROMOTION","DEAL","percentage","promoPercentage","offerPercentage","RateDetails","tags","LABEL_DISCOUNT","concat","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","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 { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n hideStandaloneBoard = false,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n priceFactor = 1,\n promocodeForAll,\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 > 0,\n boards: boards.length > (hideStandaloneBoard ? 1 : 0),\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode ? 3 : 2),\n inlineCancellations: hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode ? 3 : 2),\n rates: availableRates.length > 0,\n };\n\n const cancellationsFiltered = cancellations.filter(\n ({ id }) => !showOffersFirst || (showOffersFirst && (id === cancellationId || !has.rates)),\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 cancellationsFiltered.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={cancellationsFiltered.length > 1 ? () => onCancellation(id) : undefined}\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 { confidential, discount: { breakdown = [] } = {} } = board || {};\n const isPromocode =\n promocode &&\n !promocodeForAll &&\n breakdown.find(\n ({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION || (type === DISCOUNT_TYPE.DEAL && confidential),\n );\n const { percentage: promoPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n const { percentage: offerPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.DEAL) || {};\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n included: showRateIncluded ? included : undefined,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo({ ...rate, availableBoards }),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / priceFactor}\n onPress={rates.length > 1 ? () => 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 {offerPercentage > 0 && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${offerPercentage}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo({ ...rate, availableBoards })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n {isPromocode && (\n <Text bold small className={styles(style.tag, style.highlight)}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) &&\n style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${promoPercentage}%` : ''}\n </Text>\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={boards.length > 1 ? () => onBoard(board) : undefined}\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 showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n priceFactor: PropTypes.number,\n promocodeForAll: PropTypes.bool,\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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"}
|
|
1
|
+
{"version":3,"file":"Item.Rates.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_components","_Item","style","_interopRequireWildcard","_helpers","_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","hideStandaloneBoard","showOffersFirst","showRateIncluded","priceFactor","promocodeForAll","rates","selectedBoard","onBoard","onCancellation","onCancellationInfo","onRate","onOfferInfo","isMobile","useDevice","translate","useLocale","value","finder","promocode","useStore","cancellationId","rateId","id","boardId","length","inlineBoards","inlineCancellations","cancellationsFiltered","filter","_ref2","renderCancellations","createElement","View","className","offset","gap","Text","action","bold","L10N","LABEL_CANCELLATION_POLICY","React","Fragment","row","inlineOptions","undefined","map","_ref3","highlight","name","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","rate","find","board","arguments","confidential","discount","breakdown","isPromocode","type","DISCOUNT_TYPE","PROMOTION","DEAL","percentage","promoPercentage","offerPercentage","RateDetails","tags","LABEL_DISCOUNT","concat","Math","round","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","LABEL_ACCOMMODATION_PLAN","increment","variants","title","TooltipDates","captions","values","parseDate","exports","propTypes","PropTypes","arrayOf","any","shape","bool","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 { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\n\nconst Rates = ({\n availableBoards = [],\n availableRates = [],\n boards = [],\n cancellations = [],\n features: {\n columnMode,\n hideRadio = false,\n hideStandaloneBoard = false,\n showOffersFirst = false,\n showRateIncluded = false,\n } = {},\n priceFactor = 1,\n promocodeForAll,\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 > 0,\n boards: boards.length > (hideStandaloneBoard ? 1 : 0),\n inlineBoards: hideRadio && boards.length > 1 && boards.length <= (columnMode ? 3 : 2),\n inlineCancellations: hideRadio && cancellations.length > 1 && cancellations.length <= (columnMode ? 3 : 2),\n rates: availableRates.length > 0,\n };\n\n const cancellationsFiltered = cancellations.filter(\n ({ id }) => !showOffersFirst || (showOffersFirst && (id === cancellationId || !has.rates)),\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 cancellationsFiltered.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={cancellationsFiltered.length > 1 ? () => onCancellation(id) : undefined}\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 { confidential, discount: { breakdown = [] } = {} } = board || {};\n const isPromocode =\n promocode &&\n !promocodeForAll &&\n breakdown.find(\n ({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION || (type === DISCOUNT_TYPE.DEAL && confidential),\n );\n const { percentage: promoPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n const { percentage: offerPercentage = 0 } =\n breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.DEAL) || {};\n\n return (\n <Option\n key={id}\n caption={\n <RateDetails\n {...{\n countdown,\n included: showRateIncluded ? included : undefined,\n restrictions,\n selectedBoard:\n selectedBoard.rateId === id\n ? selectedBoard\n : availableBoards.filter(({ rateId } = {}) => rateId === id)[0],\n onOfferInfo: () => onOfferInfo({ ...rate, availableBoards }),\n }}\n />\n }\n checked={id === rateId}\n disabled={disabled}\n outlined={hideRadio}\n value={price / priceFactor}\n onPress={rates.length > 1 ? () => 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 {offerPercentage > 0 && (\n <Text action={!isMobile} medium small={isMobile} className={style.tag}>\n {translate(L10N.LABEL_DISCOUNT, { value: `${Math.round(offerPercentage)}%` })}\n </Text>\n )}\n </View>\n\n {name}\n\n {(description || included.length > 0) && (\n <Pressable onPress={() => onOfferInfo({ ...rate, availableBoards })}>\n <Icon paragraph value={ICON.INFO} />\n </Pressable>\n )}\n {isPromocode && (\n <Text bold small className={styles(style.tag, style.highlight)}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) &&\n style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${Math.round(promoPercentage)}%` : ''}\n </Text>\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={boards.length > 1 ? () => onBoard(board) : undefined}\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 showOffersFirst: PropTypes.bool,\n showRateIncluded: PropTypes.bool,\n }),\n priceFactor: PropTypes.number,\n promocodeForAll: PropTypes.bool,\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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"}
|
|
@@ -138,7 +138,7 @@ const Summary = _ref => {
|
|
|
138
138
|
small: true,
|
|
139
139
|
className: [style.tag, style.highlight]
|
|
140
140
|
}, translate(_Item.L10N.LABEL_ONLY_MEMBERS_DISCOUNT, {
|
|
141
|
-
value: !isSoldOut && clubPercentage > 0 ? " -".concat(clubPercentage, "%") : ''
|
|
141
|
+
value: !isSoldOut && clubPercentage > 0 ? " -".concat(Math.round(clubPercentage), "%") : ''
|
|
142
142
|
}).trimEnd()), !isSoldOut && promocode && promocodeForAll && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
143
143
|
bold: true,
|
|
144
144
|
small: true,
|
|
@@ -147,7 +147,7 @@ const Summary = _ref => {
|
|
|
147
147
|
bold: true,
|
|
148
148
|
small: true,
|
|
149
149
|
className: promocode.length > (isMobile ? _Rates.MAX_PROMOCODE.MOBILE : _Rates.MAX_PROMOCODE.DESKTOP) && style.truncate
|
|
150
|
-
}, promocode.toUpperCase()), promoPercentage ? " -".concat(promoPercentage, "%") : '')), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
150
|
+
}, promocode.toUpperCase()), promoPercentage ? " -".concat(Math.round(promoPercentage), "%") : '')), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
151
151
|
row: true,
|
|
152
152
|
className: [style.gap, style.content, isSoldOut && style.end]
|
|
153
153
|
}, !isSoldOut && /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.Summary.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_Rates","_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","promocodeForAll","selected","selectedBoard","taxesType","onSelect","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","finder","promocode","useStore","busy","setBusy","useState","useEffect","keys","length","basePrice","cancellationId","checkoutPrice","confidential","dayPrice","deals","discount","fees","originalPrice","price","rateId","taxes","totalPriceRaw","isSelected","handlePress","undefined","breakdown","percentage","discountPercentage","clubPercentage","find","type","arguments","DISCOUNT_TYPE","CLUB","promoPercentage","PROMOTION","clubOffer","getClubRate","board","rate","_ref2","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","testId","createElement","Fragment","View","className","offset","summary","row","tags","Text","bold","small","tag","highlight","L10N","LABEL_ONLY_MEMBERS_DISCOUNT","concat","trimEnd","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","gap","content","end","headline","level","action","light","lineThrough","pricePer","LABEL_FOR_NIGHTS","LABEL_PER_NIGHT","tiny","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, getClubRate } from '../../helpers';\nimport { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\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 promocodeForAll,\n selected = {},\n selectedBoard = {},\n taxesType,\n onSelect,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency, finder: { promocode } = {} } = {} } = 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 { breakdown = [], percentage: discountPercentage = 0 } = discount || {};\n\n const { percentage: clubPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.CLUB) || {};\n const { percentage: promoPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n\n const clubOffer = getClubRate({\n board: selectedBoard,\n rate: availableRates.find(({ id }) => rateId === id),\n });\n const currencyFormatProps = { currency, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n\n const { testId } = others;\n\n return (\n <>\n <View className={[style.offset, style.summary]}>\n <View row className={style.tags}>\n {clubOffer && (\n <Text bold small className={[style.tag, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS_DISCOUNT, {\n value: !isSoldOut && clubPercentage > 0 ? ` -${clubPercentage}%` : '',\n }).trimEnd()}\n </Text>\n )}\n {!isSoldOut && promocode && promocodeForAll && (\n <Text bold small className={[style.tag, style.highlight]}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) && style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${promoPercentage}%` : ''}\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({ ...currencyFormatProps, value: price / priceFactor })}\n </Text>\n\n {price !== originalPrice && (\n <Text action light className={style.lineThrough}>\n {currencyFormat({ ...currencyFormatProps, value: originalPrice / priceFactor })}\n </Text>\n )}\n </View>\n\n {nights > 1 && (\n <Text small className={style.pricePer}>{`${currencyFormat({\n ...currencyFormatProps,\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={!isMobile} small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n {(discountPercentage > 0 || fees > 0 || taxes > 0) && (\n <PriceDetails {...{ board: selectedBoard, taxesType }} 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 promocodeForAll: PropTypes.bool,\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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"}
|
|
1
|
+
{"version":3,"file":"Item.Summary.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_Item","style","_helpers","_Rates","_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","promocodeForAll","selected","selectedBoard","taxesType","onSelect","others","isMobile","useDevice","currencyFormat","translate","useLocale","value","currency","finder","promocode","useStore","busy","setBusy","useState","useEffect","keys","length","basePrice","cancellationId","checkoutPrice","confidential","dayPrice","deals","discount","fees","originalPrice","price","rateId","taxes","totalPriceRaw","isSelected","handlePress","undefined","breakdown","percentage","discountPercentage","clubPercentage","find","type","arguments","DISCOUNT_TYPE","CLUB","promoPercentage","PROMOTION","clubOffer","getClubRate","board","rate","_ref2","currencyFormatProps","maximumFractionDigits","minimumFractionDigits","testId","createElement","Fragment","View","className","offset","summary","row","tags","Text","bold","small","tag","highlight","L10N","LABEL_ONLY_MEMBERS_DISCOUNT","concat","Math","round","trimEnd","MAX_PROMOCODE","MOBILE","DESKTOP","truncate","toUpperCase","gap","content","end","headline","level","action","light","lineThrough","pricePer","LABEL_FOR_NIGHTS","LABEL_PER_NIGHT","tiny","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, getClubRate } from '../../helpers';\nimport { DISCOUNT_TYPE, MAX_PROMOCODE } from '../../Rates.constants';\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 promocodeForAll,\n selected = {},\n selectedBoard = {},\n taxesType,\n onSelect,\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { currencyFormat, translate } = useLocale();\n const { value: { currency, finder: { promocode } = {} } = {} } = 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 { breakdown = [], percentage: discountPercentage = 0 } = discount || {};\n\n const { percentage: clubPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.CLUB) || {};\n const { percentage: promoPercentage = 0 } = breakdown.find(({ type } = {}) => type === DISCOUNT_TYPE.PROMOTION) || {};\n\n const clubOffer = getClubRate({\n board: selectedBoard,\n rate: availableRates.find(({ id }) => rateId === id),\n });\n const currencyFormatProps = { currency, maximumFractionDigits: 0, minimumFractionDigits: 0 };\n\n const { testId } = others;\n\n return (\n <>\n <View className={[style.offset, style.summary]}>\n <View row className={style.tags}>\n {clubOffer && (\n <Text bold small className={[style.tag, style.highlight]}>\n {translate(L10N.LABEL_ONLY_MEMBERS_DISCOUNT, {\n value: !isSoldOut && clubPercentage > 0 ? ` -${Math.round(clubPercentage)}%` : '',\n }).trimEnd()}\n </Text>\n )}\n {!isSoldOut && promocode && promocodeForAll && (\n <Text bold small className={[style.tag, style.highlight]}>\n <Text\n bold\n small\n className={\n promocode.length > (isMobile ? MAX_PROMOCODE.MOBILE : MAX_PROMOCODE.DESKTOP) && style.truncate\n }\n >\n {promocode.toUpperCase()}\n </Text>\n {promoPercentage ? ` -${Math.round(promoPercentage)}%` : ''}\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({ ...currencyFormatProps, value: price / priceFactor })}\n </Text>\n\n {price !== originalPrice && (\n <Text action light className={style.lineThrough}>\n {currencyFormat({ ...currencyFormatProps, value: originalPrice / priceFactor })}\n </Text>\n )}\n </View>\n\n {nights > 1 && (\n <Text small className={style.pricePer}>{`${currencyFormat({\n ...currencyFormatProps,\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={!isMobile} small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxesType))}\n </Text>\n )}\n\n {(discountPercentage > 0 || fees > 0 || taxes > 0) && (\n <PriceDetails {...{ board: selectedBoard, taxesType }} 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 promocodeForAll: PropTypes.bool,\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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"}
|