UNPKG

react-native-unit-components

Version:

Unit React Native components

145 lines (144 loc) 6.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _WebComponent = require("../../webComponent/WebComponent"); var _pageMessage = require("../../messages/webMessages/pageMessage"); var _reactNative = require("react-native"); var _unitComponentsMessages = require("../../messages/webMessages/unitComponentsMessages"); var _UNACHDebitComponent = require("./UNACHDebitComponent.utils"); var _reactNativePlaidLinkSdk = require("react-native-plaid-link-sdk"); var _paymentsMessage = require("../../messages/webMessages/paymentsMessage"); var _onLoadMessage = require("../../messages/webMessages/onLoadMessage"); var _AppInfo = _interopRequireDefault(require("../../utils/AppInfo")); var _webComponent = require("../../types/internal/webComponent.types"); var _helpers = require("../../helpers/store/helpers"); var _plaidMessages = require("../../messages/webMessages/plaidMessages"); var _UNBaseView = require("../../nativeComponents/UNBaseView"); var _onLoadMessages = require("../../utils/onLoadMessages.utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const UNACHDebitComponent = props => { const [height, setHeight] = (0, _react.useState)(0); const [appPackageName, setAppPackageName] = (0, _react.useState)(''); const [linkToken, setLinkToken] = (0, _react.useState)(''); const webRef = (0, _react.useRef)(null); const [presentationMode, setPresentationMode] = (0, _react.useState)(_webComponent.PresentationMode.Inherit); (0, _react.useEffect)(() => { const setPackageNameForAndroid = async () => { if (_reactNative.Platform.OS === 'android') { const packageName = await _AppInfo.default.getAppIdentifier(); setAppPackageName(packageName); } }; setPackageNameForAndroid(); }, []); const handleUnitOnLoad = response => { if (!props.onLoad) { return; } if (_onLoadMessage.RESPONSE_KEYS.errors in response) { props.onLoad(response); return; } if (_onLoadMessage.RESPONSE_KEYS.account in response && _onLoadMessage.RESPONSE_KEYS.counterpartyAccount in response) { const account = response[_onLoadMessage.RESPONSE_KEYS.account].data; // ACHOnLoadResponse; const achOnload = { data: { [_onLoadMessage.RESPONSE_KEYS.account]: (0, _onLoadMessages.ensureArray)(account), [_onLoadMessage.RESPONSE_KEYS.counterpartyAccount]: response[_onLoadMessage.RESPONSE_KEYS.counterpartyAccount].data } }; props.onLoad(achOnload); return; } console.error('On Load Error: unexpected response type'); return; }; const handleWebViewMessage = message => { if (!message || !message.details) return; switch (message.type) { case _paymentsMessage.PaymentMessage.INITIAL_STAGE_BACK_BUTTON_CLICKED: { props.onInitialStageBackButtonClicked && props.onInitialStageBackButtonClicked(); break; } case _paymentsMessage.PaymentMessage.FINAL_STAGE_DONE_BUTTON_CLICKED: { props.onFinalStageDoneButtonClicked && props.onFinalStageDoneButtonClicked(); break; } case _paymentsMessage.PaymentMessage.PAYMENT_CREATED: { const achDebitEvent = message.details; props.onPaymentCreated && props.onPaymentCreated(achDebitEvent.data); break; } case _unitComponentsMessages.UnitComponentsMessage.UNIT_ON_LOAD: handleUnitOnLoad(message.details); break; case _pageMessage.PageMessage.PAGE_HEIGHT: { const currentHeight = message.details.height; setHeight(currentHeight); if (presentationMode === _webComponent.PresentationMode.Inherit && currentHeight === 0) { setPresentationMode(_webComponent.PresentationMode.Default); } break; } case _plaidMessages.PlaidMessage.UNIT_PLAID_TOKEN_CREATED: { const linkTokenEvent = message.details; const linkTokenData = linkTokenEvent.linkToken; setLinkToken(linkTokenData.attributes.linkToken); break; } case _unitComponentsMessages.UnitComponentsMessage.UNIT_REQUEST_EXTERNAL_SDK: { const externalSdkType = message.details.type; if (externalSdkType !== 'plaid') return; linkToken && (0, _reactNativePlaidLinkSdk.openLink)({ tokenConfig: { noLoadingState: false, token: linkToken }, onSuccess: success => { (0, _UNACHDebitComponent.injectUnitPlaidResponse)(webRef.current, success); }, onExit: exit => { console.log(exit); } }).catch(e => { console.error(e); }); break; } } }; const style = presentationMode === _webComponent.PresentationMode.Inherit ? { flex: 1 } : { height: height }; return /*#__PURE__*/_react.default.createElement(_UNBaseView.UNBaseView, { style: style, onLoadError: handleUnitOnLoad, fallback: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null) }, /*#__PURE__*/_react.default.createElement(_WebComponent.WebComponent, { ref: webRef, type: _webComponent.WebComponentType.achDebitPayment, presentationMode: presentationMode, params: (0, _UNACHDebitComponent.getACHDebitParams)(props), script: (0, _UNACHDebitComponent.getACHDebitScript)(appPackageName), onMessage: message => handleWebViewMessage(message), isScrollable: true, theme: props.theme, language: props.language })); }; var _default = exports.default = (0, _helpers.withReduxStore)(UNACHDebitComponent); //# sourceMappingURL=UNACHDebitComponent.js.map