UNPKG

connect-transfer-react-native-sdk

Version:

Connect Transfer React Native SDK for Mastercard Open Banking Connect

107 lines (106 loc) 3.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _reactRedux = require("react-redux"); var _transactReactNative = require("@atomicfi/transact-react-native"); var _constants = require("../../constants"); var _transferEventHandlers = require("../../events/transferEventHandlers"); var _complete = require("../../services/api/complete"); var _authenticationSlice = require("../../redux/slices/authenticationSlice"); var _auditEventQueue = require("../../events/auditEventQueue"); var _jsxRuntime = require("react/jsx-runtime"); const BRAND_COLOR = '#CF4500'; const SEARCH_COMPANY = 'search-company'; const MALaunchConnectTransfer = () => { const dispatch = (0, _reactRedux.useDispatch)(); const { data, language } = (0, _reactRedux.useSelector)(state => state.user || {}); const { eventHandler: transferEventHandler } = (0, _reactRedux.useSelector)(state => state.event || {}); const { getResponseForInitializeDepositSwitch, getResponseForFinish, getResponseForClose } = (0, _transferEventHandlers.useTransferEventResponse)(); const commonData = (0, _transferEventHandlers.useTransferEventCommonData)(); const sendAuditData = (0, _auditEventQueue.useSendAuditData)(); const { userToken, product, metadata } = data?.data || {}; (0, _react.useEffect)(() => { _transactReactNative.Atomic.transact({ config: { publicToken: userToken, scope: _transactReactNative.Scope.USERLINK, // @ts-ignore tasks: [{ product: (0, _transferEventHandlers.getTransferProductType)(product) }], theme: { brandColor: BRAND_COLOR, dark: false }, language: language, deeplink: { step: SEARCH_COMPANY }, metadata: metadata, customer: { name: metadata?.applicationName || '' } }, onInteraction: interaction => handleInteractionEvents(interaction), onFinish: response => handleFinishEvent(response), onClose: response => handleCloseEvent(response) }); }, [userToken, language]); const handleInteractionEvents = interaction => { if (interaction.name === _constants.AtomicEvents.INITIALIZED_TRANSACT) { transferEventHandler?.onLaunchTransferSwitch(getResponseForInitializeDepositSwitch(interaction?.value?.product)); sendAuditData(_constants.UserEvents.INITIALIZE_DEPOSIT_SWITCH); } else { const userEventData = (0, _transferEventHandlers.getUserEventMappingForPDS)(interaction, commonData); if (userEventData) { transferEventHandler?.onUserEvent((0, _transferEventHandlers.getUserEventMappingForPDS)(interaction, commonData)); sendAuditData(userEventData.action, userEventData); } } }; const handleCloseEvent = response => { let reason = response?.reason; const failReason = response?.failReason; if (typeof failReason === 'string' && failReason?.length > 0) { reason = failReason; } transferEventHandler?.onTransferEnd(getResponseForClose(reason)); sendAuditData(_constants.TransferActionEvents.END, { reason, listenerType: _constants.ListenerType.CLOSE }); completeAndReset(); }; const handleFinishEvent = response => { transferEventHandler?.onTransferEnd(getResponseForFinish(response)); sendAuditData(_constants.TransferActionEvents.END, { ...response, listenerType: _constants.ListenerType.FINISH }); completeAndReset(); }; function completeAndReset() { dispatch((0, _complete.complete)(_constants.API_KEYS.complete)); _auditEventQueue.eventQueue.destroy(); dispatch((0, _authenticationSlice.resetData)()); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {}); }; var _default = exports.default = MALaunchConnectTransfer; //# sourceMappingURL=MALaunchConnectTransfer.js.map