@mirai/core 0.3.221 → 0.3.223
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 +10 -0
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/helpers/index.js +11 -0
- package/build/components/Rates/helpers/index.js.map +1 -1
- package/build/components/Rates/helpers/trackSelectItem.js +111 -0
- package/build/components/Rates/helpers/trackSelectItem.js.map +1 -0
- package/build/components/__shared__/Payment/components/PCI/PCI.constants.js +5 -5
- package/build/components/__shared__/Payment/components/PCI/PCI.constants.js.map +1 -1
- package/build/components/__shared__/Payment/components/PCI/PCI.js +13 -2
- package/build/components/__shared__/Payment/components/PCI/PCI.js.map +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +52 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +16 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +46 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +14 -0
- package/build/services/Rates/helpers/parseTracking.js +10 -7
- package/build/services/Rates/helpers/parseTracking.js.map +1 -1
- package/build/services/Rates/rates.js +4 -1
- package/build/services/Rates/rates.js.map +1 -1
- package/package.json +1 -1
|
@@ -221,6 +221,16 @@ const Rates = _ref => {
|
|
|
221
221
|
...board,
|
|
222
222
|
...others
|
|
223
223
|
} : undefined;
|
|
224
|
+
if (board) {
|
|
225
|
+
(0, _helpers.trackSelectItem)({
|
|
226
|
+
...dataSource,
|
|
227
|
+
...(0, _helpers2.fetchUrlParams)(location.search),
|
|
228
|
+
board,
|
|
229
|
+
cart: nextCart,
|
|
230
|
+
isMobile,
|
|
231
|
+
occupation
|
|
232
|
+
});
|
|
233
|
+
}
|
|
224
234
|
setCart(nextCart);
|
|
225
235
|
setExtras();
|
|
226
236
|
login && setLogin(false);
|
|
@@ -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","_helpers2","_services2","_Finder","_helpers3","_SessionLogin","_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","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","session","urlParams","useStore","cart","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","calendar","place","useEffect","debounceFetch","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","trackDataSource","fetchUrlParams","location","search","fetch","nextOccupation","Event","publish","EVENT","FINDER","params","selectedIds","map","join","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","debounce","saveCartInUrl","replaceUrlParams","rates","JSON","stringify","handleClubDiscount","next","handleFinder","values","window","getFinderParams","handleSelect","board","nextCart","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","Header","onClubDiscount","onSelect","row","items","_ref2","index","item","Item","concat","taxesType","selected","onMoreInfo","onRateInfo","rate","name","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport { getCheckoutParams, getFeatures, getFinderParams, getForwarderUrl, signout, trackDataSource } from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { debounce, fetchUrlParams } from '../../helpers';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n // rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // Hook: store cart\n // useEffect(() => {\n // if (!storeCart.length || !dataSource || cart.length) return;\n\n // const boards = dataSource.items\n // .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n // .flat();\n // const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);\n\n // // eslint-disable-next-line no-console\n // console.log('::cart from url::', nextCart);\n\n // // if (storeCart.length === nextCart.length) setCart(nextCart);\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [cart, dataSource, storeCart]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!clubDiscount && !currency && !session) return;\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session]);\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 document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n trackDataSource({ ...dataSource, ...fetchUrlParams(location.search), isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n const urlParams = fetchUrlParams(location.search);\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ id } = {}) => id).join(','),\n session,\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) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && nextOccupation?.length > 1 && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n const saveCartInUrl = (cart = []) => {\n // * DISABLED\n replaceUrlParams({ rates: cart.length ? JSON.stringify(cart.map(({ id } = {}) => id)) : undefined });\n };\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n window.scrollTo({ top: 0, behavior: 'smooth' });\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) saveCartInUrl(nextCart);\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n saveCartInUrl(cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\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 = []) => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: fetchUrlParams(location.search),\n });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\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 <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, cart, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n selected={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && (\n <Footer {...{ cart, dataSource, extras, login, occupation }} onSubmit={() => handleSubmit(cart)} />\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 <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => (multiRoom ? setLogin(false) : handleSelect())}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\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","_helpers2","_services2","_Finder","_helpers3","_SessionLogin","_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","loginShown","Rates","_ref","_dataSource$items","_dataSource$hotels","_dataSource$items2","skeleton","others","isMobile","width","useDevice","translate","useLocale","refRoomSelector","useRef","value","club","discount","currency","finder","forwarder","hotel","id","language","locale","occupation","maxRooms","session","urlParams","useStore","cart","setCart","useState","clubDiscount","setClubDiscount","dataSource","setDataSource","extras","setExtras","fetching","setFetching","undefined","itemInfo","setItemInfo","itemRateInfo","setItemRateInfo","itemUrl","setItemUrl","login","setLogin","responseError","setResponseError","room","setRoom","calendar","place","useEffect","debounceFetch","multiRoom","current","offsetHeight","offsetTop","document","documentElement","scrollTo","top","behavior","trackDataSource","fetchUrlParams","location","search","fetch","nextOccupation","Event","publish","EVENT","FINDER","params","selectedIds","map","join","parties","parseToParties","nextDataSource","ServiceRates","catch","externalSignout","signout","debounce","saveCartInUrl","replaceUrlParams","rates","JSON","stringify","handleClubDiscount","next","handleFinder","values","window","getFinderParams","handleSelect","board","nextCart","trackSelectItem","handleSubmit","isPestana","ServiceFeatures","FEATURES","PESTANA","getCheckoutParams","getOccupationTotals","infantAge","hotelCurrency","selectableExtras","some","included","handleCheckout","href","getForwarderUrl","contentBackground","Theme","features","getFeatures","nights","dateDiff","days","response","roomSelectorProps","onPress","createElement","Fragment","View","ref","className","styles","blur","sticky","backgroundColor","opacity","Finder","assisted","compacted","text","L10N","ACTION_SEARCH","onSubmit","Progress","indeterminate","visible","progress","RoomSelector","role","testId","container","wrapper","content","Content","Header","onClubDiscount","onSelect","row","items","_ref2","index","item","Item","concat","taxesType","selected","onMoreInfo","onRateInfo","rate","name","onViewUrl","info","hotels","CardHotel","Unavailability","Footer","ModalItemInfo","onClose","ModalItemRateInfo","ModalItemUrl","ModalExtras","onCancel","active","Modal","showSignup","title","LABEL_FARE_EXCLUSIVE_MEMBERS","onSuccess","ClubRate","exports","displayName","propTypes","PropTypes","bool"],"sources":["../../../src/components/Rates/Rates.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { dateDiff, useLocale } from '@mirai/locale';\nimport { ServiceFeatures } from '@mirai/services';\nimport { Progress, styles, Theme, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { CardHotel, ClubRate, Item, ModalExtras, ModalItemInfo, ModalItemRateInfo, ModalItemUrl } from './components';\nimport {\n getCheckoutParams,\n getFeatures,\n getFinderParams,\n getForwarderUrl,\n signout,\n trackDataSource,\n trackSelectItem,\n} from './helpers';\nimport { FEATURES } from './Rates.constants';\nimport { Content } from './Rates.Content';\nimport { Footer } from './Rates.Footer';\nimport { Header } 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 { debounce, fetchUrlParams } from '../../helpers';\nimport { ServiceRates } from '../../services';\nimport { Finder } from '../Finder';\nimport { EVENT, getOccupationTotals, opacity, parseToParties, replaceUrlParams } from '../helpers';\nimport { Modal as ModalLogin } from '../Session/Session.Login.Modal';\n\nlet loginShown = false;\n\nconst Rates = ({ skeleton, ...others }) => {\n const { isMobile, width } = useDevice();\n const { translate } = useLocale();\n const refRoomSelector = useRef();\n const {\n value: {\n club: { discount, ...club } = {},\n currency,\n finder = {},\n forwarder,\n hotel = {},\n id,\n language,\n locale,\n occupation: { maxRooms } = {},\n // rates: { cart: storeCart = [] } = {},\n session,\n urlParams,\n },\n } = useStore();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(discount);\n const [dataSource, setDataSource] = useState();\n const [extras, setExtras] = useState();\n const [fetching, setFetching] = useState(undefined);\n const [itemInfo, setItemInfo] = useState();\n const [itemRateInfo, setItemRateInfo] = useState();\n const [itemUrl, setItemUrl] = useState();\n const [login, setLogin] = useState(false);\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n\n const { calendar = [], occupation = [], place = {} } = finder;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n // Hook: store cart\n // useEffect(() => {\n // if (!storeCart.length || !dataSource || cart.length) return;\n\n // const boards = dataSource.items\n // .map(({ boards = [], name: roomName }) => boards.map((board) => ({ ...board, roomName })))\n // .flat();\n // const nextCart = storeCart.map((id) => boards.find((board) => board.id === id)).filter((board) => !!board);\n\n // // eslint-disable-next-line no-console\n // console.log('::cart from url::', nextCart);\n\n // // if (storeCart.length === nextCart.length) setCart(nextCart);\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [cart, dataSource, storeCart]);\n\n // -- hooks ----------------------------------------------------------------------------------------------------------\n useEffect(() => {\n if (!clubDiscount && !currency && !session) return;\n setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session]);\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 document.documentElement.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n debounceFetch(room);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n if (!dataSource || room) return;\n trackDataSource({ ...dataSource, ...fetchUrlParams(location.search), isMobile, occupation, place });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource]);\n\n // -- methods --------------------------------------------------------------------------------------------------------\n const fetch = async (room, nextOccupation = occupation) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n setFetching(true);\n setResponseError();\n\n const urlParams = fetchUrlParams(location.search);\n const params = {\n ...urlParams,\n club,\n clubDiscount,\n id,\n locale,\n maxRooms,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ id } = {}) => id).join(','),\n session,\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) signout({ club, language });\n else setDataSource(nextDataSource);\n\n if (nextDataSource && nextOccupation?.length > 1 && room === undefined) setRoom(0);\n\n setFetching(false);\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n const saveCartInUrl = (cart = []) => {\n // * DISABLED\n replaceUrlParams({ rates: cart.length ? JSON.stringify(cart.map(({ id } = {}) => id)) : undefined });\n };\n\n // -- handlers -------------------------------------------------------------------------------------------------------\n const handleClubDiscount = async (next) => {\n setClubDiscount(next);\n login && setLogin(false);\n };\n\n const handleFinder = (values = {}) => {\n setCart([]);\n setDataSource(undefined);\n window.scrollTo({ top: 0, behavior: 'smooth' });\n\n replaceUrlParams(getFinderParams({ ...values, hotel }));\n debounceFetch(undefined, values.occupation);\n };\n\n const handleSelect = (board, others) => {\n const nextCart = [...cart];\n nextCart[room || 0] = board ? { ...board, ...others } : undefined;\n\n if (board) {\n trackSelectItem({\n ...dataSource,\n ...fetchUrlParams(location.search),\n board,\n cart: nextCart,\n isMobile,\n occupation,\n });\n }\n\n setCart(nextCart);\n setExtras();\n login && setLogin(false);\n\n if (!multiRoom && !!board) handleSubmit(nextCart);\n if (multiRoom && board && room < occupation.length - 1) return setRoom(room + 1);\n if (!board) saveCartInUrl(nextCart);\n };\n\n // eslint-disable-next-line no-unused-vars\n const handleSubmit = async (cart) => {\n const isPestana = ServiceFeatures.get(FEATURES.PESTANA, id) || false;\n setLogin(false);\n\n if (!isPestana && clubDiscount && !session && !loginShown) {\n loginShown = true;\n return setLogin(true);\n }\n\n saveCartInUrl(cart);\n\n const { extras = [] } = await ServiceRates.extras({\n ...getCheckoutParams({ cart, clubDiscount, currency, forwarder, urlParams: fetchUrlParams(location.search) }),\n ...getOccupationTotals({ infantAge: dataSource.infantAge, occupation }),\n hotelCurrency: dataSource.currency,\n locale,\n }).catch(() => {});\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 = []) => {\n document.location.href = getForwarderUrl({\n cart,\n clubDiscount,\n currency,\n extras,\n forwarder,\n session,\n urlParams: fetchUrlParams(location.search),\n });\n };\n\n const { contentBackground } = Theme.get();\n const features = getFeatures(id, urlParams);\n const multiRoom = occupation?.length > 1;\n const nights = dateDiff(calendar[0], calendar[1]).days;\n const response = dataSource !== undefined;\n const roomSelectorProps = { cart, occupation, room, onPress: setRoom };\n\n return (\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 <Finder assisted={!isMobile} compacted text={translate(L10N.ACTION_SEARCH)} onSubmit={handleFinder} />\n </View>\n\n <Progress indeterminate visible={fetching && !responseError} className={style.progress} />\n\n {isMobile && !responseError && <RoomSelector {...roomSelectorProps} />}\n\n <View role=\"rates\" testId={others.testId} className={styles(style.container, others.className)}>\n <View className={[style.wrapper, style.content]}>\n {response && !responseError && <Content {...dataSource} {...others} />}\n\n {(response || (multiRoom && !responseError)) && (\n <Header\n {...{\n clubDiscount,\n dataSource,\n features,\n multiRoom,\n onClubDiscount: handleClubDiscount,\n onSelect: handleSelect,\n }}\n >\n {!isMobile && <RoomSelector {...roomSelectorProps} />}\n </Header>\n )}\n\n {response ? (\n <View row={!isMobile} className={style.items}>\n {dataSource.items?.map(({ id, ...item }, index) => (\n <Item\n key={`${id || index}:${fetching}:${width}`}\n {...{ id, cart, ...item, features, multiRoom, nights, room, taxesType: dataSource.taxesType }}\n selected={cart[room || 0]}\n onMoreInfo={() => setItemInfo(item)}\n onRateInfo={(rate) => setItemRateInfo({ ...rate, name: item.name })}\n onSelect={handleSelect}\n onViewUrl={(info) => setItemUrl(info)}\n />\n ))}\n\n {dataSource.hotels?.map((item = {}) => (\n <CardHotel key={item.id} {...item} />\n ))}\n </View>\n ) : responseError ? (\n <Unavailability {...responseError} />\n ) : (\n <Skeleton multiRoom={multiRoom} />\n )}\n </View>\n\n {multiRoom && (\n <Footer {...{ cart, dataSource, extras, login, occupation }} onSubmit={() => handleSubmit(cart)} />\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 <ModalItemRateInfo {...itemRateInfo} visible={!!itemRateInfo} onClose={() => setItemRateInfo()} />\n <ModalItemUrl {...itemUrl} visible={!!itemUrl} onClose={() => setItemUrl()} />\n <ModalExtras\n {...{ ...dataSource, cart, extras }}\n visible={!!extras}\n onCancel={() => (multiRoom ? setExtras() : handleSelect())}\n onSubmit={(extras) => handleCheckout(cart, extras)}\n />\n {club.active && dataSource.items?.length > 0 && (\n <ModalLogin\n showSignup={false}\n title={translate(L10N.LABEL_FARE_EXCLUSIVE_MEMBERS)}\n visible={login}\n onClose={() => (multiRoom ? setLogin(false) : handleSelect())}\n onSuccess={() => handleSubmit(cart)}\n >\n <ClubRate onCancel={() => handleClubDiscount(false)} onSubmit={() => handleSubmit(cart)} />\n </ModalLogin>\n )}\n </>\n )}\n </>\n );\n};\n\nRates.displayName = 'Mirai:Core:Rates';\n\nRates.propTypes = {\n skeleton: PropTypes.bool,\n};\n\nexport { Rates };\n"],"mappings":"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"}
|
|
@@ -80,4 +80,15 @@ Object.keys(_trackDataSource).forEach(function (key) {
|
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
});
|
|
83
|
+
var _trackSelectItem = require("./trackSelectItem");
|
|
84
|
+
Object.keys(_trackSelectItem).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (key in exports && exports[key] === _trackSelectItem[key]) return;
|
|
87
|
+
Object.defineProperty(exports, key, {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return _trackSelectItem[key];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
83
94
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_getCheckoutParams","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getFeatures","_getFinderParams","_getForwarderUrl","_getLabelTaxes","_signout","_trackDataSource"],"sources":["../../../../src/components/Rates/helpers/index.js"],"sourcesContent":["export * from './getCheckoutParams';\nexport * from './getFeatures';\nexport * from './getFinderParams';\nexport * from './getForwarderUrl';\nexport * from './getLabelTaxes';\nexport * from './signout';\nexport * from './trackDataSource';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getCheckoutParams","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getFeatures","_getFinderParams","_getForwarderUrl","_getLabelTaxes","_signout","_trackDataSource","_trackSelectItem"],"sources":["../../../../src/components/Rates/helpers/index.js"],"sourcesContent":["export * from './getCheckoutParams';\nexport * from './getFeatures';\nexport * from './getFinderParams';\nexport * from './getForwarderUrl';\nexport * from './getLabelTaxes';\nexport * from './signout';\nexport * from './trackDataSource';\nexport * from './trackSelectItem';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.trackSelectItem = void 0;
|
|
7
|
+
var _locale = require("@mirai/locale");
|
|
8
|
+
var _helpers = require("../../helpers");
|
|
9
|
+
const trackSelectItem = function () {
|
|
10
|
+
var _rates$find, _cart$map;
|
|
11
|
+
let {
|
|
12
|
+
board: {
|
|
13
|
+
id,
|
|
14
|
+
name: board,
|
|
15
|
+
rateId,
|
|
16
|
+
roomId,
|
|
17
|
+
roomName: room
|
|
18
|
+
},
|
|
19
|
+
cart,
|
|
20
|
+
checkin,
|
|
21
|
+
clientCode,
|
|
22
|
+
isMobile,
|
|
23
|
+
items = [],
|
|
24
|
+
lang: language,
|
|
25
|
+
nights,
|
|
26
|
+
occupation,
|
|
27
|
+
tracking: {
|
|
28
|
+
country,
|
|
29
|
+
hotelInfo,
|
|
30
|
+
rates: rooms,
|
|
31
|
+
userCurrency
|
|
32
|
+
} = {}
|
|
33
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
34
|
+
const {
|
|
35
|
+
adults,
|
|
36
|
+
children
|
|
37
|
+
} = (0, _helpers.getOccupationTotals)({
|
|
38
|
+
occupation
|
|
39
|
+
});
|
|
40
|
+
const {
|
|
41
|
+
rates = []
|
|
42
|
+
} = items.find(function () {
|
|
43
|
+
let {
|
|
44
|
+
id
|
|
45
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
46
|
+
return id === roomId;
|
|
47
|
+
}) || {};
|
|
48
|
+
const getBoard = (roomId, rateId, boardId) => {
|
|
49
|
+
var _options$Object$keys$, _options$Object$keys$2;
|
|
50
|
+
const {
|
|
51
|
+
occupationOptions: options
|
|
52
|
+
} = rooms.find(function () {
|
|
53
|
+
let {
|
|
54
|
+
id
|
|
55
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
56
|
+
return id === roomId;
|
|
57
|
+
});
|
|
58
|
+
return ((_options$Object$keys$ = options[Object.keys(options)[0]]) === null || _options$Object$keys$ === void 0 ? void 0 : (_options$Object$keys$2 = _options$Object$keys$.rates[rateId]) === null || _options$Object$keys$2 === void 0 ? void 0 : _options$Object$keys$2.boardOptions[boardId]) || {};
|
|
59
|
+
};
|
|
60
|
+
const {
|
|
61
|
+
totalBasePrice: totalPriceWithoutTaxes,
|
|
62
|
+
totalPrice: totalPriceWithTaxes
|
|
63
|
+
} = getBoard(roomId, rateId, id);
|
|
64
|
+
(0, _helpers.trace)({
|
|
65
|
+
bookingValues: {
|
|
66
|
+
checkin,
|
|
67
|
+
checkout: (0, _locale.dateFormat)((0, _locale.dateCalc)((0, _locale.parseDate)(checkin), parseInt(nights), 'days'), {
|
|
68
|
+
format: 'DD/MM/YYYY'
|
|
69
|
+
}),
|
|
70
|
+
clientCode,
|
|
71
|
+
device: isMobile ? 'MOBILE' : 'DESKTOP_TABLET',
|
|
72
|
+
language,
|
|
73
|
+
nights,
|
|
74
|
+
occupation: adults + children,
|
|
75
|
+
userCurrency
|
|
76
|
+
},
|
|
77
|
+
cartElement: {
|
|
78
|
+
board,
|
|
79
|
+
id,
|
|
80
|
+
num: 1,
|
|
81
|
+
rate: (_rates$find = rates.find(function () {
|
|
82
|
+
let {
|
|
83
|
+
id
|
|
84
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
85
|
+
return id === rateId;
|
|
86
|
+
})) === null || _rates$find === void 0 ? void 0 : _rates$find.name,
|
|
87
|
+
room,
|
|
88
|
+
totalPriceWithoutTaxes,
|
|
89
|
+
totalPriceWithTaxes
|
|
90
|
+
},
|
|
91
|
+
cartTotalPrice: (_cart$map = cart.map(function () {
|
|
92
|
+
let {
|
|
93
|
+
id,
|
|
94
|
+
rateId,
|
|
95
|
+
roomId
|
|
96
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
97
|
+
return getBoard(roomId, rateId, id);
|
|
98
|
+
})) === null || _cart$map === void 0 ? void 0 : _cart$map.reduce(function (value) {
|
|
99
|
+
let {
|
|
100
|
+
totalPrice = 0
|
|
101
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
102
|
+
return value + totalPrice;
|
|
103
|
+
}, 0),
|
|
104
|
+
country,
|
|
105
|
+
hotelInfo,
|
|
106
|
+
status: 'ADD_TO_CART',
|
|
107
|
+
step: _helpers.STEP.RATES
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
exports.trackSelectItem = trackSelectItem;
|
|
111
|
+
//# sourceMappingURL=trackSelectItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackSelectItem.js","names":["_locale","require","_helpers","trackSelectItem","_rates$find","_cart$map","board","id","name","rateId","roomId","roomName","room","cart","checkin","clientCode","isMobile","items","lang","language","nights","occupation","tracking","country","hotelInfo","rates","rooms","userCurrency","arguments","length","undefined","adults","children","getOccupationTotals","find","getBoard","boardId","_options$Object$keys$","_options$Object$keys$2","occupationOptions","options","Object","keys","boardOptions","totalBasePrice","totalPriceWithoutTaxes","totalPrice","totalPriceWithTaxes","trace","bookingValues","checkout","dateFormat","dateCalc","parseDate","parseInt","format","device","cartElement","num","rate","cartTotalPrice","map","reduce","value","status","step","STEP","RATES","exports"],"sources":["../../../../src/components/Rates/helpers/trackSelectItem.js"],"sourcesContent":["import { dateCalc, parseDate, dateFormat } from '@mirai/locale';\n\nimport { getOccupationTotals, STEP, trace } from '../../helpers';\n\nexport const trackSelectItem = ({\n board: { id, name: board, rateId, roomId, roomName: room },\n cart,\n checkin,\n clientCode,\n isMobile,\n items = [],\n lang: language,\n nights,\n occupation,\n tracking: { country, hotelInfo, rates: rooms, userCurrency } = {},\n} = {}) => {\n const { adults, children } = getOccupationTotals({ occupation });\n const { rates = [] } = items.find(({ id } = {}) => id === roomId) || {};\n const getBoard = (roomId, rateId, boardId) => {\n const { occupationOptions: options } = rooms.find(({ id } = {}) => id === roomId);\n\n return options[Object.keys(options)[0]]?.rates[rateId]?.boardOptions[boardId] || {};\n };\n\n const { totalBasePrice: totalPriceWithoutTaxes, totalPrice: totalPriceWithTaxes } = getBoard(roomId, rateId, id);\n\n trace({\n bookingValues: {\n checkin,\n checkout: dateFormat(dateCalc(parseDate(checkin), parseInt(nights), 'days'), { format: 'DD/MM/YYYY' }),\n clientCode,\n device: isMobile ? 'MOBILE' : 'DESKTOP_TABLET',\n language,\n nights,\n occupation: adults + children,\n userCurrency,\n },\n cartElement: {\n board,\n id,\n num: 1,\n rate: rates.find(({ id } = {}) => id === rateId)?.name,\n room,\n totalPriceWithoutTaxes,\n totalPriceWithTaxes,\n },\n cartTotalPrice: cart\n .map(({ id, rateId, roomId } = {}) => getBoard(roomId, rateId, id))\n ?.reduce((value, { totalPrice = 0 } = {}) => value + totalPrice, 0),\n country,\n hotelInfo,\n status: 'ADD_TO_CART',\n step: STEP.RATES,\n });\n};\n"],"mappings":"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"}
|
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SCRIPT_ID = exports.PLACEHOLDER_CVV = exports.PLACEHOLDER_CARD = exports.
|
|
6
|
+
exports.SCRIPT_ID = exports.PLACEHOLDER_CVV = exports.PLACEHOLDER_CARD = exports.ERROR = exports.CARDS = void 0;
|
|
7
7
|
var _Payment = require("../../Payment.constants");
|
|
8
|
-
const
|
|
9
|
-
error: true
|
|
10
|
-
};
|
|
11
|
-
const PCI_CARD = exports.PCI_CARD = {
|
|
8
|
+
const CARDS = exports.CARDS = {
|
|
12
9
|
VIS: _Payment.CARD.VISA,
|
|
13
10
|
AMX: _Payment.CARD.AMERICAN_EXPRESS,
|
|
14
11
|
ECA: _Payment.CARD.MASTERCARD,
|
|
@@ -18,6 +15,9 @@ const PCI_CARD = exports.PCI_CARD = {
|
|
|
18
15
|
CUP: _Payment.CARD.UNIONPAY,
|
|
19
16
|
MAU: _Payment.CARD.MAESTRO
|
|
20
17
|
};
|
|
18
|
+
const ERROR = exports.ERROR = {
|
|
19
|
+
error: true
|
|
20
|
+
};
|
|
21
21
|
const PLACEHOLDER_CARD = exports.PLACEHOLDER_CARD = '0000 0000 0000 0000';
|
|
22
22
|
const PLACEHOLDER_CVV = exports.PLACEHOLDER_CVV = '000';
|
|
23
23
|
const SCRIPT_ID = exports.SCRIPT_ID = 'script-pci-proxy';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PCI.constants.js","names":["_Payment","require","
|
|
1
|
+
{"version":3,"file":"PCI.constants.js","names":["_Payment","require","CARDS","exports","VIS","CARD","VISA","AMX","AMERICAN_EXPRESS","ECA","MASTERCARD","JCB","DIS","DISCOVER","DIN","DINERS_CLUB","CUP","UNIONPAY","MAU","MAESTRO","ERROR","error","PLACEHOLDER_CARD","PLACEHOLDER_CVV","SCRIPT_ID"],"sources":["../../../../../../src/components/__shared__/Payment/components/PCI/PCI.constants.js"],"sourcesContent":["import { CARD } from '../../Payment.constants';\n\nconst CARDS = {\n VIS: CARD.VISA,\n AMX: CARD.AMERICAN_EXPRESS,\n ECA: CARD.MASTERCARD,\n JCB: CARD.JCB,\n DIS: CARD.DISCOVER,\n DIN: CARD.DINERS_CLUB,\n CUP: CARD.UNIONPAY,\n MAU: CARD.MAESTRO,\n};\n\nconst ERROR = { error: true };\n\nconst PLACEHOLDER_CARD = '0000 0000 0000 0000';\n\nconst PLACEHOLDER_CVV = '000';\n\nconst SCRIPT_ID = 'script-pci-proxy';\n\nexport { CARDS, ERROR, PLACEHOLDER_CARD, PLACEHOLDER_CVV, SCRIPT_ID };\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG;EACZE,GAAG,EAAEC,aAAI,CAACC,IAAI;EACdC,GAAG,EAAEF,aAAI,CAACG,gBAAgB;EAC1BC,GAAG,EAAEJ,aAAI,CAACK,UAAU;EACpBC,GAAG,EAAEN,aAAI,CAACM,GAAG;EACbC,GAAG,EAAEP,aAAI,CAACQ,QAAQ;EAClBC,GAAG,EAAET,aAAI,CAACU,WAAW;EACrBC,GAAG,EAAEX,aAAI,CAACY,QAAQ;EAClBC,GAAG,EAAEb,aAAI,CAACc;AACZ,CAAC;AAED,MAAMC,KAAK,GAAAjB,OAAA,CAAAiB,KAAA,GAAG;EAAEC,KAAK,EAAE;AAAK,CAAC;AAE7B,MAAMC,gBAAgB,GAAAnB,OAAA,CAAAmB,gBAAA,GAAG,qBAAqB;AAE9C,MAAMC,eAAe,GAAApB,OAAA,CAAAoB,eAAA,GAAG,KAAK;AAE7B,MAAMC,SAAS,GAAArB,OAAA,CAAAqB,SAAA,GAAG,kBAAkB"}
|
|
@@ -23,6 +23,7 @@ let secureFields;
|
|
|
23
23
|
const PCI = _ref => {
|
|
24
24
|
var _form$card, _form$name, _form$name2, _form$expire, _form$expire2, _form$cvv;
|
|
25
25
|
let {
|
|
26
|
+
cards = [],
|
|
26
27
|
publicKey = process.env.METHOD_PCIPROXY_PUBLICKEY,
|
|
27
28
|
showCVV = true,
|
|
28
29
|
showErrors = false,
|
|
@@ -78,7 +79,16 @@ const PCI = _ref => {
|
|
|
78
79
|
...(showCVV ? {
|
|
79
80
|
cvv: 'cvv'
|
|
80
81
|
} : undefined)
|
|
81
|
-
},
|
|
82
|
+
}, {
|
|
83
|
+
...(0, _helpers.getStyle)(),
|
|
84
|
+
paymentMethods: Object.entries(_PCI.CARDS).filter(function () {
|
|
85
|
+
let [, value] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
86
|
+
return cards.includes(value);
|
|
87
|
+
}).map(function () {
|
|
88
|
+
let [key] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
89
|
+
return key;
|
|
90
|
+
})
|
|
91
|
+
});
|
|
82
92
|
|
|
83
93
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
94
|
}, [publicKey, ready]);
|
|
@@ -162,7 +172,7 @@ const PCI = _ref => {
|
|
|
162
172
|
setForm({
|
|
163
173
|
...form,
|
|
164
174
|
card: cardNumber,
|
|
165
|
-
type: cardNumber.valid ? _PCI.
|
|
175
|
+
type: cardNumber.valid ? _PCI.CARDS[cardNumber.paymentMethod] : undefined
|
|
166
176
|
});
|
|
167
177
|
error.card = !cardNumber.valid && cardNumber.length > 0 ? {
|
|
168
178
|
format: true
|
|
@@ -293,6 +303,7 @@ const PCI = _ref => {
|
|
|
293
303
|
exports.PCI = PCI;
|
|
294
304
|
PCI.displayName = 'Mirai:Payments:PCI';
|
|
295
305
|
PCI.propTypes = {
|
|
306
|
+
cards: _propTypes.default.array,
|
|
296
307
|
publicKey: _propTypes.default.string,
|
|
297
308
|
showCVV: _propTypes.default.bool,
|
|
298
309
|
showErrors: _propTypes.default.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PCI.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_PCI","_PCI2","style","_ButtonPayment","_InputField","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","secureFields","PCI","_ref","_form$card","_form$name","_form$name2","_form$expire","_form$expire2","_form$cvv","publicKey","process","env","METHOD_PCIPROXY_PUBLICKEY","showCVV","showErrors","onChange","onError","others","translate","useLocale","value","payment","useStore","form","setForm","useState","formError","setFormError","card","name","expire","cvv","undefined","ready","setReady","responseError","setResponseError","useEffect","exists","document","getElementById","SCRIPT_ID","script","createElement","id","src","METHOD_PCIPROXY_SCRIPT","onload","handleLoad","head","appendChild","_secureFields","el","parentNode","removeChild","destroy","SecureFields","initTokenize","cardNumber","getStyle","_secureFields2","_secureFields3","_secureFields4","_secureFields5","on","handleChangeSecure","handleTokenError","handleReady","handleSuccess","addEventListener","EVENT_CTA_PRESS","handleButtonPress","keys","length","removeEventListener","type","fromEntries","entries","filter","_ref2","_ref3","month","year","split","submit","expm","expy","handleChange","field","arguments","formatValues","_ref4","fields","event","isKeyUp","isCardEmpty","isCvvEmpty","error","valid","PCI_CARD","paymentMethod","format","required","handleError","test","setPlaceholder","PLACEHOLDER_CARD","PLACEHOLDER_CVV","_ref5","transactionId","ERROR","testId","View","Text","action","L10N","LABEL_SECURE_PAGE","InputField","label","LABEL_CARD_NUMBER","showRequired","success","concat","className","input","LABEL_CARD_NAME","Input","row","LABEL_EXPIRATION","maxLength","placeholder","LABEL_MONTH_FORMAT","LABEL_YEAR_FORMAT","testExpire","LABEL_CVV","Notification","small","wide","NOTIFICATION_ERROR_PCI","exports","displayName","propTypes","PropTypes","string","bool","func"],"sources":["../../../../../../src/components/__shared__/Payment/components/PCI/PCI.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Input, Notification, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { formatValues, getStyle } from './helpers';\nimport { ERROR, PCI_CARD, PLACEHOLDER_CARD, PLACEHOLDER_CVV, SCRIPT_ID } from './PCI.constants';\nimport { L10N } from './PCI.l10n';\nimport * as style from './PCI.module.css';\nimport { EVENT_CTA_PRESS } from '../../../ButtonPayment/ButtonPayment.constants';\nimport { InputField } from '../../../ButtonPayment/components/InputField';\nimport { testExpire } from '../Card/helpers';\n\nlet secureFields;\n\nconst PCI = ({\n publicKey = process.env.METHOD_PCIPROXY_PUBLICKEY,\n showCVV = true,\n showErrors = false,\n onChange = () => {},\n onError = () => {},\n ...others\n}) => {\n const { translate } = useLocale();\n const { value: { payment = {} } = {}, value, set } = useStore();\n\n const [form, setForm] = useState({});\n const [formError, setFormError] = useState({\n card: {},\n name: {},\n expire: {},\n ...(showCVV ? { cvv: {} } : undefined),\n });\n const [ready, setReady] = useState(false);\n const [responseError, setResponseError] = useState(false);\n\n useEffect(() => {\n const exists = document.getElementById(SCRIPT_ID);\n if (!exists) {\n const script = document.createElement('script');\n script.id = SCRIPT_ID;\n script.src = process.env.METHOD_PCIPROXY_SCRIPT;\n script.onload = handleLoad;\n\n document.head.appendChild(script);\n }\n\n return () => {\n const el = document.getElementById(SCRIPT_ID);\n el.parentNode.removeChild(el);\n secureFields?.destroy();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!ready) return;\n\n onError(formError);\n // eslint-disable-next-line no-undef\n secureFields = new SecureFields();\n secureFields.initTokenize(publicKey, { cardNumber: 'card', ...(showCVV ? { cvv: 'cvv' } : undefined) }, getStyle());\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [publicKey, ready]);\n\n useEffect(() => {\n secureFields?.on('change', handleChangeSecure);\n secureFields?.on('error', handleTokenError);\n secureFields?.on('ready', handleReady);\n secureFields?.on('success', handleSuccess);\n\n document.addEventListener(EVENT_CTA_PRESS, handleButtonPress);\n\n if (Object.keys(formError).length === 0) onError({});\n\n return () => document.removeEventListener(EVENT_CTA_PRESS, handleButtonPress);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form, formError, ready, responseError, value]);\n\n useEffect(() => {\n onChange({ expire: form.expire, name: form.name, type: form.type });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError(Object.fromEntries(Object.entries(formError).filter(([, value]) => value !== undefined)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formError, responseError]);\n\n const handleButtonPress = () => {\n if (Object.entries(formError).filter(([, value]) => value !== undefined).length > 0) return;\n\n setResponseError();\n const [month, year] = form.expire.split('/');\n secureFields.submit({ expm: month, expy: year });\n };\n\n const handleChange = (field, value = '') => {\n setResponseError();\n\n const { expire, name } = formatValues({ ...{ expire: form.expire, name: form.name }, [field]: value }, form);\n setForm({ ...form, expire, name });\n };\n\n const handleChangeSecure = ({ fields: { cardNumber = {}, cvv = {} } = {}, event: { type, field } = {} }) => {\n const isKeyUp = type === 'keyUp';\n const isCardEmpty = field === 'cardNumber' && cardNumber.length === 0 && !form.card;\n const isCvvEmpty = field === 'cvv' && cvv.length === 0 && !form.cvv;\n\n if (!isKeyUp || (isKeyUp && (isCardEmpty || isCvvEmpty))) return;\n\n setResponseError();\n\n const error = { ...formError };\n if (field === 'cardNumber') {\n setForm({ ...form, card: cardNumber, type: cardNumber.valid ? PCI_CARD[cardNumber.paymentMethod] : undefined });\n error.card =\n !cardNumber.valid && cardNumber.length > 0\n ? { format: true }\n : cardNumber.length === 0\n ? { required: true }\n : undefined;\n } else if (field === 'cvv') {\n setForm({ ...form, cvv });\n error.cvv = !cvv.valid && cvv.length > 0 ? { format: true } : cvv.length === 0 ? { required: true } : undefined;\n }\n\n setFormError(error);\n };\n\n const handleError = (field, { required, test } = {}) => {\n if (!ready) return;\n\n setFormError((formError) => ({\n ...formError,\n ...{ [field]: required ? { required: true } : test ? { format: true } : undefined },\n }));\n };\n\n const handleLoad = () => {\n setReady(true);\n };\n\n const handleReady = () => {\n secureFields.setPlaceholder('cardNumber', PLACEHOLDER_CARD);\n showCVV && secureFields.setPlaceholder('cvv', PLACEHOLDER_CVV);\n };\n\n const handleSuccess = ({ transactionId }) => {\n set({ payment: { ...payment, transactionId } });\n };\n\n const handleTokenError = () => {\n setResponseError(ERROR);\n set({ payment: { ...payment, error: ERROR } });\n };\n\n const { testId } = others;\n\n return (\n <View {...others}>\n <Text action>{translate(L10N.LABEL_SECURE_PAGE)}</Text>\n\n <InputField\n id=\"checkout-card\"\n label={translate(L10N.LABEL_CARD_NUMBER)}\n error={(showErrors && (!form.card || form.card?.length === 0)) || Object.keys(formError.card || {}).length > 0}\n showRequired\n success={!formError.card}\n testId={testId ? `${testId}-PCI-card` : undefined}\n >\n <div id=\"card\" className={style.input} />\n </InputField>\n <InputField\n error={(showErrors && (!form.name || form.name?.length === 0)) || Object.keys(formError.name || {}).length > 0}\n label={translate(L10N.LABEL_CARD_NAME)}\n showRequired\n success={form.name?.length > 0 && !formError.name}\n testId={testId ? `${testId}-PCI-name` : undefined}\n >\n <Input\n id=\"checkout-name\"\n name=\"name\"\n required\n value={form.name}\n onChange={(value) => handleChange('name', value)}\n onError={(error) => handleError('name', error)}\n />\n </InputField>\n <View row>\n <InputField\n error={\n (showErrors && (!form.expire || form.expire?.length === 0)) ||\n Object.keys(formError.expire || {}).length > 0\n }\n label={translate(L10N.LABEL_EXPIRATION)}\n showRequired\n success={form.expire?.length > 0 && !formError.expire}\n className={style.expire}\n testId={testId ? `${testId}-PCI-expire` : undefined}\n >\n <Input\n id=\"checkout-expire\"\n maxLength={5}\n name=\"expire\"\n placeholder={`${translate(L10N.LABEL_MONTH_FORMAT)}/${translate(L10N.LABEL_YEAR_FORMAT)}`}\n required\n test={(expire) => expire.length === 0 || (expire?.length > 0 && testExpire(expire))}\n value={form.expire}\n onChange={(value) => handleChange('expire', value)}\n onError={(error) => handleError('expire', error)}\n />\n </InputField>\n {showCVV && (\n <InputField\n id=\"checkout-cvv\"\n label={translate(L10N.LABEL_CVV)}\n error={(showErrors && (!form.cvv || form.cvv?.length === 0)) || Object.keys(formError.cvv || {}).length > 0}\n showRequired\n success={!formError.cvv}\n className={style.cvv}\n testId={testId ? `${testId}-PCI-CVV` : undefined}\n >\n <div id=\"cvv\" className={style.input} />\n </InputField>\n )}\n </View>\n\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR_PCI)}\n </Notification>\n )}\n </View>\n );\n};\n\nPCI.displayName = 'Mirai:Payments:PCI';\n\nPCI.propTypes = {\n publicKey: PropTypes.string,\n showCVV: PropTypes.bool,\n showErrors: PropTypes.bool,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n};\n\nexport { PCI };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PCI.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_PCI","_PCI2","style","_ButtonPayment","_InputField","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","secureFields","PCI","_ref","_form$card","_form$name","_form$name2","_form$expire","_form$expire2","_form$cvv","cards","publicKey","process","env","METHOD_PCIPROXY_PUBLICKEY","showCVV","showErrors","onChange","onError","others","translate","useLocale","value","payment","useStore","form","setForm","useState","formError","setFormError","card","name","expire","cvv","undefined","ready","setReady","responseError","setResponseError","useEffect","exists","document","getElementById","SCRIPT_ID","script","createElement","id","src","METHOD_PCIPROXY_SCRIPT","onload","handleLoad","head","appendChild","_secureFields","el","parentNode","removeChild","destroy","SecureFields","initTokenize","cardNumber","getStyle","paymentMethods","entries","CARDS","filter","arguments","length","includes","map","key","_secureFields2","_secureFields3","_secureFields4","_secureFields5","on","handleChangeSecure","handleTokenError","handleReady","handleSuccess","addEventListener","EVENT_CTA_PRESS","handleButtonPress","keys","removeEventListener","type","fromEntries","_ref2","_ref3","month","year","split","submit","expm","expy","handleChange","field","formatValues","_ref4","fields","event","isKeyUp","isCardEmpty","isCvvEmpty","error","valid","paymentMethod","format","required","handleError","test","setPlaceholder","PLACEHOLDER_CARD","PLACEHOLDER_CVV","_ref5","transactionId","ERROR","testId","View","Text","action","L10N","LABEL_SECURE_PAGE","InputField","label","LABEL_CARD_NUMBER","showRequired","success","concat","className","input","LABEL_CARD_NAME","Input","row","LABEL_EXPIRATION","maxLength","placeholder","LABEL_MONTH_FORMAT","LABEL_YEAR_FORMAT","testExpire","LABEL_CVV","Notification","small","wide","NOTIFICATION_ERROR_PCI","exports","displayName","propTypes","PropTypes","array","string","bool","func"],"sources":["../../../../../../src/components/__shared__/Payment/components/PCI/PCI.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Input, Notification, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { formatValues, getStyle } from './helpers';\nimport { CARDS, ERROR, PLACEHOLDER_CARD, PLACEHOLDER_CVV, SCRIPT_ID } from './PCI.constants';\nimport { L10N } from './PCI.l10n';\nimport * as style from './PCI.module.css';\nimport { EVENT_CTA_PRESS } from '../../../ButtonPayment/ButtonPayment.constants';\nimport { InputField } from '../../../ButtonPayment/components/InputField';\nimport { testExpire } from '../Card/helpers';\n\nlet secureFields;\n\nconst PCI = ({\n cards = [],\n publicKey = process.env.METHOD_PCIPROXY_PUBLICKEY,\n showCVV = true,\n showErrors = false,\n onChange = () => {},\n onError = () => {},\n ...others\n}) => {\n const { translate } = useLocale();\n const { value: { payment = {} } = {}, value, set } = useStore();\n\n const [form, setForm] = useState({});\n const [formError, setFormError] = useState({\n card: {},\n name: {},\n expire: {},\n ...(showCVV ? { cvv: {} } : undefined),\n });\n const [ready, setReady] = useState(false);\n const [responseError, setResponseError] = useState(false);\n\n useEffect(() => {\n const exists = document.getElementById(SCRIPT_ID);\n if (!exists) {\n const script = document.createElement('script');\n script.id = SCRIPT_ID;\n script.src = process.env.METHOD_PCIPROXY_SCRIPT;\n script.onload = handleLoad;\n\n document.head.appendChild(script);\n }\n\n return () => {\n const el = document.getElementById(SCRIPT_ID);\n el.parentNode.removeChild(el);\n secureFields?.destroy();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!ready) return;\n\n onError(formError);\n // eslint-disable-next-line no-undef\n secureFields = new SecureFields();\n secureFields.initTokenize(\n publicKey,\n { cardNumber: 'card', ...(showCVV ? { cvv: 'cvv' } : undefined) },\n {\n ...getStyle(),\n paymentMethods: Object.entries(CARDS)\n .filter(([, value] = []) => cards.includes(value))\n .map(([key] = []) => key),\n },\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [publicKey, ready]);\n\n useEffect(() => {\n secureFields?.on('change', handleChangeSecure);\n secureFields?.on('error', handleTokenError);\n secureFields?.on('ready', handleReady);\n secureFields?.on('success', handleSuccess);\n\n document.addEventListener(EVENT_CTA_PRESS, handleButtonPress);\n\n if (Object.keys(formError).length === 0) onError({});\n\n return () => document.removeEventListener(EVENT_CTA_PRESS, handleButtonPress);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form, formError, ready, responseError, value]);\n\n useEffect(() => {\n onChange({ expire: form.expire, name: form.name, type: form.type });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError(Object.fromEntries(Object.entries(formError).filter(([, value]) => value !== undefined)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formError, responseError]);\n\n const handleButtonPress = () => {\n if (Object.entries(formError).filter(([, value]) => value !== undefined).length > 0) return;\n\n setResponseError();\n const [month, year] = form.expire.split('/');\n secureFields.submit({ expm: month, expy: year });\n };\n\n const handleChange = (field, value = '') => {\n setResponseError();\n\n const { expire, name } = formatValues({ ...{ expire: form.expire, name: form.name }, [field]: value }, form);\n setForm({ ...form, expire, name });\n };\n\n const handleChangeSecure = ({ fields: { cardNumber = {}, cvv = {} } = {}, event: { type, field } = {} }) => {\n const isKeyUp = type === 'keyUp';\n const isCardEmpty = field === 'cardNumber' && cardNumber.length === 0 && !form.card;\n const isCvvEmpty = field === 'cvv' && cvv.length === 0 && !form.cvv;\n\n if (!isKeyUp || (isKeyUp && (isCardEmpty || isCvvEmpty))) return;\n\n setResponseError();\n\n const error = { ...formError };\n if (field === 'cardNumber') {\n setForm({ ...form, card: cardNumber, type: cardNumber.valid ? CARDS[cardNumber.paymentMethod] : undefined });\n error.card =\n !cardNumber.valid && cardNumber.length > 0\n ? { format: true }\n : cardNumber.length === 0\n ? { required: true }\n : undefined;\n } else if (field === 'cvv') {\n setForm({ ...form, cvv });\n error.cvv = !cvv.valid && cvv.length > 0 ? { format: true } : cvv.length === 0 ? { required: true } : undefined;\n }\n\n setFormError(error);\n };\n\n const handleError = (field, { required, test } = {}) => {\n if (!ready) return;\n\n setFormError((formError) => ({\n ...formError,\n ...{ [field]: required ? { required: true } : test ? { format: true } : undefined },\n }));\n };\n\n const handleLoad = () => {\n setReady(true);\n };\n\n const handleReady = () => {\n secureFields.setPlaceholder('cardNumber', PLACEHOLDER_CARD);\n showCVV && secureFields.setPlaceholder('cvv', PLACEHOLDER_CVV);\n };\n\n const handleSuccess = ({ transactionId }) => {\n set({ payment: { ...payment, transactionId } });\n };\n\n const handleTokenError = () => {\n setResponseError(ERROR);\n set({ payment: { ...payment, error: ERROR } });\n };\n\n const { testId } = others;\n\n return (\n <View {...others}>\n <Text action>{translate(L10N.LABEL_SECURE_PAGE)}</Text>\n\n <InputField\n id=\"checkout-card\"\n label={translate(L10N.LABEL_CARD_NUMBER)}\n error={(showErrors && (!form.card || form.card?.length === 0)) || Object.keys(formError.card || {}).length > 0}\n showRequired\n success={!formError.card}\n testId={testId ? `${testId}-PCI-card` : undefined}\n >\n <div id=\"card\" className={style.input} />\n </InputField>\n <InputField\n error={(showErrors && (!form.name || form.name?.length === 0)) || Object.keys(formError.name || {}).length > 0}\n label={translate(L10N.LABEL_CARD_NAME)}\n showRequired\n success={form.name?.length > 0 && !formError.name}\n testId={testId ? `${testId}-PCI-name` : undefined}\n >\n <Input\n id=\"checkout-name\"\n name=\"name\"\n required\n value={form.name}\n onChange={(value) => handleChange('name', value)}\n onError={(error) => handleError('name', error)}\n />\n </InputField>\n <View row>\n <InputField\n error={\n (showErrors && (!form.expire || form.expire?.length === 0)) ||\n Object.keys(formError.expire || {}).length > 0\n }\n label={translate(L10N.LABEL_EXPIRATION)}\n showRequired\n success={form.expire?.length > 0 && !formError.expire}\n className={style.expire}\n testId={testId ? `${testId}-PCI-expire` : undefined}\n >\n <Input\n id=\"checkout-expire\"\n maxLength={5}\n name=\"expire\"\n placeholder={`${translate(L10N.LABEL_MONTH_FORMAT)}/${translate(L10N.LABEL_YEAR_FORMAT)}`}\n required\n test={(expire) => expire.length === 0 || (expire?.length > 0 && testExpire(expire))}\n value={form.expire}\n onChange={(value) => handleChange('expire', value)}\n onError={(error) => handleError('expire', error)}\n />\n </InputField>\n {showCVV && (\n <InputField\n id=\"checkout-cvv\"\n label={translate(L10N.LABEL_CVV)}\n error={(showErrors && (!form.cvv || form.cvv?.length === 0)) || Object.keys(formError.cvv || {}).length > 0}\n showRequired\n success={!formError.cvv}\n className={style.cvv}\n testId={testId ? `${testId}-PCI-CVV` : undefined}\n >\n <div id=\"cvv\" className={style.input} />\n </InputField>\n )}\n </View>\n\n {responseError && (\n <Notification error small wide>\n {translate(L10N.NOTIFICATION_ERROR_PCI)}\n </Notification>\n )}\n </View>\n );\n};\n\nPCI.displayName = 'Mirai:Payments:PCI';\n\nPCI.propTypes = {\n cards: PropTypes.array,\n publicKey: PropTypes.string,\n showCVV: PropTypes.bool,\n showErrors: PropTypes.bool,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n};\n\nexport { PCI };\n"],"mappings":"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"}
|