react-native-unit-components 1.4.0 → 1.6.1
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/README.md +5 -57
- package/ios/UNAppInfo/UNAppInfo.swift +5 -1
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +46 -3
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +18 -11
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +5 -6
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +2 -23
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +1 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +2 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +1 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +2 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +1 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +1 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +1 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +1 -0
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
- package/lib/commonjs/components/utils/nativeModulesInfo.js +20 -0
- package/lib/commonjs/components/utils/nativeModulesInfo.js.map +1 -0
- package/lib/commonjs/scripts/html/bodyScript.js +13 -2
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +6 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +8 -3
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +49 -6
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +16 -10
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -1
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +5 -6
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +1 -21
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +1 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +2 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +1 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +2 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +1 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.js +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +1 -0
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
- package/lib/module/components/utils/nativeModulesInfo.js +13 -0
- package/lib/module/components/utils/nativeModulesInfo.js.map +1 -0
- package/lib/module/scripts/html/bodyScript.js +13 -2
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js +6 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +8 -3
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +2 -0
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.utils.d.ts +4 -1
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +1 -0
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.utils.d.ts +0 -1
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +1 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -1
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -0
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +2 -0
- package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts +1 -0
- package/lib/typescript/components/utils/nativeModulesInfo.d.ts +1 -0
- package/lib/typescript/scripts/html/bodyScript.d.ts +1 -0
- package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +3 -1
- package/lib/typescript/webComponent/WebComponent.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +46 -5
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.utils.ts +14 -11
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +7 -9
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.utils.ts +1 -20
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +2 -0
- package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +2 -1
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +4 -2
- package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +3 -1
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +8 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +1 -0
- package/src/components/UNCardComponent/UNCardComponent.tsx +5 -2
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +1 -0
- package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +3 -1
- package/src/components/utils/nativeModulesInfo.ts +11 -0
- package/src/scripts/html/bodyScript.ts +13 -3
- package/src/unitSdkManager/UnitSdkManager.ts +7 -1
- package/src/webComponent/WebComponent.tsx +9 -3
- package/ios/UnitReactNativeComponents.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
- package/ios/UnitReactNativeComponents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/UnitReactNativeComponents.xcodeproj/project.xcworkspace/xcuserdata/alonshprung.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/UnitReactNativeComponents.xcodeproj/xcuserdata/alonshprung.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
package/README.md
CHANGED
|
@@ -1,71 +1,19 @@
|
|
|
1
|
-
# React Native
|
|
1
|
+
# Unit White-Label UIs SDK for React Native 🚀
|
|
2
2
|
|
|
3
3
|
## Installation
|
|
4
4
|
|
|
5
5
|
Add the react-native-unit-components dependency to your project:
|
|
6
6
|
|
|
7
|
-
With npm:
|
|
7
|
+
#### With npm:
|
|
8
8
|
```bash
|
|
9
9
|
$ npm install --save react-native-unit-components
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
With yarn:
|
|
12
|
+
#### With yarn:
|
|
13
13
|
```bash
|
|
14
14
|
$ yarn add react-native-unit-components
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Follow The Official Documentation
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
Call to `UnitSDK.init` in your root component with the requested environment and your source.
|
|
21
|
-
This also helps us to improve the app performance.
|
|
22
|
-
|
|
23
|
-
The `UNEnvironment` enum should be used.
|
|
24
|
-
```js
|
|
25
|
-
enum UNEnvironment {
|
|
26
|
-
sandbox,
|
|
27
|
-
production
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
#### Input:
|
|
31
|
-
| Name | Type | Required | Description |
|
|
32
|
-
| --------------- | ---------------------------- | --------- | -------------------------------------------- |
|
|
33
|
-
| env | UNEnvironment | YES | Unit environment. |
|
|
34
|
-
| theme | string | NO | A URL that specifies the UI configuration. |
|
|
35
|
-
|
|
36
|
-
#### Example:
|
|
37
|
-
```js
|
|
38
|
-
import React, { useEffect } from 'react';
|
|
39
|
-
import { UnitSDK, UNEnvironment } from 'react-native-unit-components';
|
|
40
|
-
|
|
41
|
-
const THEME = 'A URL that specifies the UI configuration';
|
|
42
|
-
|
|
43
|
-
export default function YourRootComponent() {
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
UnitSDK.init(UNEnvironment.production, THEME);
|
|
46
|
-
}, [])
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Bottom Sheet Component
|
|
51
|
-
|
|
52
|
-
The `UNBottomSheetComponent` is a View that our SDK controls in order to show menus and forms in your application.
|
|
53
|
-
It is mandatory to have one `UNBottomSheetComponent` when our components are visible.
|
|
54
|
-
|
|
55
|
-
The `UNBottomSheetComponent` have an absolute position and should be able to take the full width the height of the screen.
|
|
56
|
-
We recommend to place the `UNBottomSheetComponent` in your root component of your application.
|
|
57
|
-
|
|
58
|
-
#### The structure of your root component might look as follows:
|
|
59
|
-
```js
|
|
60
|
-
import React, { useEffect } from 'react';
|
|
61
|
-
import { UNBottomSheetComponent } from 'react-native-unit-components';
|
|
62
|
-
|
|
63
|
-
export default function YourRootComponent() {
|
|
64
|
-
return (
|
|
65
|
-
<>
|
|
66
|
-
<YourComponents />
|
|
67
|
-
<UNBottomSheetComponent />
|
|
68
|
-
</>
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
```
|
|
19
|
+
Please follow [the official White-Label UIs React Native SDK documentation](https://guides.unit.co/react-native-sdk).
|
|
@@ -12,7 +12,11 @@ class UNAppInfo: NSObject {
|
|
|
12
12
|
@objc func getBundleName(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
13
13
|
if let bundleName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String {
|
|
14
14
|
resolve(bundleName)
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
|
+
else if let bundleName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String {
|
|
17
|
+
resolve(bundleName)
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
16
20
|
reject("ERROR", "Could not get bundle name", nil)
|
|
17
21
|
}
|
|
18
22
|
}
|
|
@@ -9,15 +9,29 @@ var _WebComponent = require("../../webComponent/WebComponent");
|
|
|
9
9
|
var _bodyHtml = require("../../scripts/html/bodyHtml");
|
|
10
10
|
var _pageMessage = require("../../messages/webMessages/pageMessage");
|
|
11
11
|
var _reactNative = require("react-native");
|
|
12
|
-
var _unitMessages = require("../../messages/webMessages/unitMessages");
|
|
13
12
|
var _UNACHCreditComponent = require("./UNACHCreditComponent.utils");
|
|
14
13
|
var _paymentsMessage = require("../../messages/webMessages/paymentsMessage");
|
|
15
14
|
var _onLoadMessage = require("../../messages/webMessages/onLoadMessage");
|
|
15
|
+
var _unitMessages = require("../../messages/webMessages/unitMessages");
|
|
16
|
+
var _reactNativePlaidLinkSdk = require("react-native-plaid-link-sdk");
|
|
17
|
+
var _nativeModulesInfo = require("../utils/nativeModulesInfo");
|
|
16
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
20
|
const UNACHCreditComponent = props => {
|
|
19
21
|
const [height, setHeight] = (0, _react.useState)(0);
|
|
20
22
|
const [presentationMode, setPresentationMode] = (0, _react.useState)(_bodyHtml.PresentationMode.Inherit);
|
|
23
|
+
const [linkToken, setLinkToken] = (0, _react.useState)();
|
|
24
|
+
const [appPackageName, setAppPackageName] = (0, _react.useState)();
|
|
25
|
+
const webRef = (0, _react.useRef)(null);
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
const setPackageNameForAndroid = async () => {
|
|
28
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
29
|
+
const packageName = await (0, _nativeModulesInfo.getAndroidPackageName)();
|
|
30
|
+
setAppPackageName(packageName);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
setPackageNameForAndroid();
|
|
34
|
+
}, []);
|
|
21
35
|
const handleUnitOnLoad = response => {
|
|
22
36
|
if (!props.onLoad) {
|
|
23
37
|
return;
|
|
@@ -61,17 +75,46 @@ const UNACHCreditComponent = props => {
|
|
|
61
75
|
}
|
|
62
76
|
break;
|
|
63
77
|
}
|
|
78
|
+
case _unitMessages.UnitMessage.UNIT_PLAID_TOKEN_CREATED:
|
|
79
|
+
{
|
|
80
|
+
const linkTokenEvent = message.details;
|
|
81
|
+
const linkTokenData = linkTokenEvent.linkToken;
|
|
82
|
+
setLinkToken(linkTokenData.attributes.linkToken);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case _unitMessages.UnitMessage.UNIT_REQUEST_EXTERNAL_SDK:
|
|
86
|
+
{
|
|
87
|
+
const externalSdkType = message.details.type;
|
|
88
|
+
if (externalSdkType !== 'plaid') return;
|
|
89
|
+
linkToken && (0, _reactNativePlaidLinkSdk.openLink)({
|
|
90
|
+
tokenConfig: {
|
|
91
|
+
noLoadingState: false,
|
|
92
|
+
token: linkToken
|
|
93
|
+
},
|
|
94
|
+
onSuccess: success => {
|
|
95
|
+
(0, _UNACHCreditComponent.injectUnitPlaidResponse)(webRef.current, success);
|
|
96
|
+
},
|
|
97
|
+
onExit: exit => {
|
|
98
|
+
console.log(exit);
|
|
99
|
+
}
|
|
100
|
+
}).catch(e => {
|
|
101
|
+
console.error(e);
|
|
102
|
+
});
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
64
105
|
}
|
|
65
106
|
};
|
|
66
107
|
const renderACHCreditWebView = () => {
|
|
67
108
|
return /*#__PURE__*/_react.default.createElement(_WebComponent.WebComponent, {
|
|
109
|
+
ref: webRef,
|
|
68
110
|
type: _WebComponent.WebComponentType.achCreditPayment,
|
|
69
111
|
presentationMode: presentationMode,
|
|
70
112
|
params: (0, _UNACHCreditComponent.getACHCreditParams)(props),
|
|
71
|
-
script: (0, _UNACHCreditComponent.getACHCreditScript)(),
|
|
113
|
+
script: (0, _UNACHCreditComponent.getACHCreditScript)(appPackageName),
|
|
72
114
|
onMessage: message => handleWebViewMessage(message),
|
|
73
115
|
isScrollable: false,
|
|
74
|
-
theme: props.theme
|
|
116
|
+
theme: props.theme,
|
|
117
|
+
language: props.language
|
|
75
118
|
});
|
|
76
119
|
};
|
|
77
120
|
if (presentationMode === _bodyHtml.PresentationMode.Inherit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_WebComponent","_bodyHtml","_pageMessage","_reactNative","_unitMessages","_UNACHCreditComponent","_paymentsMessage","_onLoadMessage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNACHCreditComponent","props","height","setHeight","useState","presentationMode","setPresentationMode","PresentationMode","Inherit","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PaymentMessage","PAYMENT_CREATED","achCreditEvent","onPaymentCreated","UnitMessage","UNIT_ON_LOAD","PageMessage","PAGE_HEIGHT","currentHeight","Default","renderACHCreditWebView","createElement","WebComponent","WebComponentType","achCreditPayment","params","getACHCreditParams","script","getACHCreditScript","onMessage","isScrollable","theme","View","style","exports"],"sources":["UNACHCreditComponent.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type { UNOnLoadResponse, UNACHData, UNACHOnLoadData, UNError, UNOnLoadResponseData } from '../../sharedTypes';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { View } from 'react-native';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { getACHCreditParams, getACHCreditScript } from './UNACHCreditComponent.utils';\nimport { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport type { ACHEvent } from '../../messages/webMessages/achCreditMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\n\nexport interface UNACHCreditComponentProps {\n accountId: string;\n customerToken: string;\n theme?: string;\n isAutoFocus?: boolean;\n fee?: number;\n onPaymentCreated?: (data: UNACHData) => void;\n onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;\n}\n\nexport const UNACHCreditComponent = (props: UNACHCreditComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {\n // ACHOnLoadResponse;\n const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {\n data: {\n [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,\n [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,\n }\n };\n props.onLoad(achOnload);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case PaymentMessage.PAYMENT_CREATED: {\n const achCreditEvent = message.details as ACHEvent;\n props.onPaymentCreated && props.onPaymentCreated(achCreditEvent.data as UNACHData);\n break;\n }\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n }\n };\n\n const renderACHCreditWebView = () => {\n return (\n <WebComponent\n type={WebComponentType.achCreditPayment}\n presentationMode={presentationMode}\n params={getACHCreditParams(props)}\n script={getACHCreditScript()}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n isScrollable={false}\n theme={props.theme}\n />\n );\n };\n\n if (presentationMode === PresentationMode.Inherit) {\n return renderACHCreditWebView();\n }\n\n return (\n <View style={{ height: height }}>\n {renderACHCreditWebView()}\n </View>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_WebComponent","_bodyHtml","_pageMessage","_reactNative","_UNACHCreditComponent","_paymentsMessage","_onLoadMessage","_unitMessages","_reactNativePlaidLinkSdk","_nativeModulesInfo","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNACHCreditComponent","props","height","setHeight","useState","presentationMode","setPresentationMode","PresentationMode","Inherit","linkToken","setLinkToken","appPackageName","setAppPackageName","webRef","useRef","useEffect","setPackageNameForAndroid","Platform","OS","packageName","getAndroidPackageName","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PaymentMessage","PAYMENT_CREATED","achCreditEvent","onPaymentCreated","UnitMessage","UNIT_ON_LOAD","PageMessage","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","openLink","tokenConfig","noLoadingState","token","onSuccess","success","injectUnitPlaidResponse","current","onExit","exit","log","catch","e","renderACHCreditWebView","createElement","WebComponent","ref","WebComponentType","achCreditPayment","params","getACHCreditParams","script","getACHCreditScript","onMessage","isScrollable","theme","language","View","style","exports"],"sources":["UNACHCreditComponent.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type { UNOnLoadResponse, UNACHData, UNACHOnLoadData, UNError, UNOnLoadResponseData } from '../../sharedTypes';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { Platform, View } from 'react-native';\nimport { getACHCreditParams, getACHCreditScript, injectUnitPlaidResponse } from './UNACHCreditComponent.utils';\nimport { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport type { ACHEvent } from '../../messages/webMessages/achCreditMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { PlaidLinkTokenData, PlaidTokenCreatedEvent, RequestExternalSdkEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { LinkSuccess, openLink } from 'react-native-plaid-link-sdk';\nimport type WebView from 'react-native-webview';\nimport { getAndroidPackageName } from '../utils/nativeModulesInfo';\n\nexport interface UNACHCreditComponentProps {\n accountId: string;\n customerToken: string;\n theme?: string;\n language?: string;\n isAutoFocus?: boolean;\n fee?: number;\n withPlaid?: boolean;\n onPaymentCreated?: (data: UNACHData) => void;\n onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;\n}\n\nexport const UNACHCreditComponent = (props: UNACHCreditComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n const [linkToken, setLinkToken] = useState<string>();\n const [appPackageName, setAppPackageName] = useState<string>();\n const webRef = useRef<WebView>(null);\n\n useEffect(() => {\n const setPackageNameForAndroid = async () => {\n if (Platform.OS === 'android') {\n const packageName = await getAndroidPackageName();\n setAppPackageName(packageName);\n }\n };\n setPackageNameForAndroid();\n }, []);\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {\n // ACHOnLoadResponse;\n const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {\n data: {\n [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,\n [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,\n }\n };\n props.onLoad(achOnload);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case PaymentMessage.PAYMENT_CREATED: {\n const achCreditEvent = message.details as ACHEvent;\n props.onPaymentCreated && props.onPaymentCreated(achCreditEvent.data as UNACHData);\n break;\n }\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n case UnitMessage.UNIT_PLAID_TOKEN_CREATED: {\n const linkTokenEvent = message.details as PlaidTokenCreatedEvent;\n const linkTokenData = linkTokenEvent.linkToken as PlaidLinkTokenData;\n setLinkToken(linkTokenData.attributes.linkToken);\n break;\n }\n\n case UnitMessage.UNIT_REQUEST_EXTERNAL_SDK: {\n const externalSdkType = (message.details as RequestExternalSdkEvent).type;\n if (externalSdkType !== 'plaid') return;\n linkToken && openLink({\n tokenConfig: { noLoadingState: false, token: linkToken },\n onSuccess: (success: LinkSuccess) => {\n injectUnitPlaidResponse(webRef.current, success);\n },\n onExit: exit => { console.log(exit); }\n }).catch(e => {\n console.error(e);\n });\n break;\n }\n }\n };\n\n const renderACHCreditWebView = () => {\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.achCreditPayment}\n presentationMode={presentationMode}\n params={getACHCreditParams(props)}\n script={getACHCreditScript(appPackageName)}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n isScrollable={false}\n theme={props.theme}\n language={props.language}\n />\n );\n };\n\n if (presentationMode === PresentationMode.Inherit) {\n return renderACHCreditWebView();\n }\n\n return (\n <View style={{ height: height }}>\n {renderACHCreditWebView()}\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -3,29 +3,36 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getACHCreditScript = exports.getACHCreditParams = void 0;
|
|
7
|
-
var
|
|
6
|
+
exports.injectUnitPlaidResponse = exports.getACHCreditScript = exports.getACHCreditParams = void 0;
|
|
7
|
+
var _bodyScript = require("../../scripts/html/bodyScript");
|
|
8
8
|
const getACHCreditParams = props => {
|
|
9
9
|
return `
|
|
10
10
|
account-id="${props.accountId}"
|
|
11
11
|
customer-token="${props.customerToken}"
|
|
12
|
+
with-plaid="${props.withPlaid ?? false}"
|
|
12
13
|
is-auto-focus="${props.isAutoFocus ?? false}"
|
|
13
14
|
${props.fee ? `fee="${props.fee}"` : ''}
|
|
14
15
|
style="height: 100%"
|
|
15
16
|
`;
|
|
16
17
|
};
|
|
17
18
|
exports.getACHCreditParams = getACHCreditParams;
|
|
18
|
-
const getACHCreditScript =
|
|
19
|
+
const getACHCreditScript = appPackageName => {
|
|
19
20
|
return `
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}).catch((e) => {
|
|
25
|
-
console.log(e)
|
|
26
|
-
})
|
|
27
|
-
});
|
|
21
|
+
${_bodyScript.LISTENERS.unitPlaidTokenCreated}
|
|
22
|
+
${appPackageName && `window.UnitMobileSDKConfig.androidPackageName='${appPackageName}'`}
|
|
23
|
+
${_bodyScript.LISTENERS.unitPaymentCreated}
|
|
24
|
+
${_bodyScript.DISPATCH_PLAID_RESPONSE}
|
|
28
25
|
`;
|
|
29
26
|
};
|
|
30
27
|
exports.getACHCreditScript = getACHCreditScript;
|
|
28
|
+
const injectUnitPlaidResponse = (currentWeb, success) => {
|
|
29
|
+
const successObj = {
|
|
30
|
+
data: {
|
|
31
|
+
publicToken: success.publicToken,
|
|
32
|
+
metadata: success.metadata
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`);
|
|
36
|
+
};
|
|
37
|
+
exports.injectUnitPlaidResponse = injectUnitPlaidResponse;
|
|
31
38
|
//# sourceMappingURL=UNACHCreditComponent.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_bodyScript","require","getACHCreditParams","props","accountId","customerToken","withPlaid","isAutoFocus","fee","exports","getACHCreditScript","appPackageName","LISTENERS","unitPlaidTokenCreated","unitPaymentCreated","DISPATCH_PLAID_RESPONSE","injectUnitPlaidResponse","currentWeb","success","successObj","data","publicToken","metadata","injectJavaScript","JSON","stringify"],"sources":["UNACHCreditComponent.utils.ts"],"sourcesContent":["import type { UNACHCreditComponentProps } from './UNACHCreditComponent';\nimport type WebView from 'react-native-webview';\nimport type { LinkSuccess } from 'react-native-plaid-link-sdk';\nimport { DISPATCH_PLAID_RESPONSE, LISTENERS } from '../../scripts/html/bodyScript';\n\nexport const getACHCreditParams = (props: UNACHCreditComponentProps) => {\n return `\n account-id=\"${props.accountId}\"\n customer-token=\"${props.customerToken}\"\n with-plaid=\"${props.withPlaid ?? false}\"\n is-auto-focus=\"${props.isAutoFocus ?? false}\"\n ${props.fee ? `fee=\"${props.fee}\"` : ''}\n style=\"height: 100%\"\n `;\n};\n\nexport const getACHCreditScript = (appPackageName?: string) => {\n return `\n ${LISTENERS.unitPlaidTokenCreated}\n ${appPackageName && `window.UnitMobileSDKConfig.androidPackageName='${appPackageName}'`}\n ${LISTENERS.unitPaymentCreated}\n ${DISPATCH_PLAID_RESPONSE}\n `;\n};\n\nexport const injectUnitPlaidResponse = (currentWeb: WebView | null, success: LinkSuccess) => {\n const successObj = {data: { publicToken: success.publicToken, metadata: success.metadata}};\n currentWeb?.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`);\n};\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAIC,KAAgC,IAAK;EACtE,OAAQ;AACV,kBAAkBA,KAAK,CAACC,SAAU;AAClC,sBAAsBD,KAAK,CAACE,aAAc;AAC1C,kBAAkBF,KAAK,CAACG,SAAS,IAAI,KAAM;AAC3C,qBAAqBH,KAAK,CAACI,WAAW,IAAI,KAAM;AAChD,MAAMJ,KAAK,CAACK,GAAG,GAAI,QAAOL,KAAK,CAACK,GAAI,GAAE,GAAG,EAAG;AAC5C;AACA,GAAG;AACH,CAAC;AAACC,OAAA,CAAAP,kBAAA,GAAAA,kBAAA;AAEK,MAAMQ,kBAAkB,GAAIC,cAAuB,IAAK;EAC7D,OAAQ;AACV,MAAMC,qBAAS,CAACC,qBAAsB;AACtC,MAAMF,cAAc,IAAK,kDAAiDA,cAAe,GAAG;AAC5F,MAAMC,qBAAS,CAACE,kBAAmB;AACnC,MAAMC,mCAAwB;AAC9B,GAAG;AACH,CAAC;AAACN,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAEK,MAAMM,uBAAuB,GAAGA,CAACC,UAA0B,EAAEC,OAAoB,KAAK;EAC3F,MAAMC,UAAU,GAAG;IAACC,IAAI,EAAE;MAAEC,WAAW,EAAEH,OAAO,CAACG,WAAW;MAAEC,QAAQ,EAAEJ,OAAO,CAACI;IAAQ;EAAC,CAAC;EAC1FL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,sBAAqBC,IAAI,CAACC,SAAS,CAACN,UAAU,CAAE,GAAE,CAAC;AACnF,CAAC;AAACV,OAAA,CAAAO,uBAAA,GAAAA,uBAAA"}
|
|
@@ -14,6 +14,7 @@ var _UNACHDebitComponent = require("./UNACHDebitComponent.utils");
|
|
|
14
14
|
var _reactNativePlaidLinkSdk = require("react-native-plaid-link-sdk");
|
|
15
15
|
var _paymentsMessage = require("../../messages/webMessages/paymentsMessage");
|
|
16
16
|
var _onLoadMessage = require("../../messages/webMessages/onLoadMessage");
|
|
17
|
+
var _nativeModulesInfo = require("../utils/nativeModulesInfo");
|
|
17
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
20
|
const UNACHDebitComponent = props => {
|
|
@@ -25,15 +26,12 @@ const UNACHDebitComponent = props => {
|
|
|
25
26
|
(0, _react.useEffect)(() => {
|
|
26
27
|
const setPackageNameForAndroid = async () => {
|
|
27
28
|
if (_reactNative.Platform.OS === 'android') {
|
|
28
|
-
const packageName = await (0,
|
|
29
|
+
const packageName = await (0, _nativeModulesInfo.getAndroidPackageName)();
|
|
29
30
|
setAppPackageName(packageName);
|
|
30
31
|
}
|
|
31
32
|
};
|
|
32
33
|
setPackageNameForAndroid();
|
|
33
34
|
}, []);
|
|
34
|
-
const dispatchUnitPlaidResponse = success => {
|
|
35
|
-
(0, _UNACHDebitComponent.injectUnitPlaidResponse)(webRef.current, success);
|
|
36
|
-
};
|
|
37
35
|
const handleUnitOnLoad = response => {
|
|
38
36
|
if (!props.onLoad) {
|
|
39
37
|
return;
|
|
@@ -94,7 +92,7 @@ const UNACHDebitComponent = props => {
|
|
|
94
92
|
token: linkToken
|
|
95
93
|
},
|
|
96
94
|
onSuccess: success => {
|
|
97
|
-
|
|
95
|
+
(0, _UNACHDebitComponent.injectUnitPlaidResponse)(webRef.current, success);
|
|
98
96
|
},
|
|
99
97
|
onExit: exit => {
|
|
100
98
|
console.log(exit);
|
|
@@ -115,7 +113,8 @@ const UNACHDebitComponent = props => {
|
|
|
115
113
|
script: (0, _UNACHDebitComponent.getACHDebitScript)(appPackageName),
|
|
116
114
|
onMessage: message => handleWebViewMessage(message),
|
|
117
115
|
isScrollable: false,
|
|
118
|
-
theme: props.theme
|
|
116
|
+
theme: props.theme,
|
|
117
|
+
language: props.language
|
|
119
118
|
});
|
|
120
119
|
};
|
|
121
120
|
if (presentationMode === _bodyHtml.PresentationMode.Inherit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_WebComponent","_bodyHtml","_pageMessage","_reactNative","_unitMessages","_UNACHDebitComponent","_reactNativePlaidLinkSdk","_paymentsMessage","_onLoadMessage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNACHDebitComponent","props","height","setHeight","useState","appPackageName","setAppPackageName","linkToken","setLinkToken","webRef","useRef","presentationMode","setPresentationMode","PresentationMode","Inherit","useEffect","setPackageNameForAndroid","Platform","OS","packageName","getAndroidPackageName","dispatchUnitPlaidResponse","success","injectUnitPlaidResponse","current","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PaymentMessage","PAYMENT_CREATED","achDebitEvent","onPaymentCreated","UnitMessage","UNIT_ON_LOAD","PageMessage","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","openLink","tokenConfig","noLoadingState","token","onSuccess","onExit","exit","log","catch","e","renderACHDebitWebView","createElement","WebComponent","ref","WebComponentType","achDebitPayment","params","getACHDebitParams","script","getACHDebitScript","onMessage","isScrollable","theme","View","style","exports"],"sources":["UNACHDebitComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type { UNOnLoadResponse, UNACHData, UNError, UNOnLoadResponseData, UNACHOnLoadData } from '../../sharedTypes';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { Platform, View } from 'react-native';\nimport { PlaidLinkTokenData, PlaidTokenCreatedEvent, RequestExternalSdkEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { getACHDebitParams, getACHDebitScript, getAndroidPackageName, injectUnitPlaidResponse } from './UNACHDebitComponent.utils';\n\nimport { LinkSuccess, openLink } from 'react-native-plaid-link-sdk';\nimport type WebView from 'react-native-webview';\n\nimport { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport type { ACHEvent } from '../../messages/webMessages/achCreditMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\n\nexport interface UNACHDebitComponentProps {\n accountId: string;\n customerToken: string;\n theme?: string;\n isAutoFocus?: boolean;\n fee?: number;\n onPaymentCreated?: (data: UNACHData) => void;\n onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;\n}\n\nexport const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [appPackageName, setAppPackageName] = useState<string>('');\n const [linkToken, setLinkToken] = useState<string>('');\n const webRef = useRef<WebView>(null);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n\n useEffect(() => {\n const setPackageNameForAndroid = async () => {\n if (Platform.OS === 'android') {\n const packageName = await getAndroidPackageName();\n setAppPackageName(packageName);\n }\n };\n setPackageNameForAndroid();\n }, []);\n\n const dispatchUnitPlaidResponse = (success: LinkSuccess) => {\n injectUnitPlaidResponse(webRef.current, success);\n };\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {\n // ACHOnLoadResponse;\n const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {\n data: {\n [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,\n [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,\n }\n };\n props.onLoad(achOnload);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case PaymentMessage.PAYMENT_CREATED: {\n const achDebitEvent = message.details as ACHEvent;\n props.onPaymentCreated && props.onPaymentCreated(achDebitEvent.data as UNACHData);\n break;\n }\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n case UnitMessage.UNIT_PLAID_TOKEN_CREATED: {\n const linkTokenEvent = message.details as PlaidTokenCreatedEvent;\n const linkTokenData = linkTokenEvent.linkToken as PlaidLinkTokenData;\n setLinkToken(linkTokenData.attributes.linkToken);\n break;\n }\n\n case UnitMessage.UNIT_REQUEST_EXTERNAL_SDK: {\n const externalSdkType = (message.details as RequestExternalSdkEvent).type;\n if (externalSdkType !== 'plaid') return;\n linkToken && openLink({\n tokenConfig: { noLoadingState: false, token: linkToken},\n onSuccess: (success) => {\n dispatchUnitPlaidResponse(success);\n },\n onExit: exit => { console.log(exit); }\n }).catch(e => {\n console.error(e);\n });\n break;\n }\n }\n };\n\n const renderACHDebitWebView = () => {\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.achDebitPayment}\n presentationMode={presentationMode}\n params={getACHDebitParams(props)}\n script={getACHDebitScript(appPackageName)}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n isScrollable={false}\n theme={props.theme}\n />\n );\n };\n\n if (presentationMode === PresentationMode.Inherit) {\n return renderACHDebitWebView();\n }\n\n return (\n <View style={{ height: height }}>\n {renderACHDebitWebView()}\n </View>\n\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_WebComponent","_bodyHtml","_pageMessage","_reactNative","_unitMessages","_UNACHDebitComponent","_reactNativePlaidLinkSdk","_paymentsMessage","_onLoadMessage","_nativeModulesInfo","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNACHDebitComponent","props","height","setHeight","useState","appPackageName","setAppPackageName","linkToken","setLinkToken","webRef","useRef","presentationMode","setPresentationMode","PresentationMode","Inherit","useEffect","setPackageNameForAndroid","Platform","OS","packageName","getAndroidPackageName","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PaymentMessage","PAYMENT_CREATED","achDebitEvent","onPaymentCreated","UnitMessage","UNIT_ON_LOAD","PageMessage","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","openLink","tokenConfig","noLoadingState","token","onSuccess","success","injectUnitPlaidResponse","current","onExit","exit","log","catch","e","renderACHDebitWebView","createElement","WebComponent","ref","WebComponentType","achDebitPayment","params","getACHDebitParams","script","getACHDebitScript","onMessage","isScrollable","theme","language","View","style","exports"],"sources":["UNACHDebitComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type { UNOnLoadResponse, UNACHData, UNError, UNOnLoadResponseData, UNACHOnLoadData } from '../../sharedTypes';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { Platform, View } from 'react-native';\nimport { PlaidLinkTokenData, PlaidTokenCreatedEvent, RequestExternalSdkEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { getACHDebitParams, getACHDebitScript, injectUnitPlaidResponse } from './UNACHDebitComponent.utils';\nimport { LinkSuccess, openLink } from 'react-native-plaid-link-sdk';\nimport type WebView from 'react-native-webview';\n\nimport { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport type { ACHEvent } from '../../messages/webMessages/achCreditMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { getAndroidPackageName } from '../utils/nativeModulesInfo';\n\nexport interface UNACHDebitComponentProps {\n accountId: string;\n customerToken: string;\n theme?: string;\n language?: string;\n isAutoFocus?: boolean;\n fee?: number;\n onPaymentCreated?: (data: UNACHData) => void;\n onLoad?: (response: UNOnLoadResponse<UNACHOnLoadData>) => void;\n}\n\nexport const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [appPackageName, setAppPackageName] = useState<string>('');\n const [linkToken, setLinkToken] = useState<string>('');\n const webRef = useRef<WebView>(null);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n\n useEffect(() => {\n const setPackageNameForAndroid = async () => {\n if (Platform.OS === 'android') {\n const packageName = await getAndroidPackageName();\n setAppPackageName(packageName);\n }\n };\n setPackageNameForAndroid();\n }, []);\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response && RESPONSE_KEYS.counterpartyAccount in response) {\n // ACHOnLoadResponse;\n const achOnload: UNOnLoadResponseData<UNACHOnLoadData> = {\n data: {\n [RESPONSE_KEYS.account]: response[RESPONSE_KEYS.account].data,\n [RESPONSE_KEYS.counterpartyAccount]: response[RESPONSE_KEYS.counterpartyAccount].data,\n }\n };\n props.onLoad(achOnload);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case PaymentMessage.PAYMENT_CREATED: {\n const achDebitEvent = message.details as ACHEvent;\n props.onPaymentCreated && props.onPaymentCreated(achDebitEvent.data as UNACHData);\n break;\n }\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n case UnitMessage.UNIT_PLAID_TOKEN_CREATED: {\n const linkTokenEvent = message.details as PlaidTokenCreatedEvent;\n const linkTokenData = linkTokenEvent.linkToken as PlaidLinkTokenData;\n setLinkToken(linkTokenData.attributes.linkToken);\n break;\n }\n\n case UnitMessage.UNIT_REQUEST_EXTERNAL_SDK: {\n const externalSdkType = (message.details as RequestExternalSdkEvent).type;\n if (externalSdkType !== 'plaid') return;\n linkToken && openLink({\n tokenConfig: { noLoadingState: false, token: linkToken },\n onSuccess: (success: LinkSuccess) => {\n injectUnitPlaidResponse(webRef.current, success);\n },\n onExit: exit => { console.log(exit); }\n }).catch(e => {\n console.error(e);\n });\n break;\n }\n }\n };\n\n const renderACHDebitWebView = () => {\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.achDebitPayment}\n presentationMode={presentationMode}\n params={getACHDebitParams(props)}\n script={getACHDebitScript(appPackageName)}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n isScrollable={false}\n theme={props.theme}\n language={props.language}\n />\n );\n };\n\n if (presentationMode === PresentationMode.Inherit) {\n return renderACHDebitWebView();\n }\n\n return (\n <View style={{ height: height }}>\n {renderACHDebitWebView()}\n </View>\n\n );\n};\n"],"mappings":"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"}
|
|
@@ -3,13 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.injectUnitPlaidResponse = exports.
|
|
6
|
+
exports.injectUnitPlaidResponse = exports.getACHDebitScript = exports.getACHDebitParams = void 0;
|
|
7
7
|
var _bodyScript = require("./../../scripts/html/bodyScript");
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _unitMessages = require("../../messages/webMessages/unitMessages");
|
|
10
|
-
const {
|
|
11
|
-
RNAppInfoModule
|
|
12
|
-
} = _reactNative.NativeModules;
|
|
13
8
|
const getACHDebitParams = props => {
|
|
14
9
|
return `
|
|
15
10
|
account-id="${props.accountId}"
|
|
@@ -20,25 +15,9 @@ const getACHDebitParams = props => {
|
|
|
20
15
|
`;
|
|
21
16
|
};
|
|
22
17
|
exports.getACHDebitParams = getACHDebitParams;
|
|
23
|
-
const getAndroidPackageName = async () => {
|
|
24
|
-
try {
|
|
25
|
-
const response = await RNAppInfoModule.getAppPackageName();
|
|
26
|
-
return response;
|
|
27
|
-
} catch (error) {
|
|
28
|
-
console.error(error);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
exports.getAndroidPackageName = getAndroidPackageName;
|
|
32
18
|
const getACHDebitScript = androidPackageName => {
|
|
33
19
|
return `
|
|
34
|
-
|
|
35
|
-
const response = e.detail
|
|
36
|
-
response.then((data) => {
|
|
37
|
-
postMessageToSDK({ type: "${_unitMessages.UnitMessage.UNIT_PLAID_TOKEN_CREATED}", details: { linkToken: data.data }})
|
|
38
|
-
}).catch((e) => {
|
|
39
|
-
console.log(e)
|
|
40
|
-
})
|
|
41
|
-
});
|
|
20
|
+
${_bodyScript.LISTENERS.unitPlaidTokenCreated}
|
|
42
21
|
${androidPackageName && `window.UnitMobileSDKConfig.androidPackageName='${androidPackageName}'`}
|
|
43
22
|
${_bodyScript.LISTENERS.unitPaymentCreated}
|
|
44
23
|
${_bodyScript.DISPATCH_PLAID_RESPONSE}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bodyScript","require","
|
|
1
|
+
{"version":3,"names":["_bodyScript","require","getACHDebitParams","props","accountId","customerToken","isAutoFocus","fee","exports","getACHDebitScript","androidPackageName","LISTENERS","unitPlaidTokenCreated","unitPaymentCreated","DISPATCH_PLAID_RESPONSE","injectUnitPlaidResponse","currentWeb","success","successObj","data","publicToken","metadata","injectJavaScript","JSON","stringify"],"sources":["UNACHDebitComponent.utils.ts"],"sourcesContent":["import { DISPATCH_PLAID_RESPONSE, LISTENERS } from './../../scripts/html/bodyScript';\nimport type { UNACHDebitComponentProps } from './UNACHDebitComponent';\n\nimport type WebView from 'react-native-webview';\nimport type { LinkSuccess } from 'react-native-plaid-link-sdk';\n\nexport const getACHDebitParams = (props: UNACHDebitComponentProps) => {\n return `\n account-id=\"${props.accountId}\"\n customer-token=\"${props.customerToken}\"\n is-auto-focus=\"${props.isAutoFocus ?? false}\"\n ${props.fee ? `fee=\"${props.fee}\"` : ''}\n style=\"height: 100%\"\n `;\n};\n\nexport const getACHDebitScript = (androidPackageName?: string) => {\n return `\n ${LISTENERS.unitPlaidTokenCreated}\n ${androidPackageName && `window.UnitMobileSDKConfig.androidPackageName='${androidPackageName}'`}\n ${LISTENERS.unitPaymentCreated}\n ${DISPATCH_PLAID_RESPONSE}\n `;\n};\n\nexport const injectUnitPlaidResponse = (currentWeb: WebView | null, success: LinkSuccess) => {\n const successObj = {data: { publicToken: success.publicToken, metadata: success.metadata}};\n currentWeb?.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAMO,MAAMC,iBAAiB,GAAIC,KAA+B,IAAK;EACpE,OAAQ;AACV,kBAAkBA,KAAK,CAACC,SAAU;AAClC,sBAAsBD,KAAK,CAACE,aAAc;AAC1C,qBAAqBF,KAAK,CAACG,WAAW,IAAI,KAAM;AAChD,MAAMH,KAAK,CAACI,GAAG,GAAI,QAAOJ,KAAK,CAACI,GAAI,GAAE,GAAG,EAAG;AAC5C;AACA,GAAG;AACH,CAAC;AAACC,OAAA,CAAAN,iBAAA,GAAAA,iBAAA;AAEK,MAAMO,iBAAiB,GAAIC,kBAA2B,IAAK;EAChE,OAAQ;AACV,MAAMC,qBAAS,CAACC,qBAAsB;AACtC,MAAMF,kBAAkB,IAAK,kDAAiDA,kBAAmB,GAAG;AACpG,MAAMC,qBAAS,CAACE,kBAAmB;AACnC,MAAMC,mCAAwB;AAC9B,KAAK;AACL,CAAC;AAACN,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEK,MAAMM,uBAAuB,GAAGA,CAACC,UAA0B,EAAEC,OAAoB,KAAK;EAC3F,MAAMC,UAAU,GAAG;IAACC,IAAI,EAAE;MAAEC,WAAW,EAAEH,OAAO,CAACG,WAAW;MAAEC,QAAQ,EAAEJ,OAAO,CAACI;IAAQ;EAAC,CAAC;EAC1FL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,sBAAqBC,IAAI,CAACC,SAAS,CAACN,UAAU,CAAE,GAAE,CAAC;AACnF,CAAC;AAACV,OAAA,CAAAO,uBAAA,GAAAA,uBAAA"}
|
|
@@ -101,6 +101,7 @@ const UNAccountComponent = /*#__PURE__*/_react.default.forwardRef(function UNAcc
|
|
|
101
101
|
params: (0, _UNAccountComponent.getAccountParams)(props),
|
|
102
102
|
script: (0, _UNAccountComponent.getAccountScript)(),
|
|
103
103
|
theme: props.theme,
|
|
104
|
+
language: props.language,
|
|
104
105
|
onMessage: message => handleMessage(message),
|
|
105
106
|
width: windowWidth,
|
|
106
107
|
isScrollable: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_pageMessage","_unitMessages","_EventBus","_interopRequireDefault","_WebComponent","_UNAccountComponent","_bodyHtml","_listenerToBus","_accountMessage","_onLoadMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AccountAction","exports","UNAccountComponent","React","forwardRef","props","accountRef","height","setHeight","useState","windowWidth","Dimensions","width","requestRefreshEvent","setRequestRefreshEvent","webRef","useRef","handleAccountChanged","account","onAccountChanged","requestRefresh","data","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","console","error","useListenerToBus","busEventKey","UnitMessage","UNIT_REQUEST_REFRESH","action","AccountMessage","UNIT_ACCOUNT_CHANGED","useEffect","injectRefreshEventIfNeeded","current","useImperativeHandle","openActionsMenu","injectOpenActionsMenuScript","openAction","injectRequestAccountActionScript","handleMessage","message","type","UNIT_ON_LOAD","details","UNIT_REQUEST_RENDERING","event","componentName","WebComponentType","componentResourceId","accountId","requestRenderingEvent","EventBus","Instance","PageMessage","PAGE_HEIGHT","createElement","View","style","WebComponent","ref","presentationMode","PresentationMode","Default","params","getAccountParams","script","getAccountScript","theme","onMessage","isScrollable"],"sources":["UNAccountComponent.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../..//messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getAccountParams, getAccountScript, injectOpenActionsMenuScript, injectRefreshEventIfNeeded, injectRequestAccountActionScript } from './UNAccountComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { UNAccountData } from '../../sharedTypes/account.types';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport type { UNAccountMenuAction } from '../../sharedTypes';\n\nexport interface UNAccountComponentProps {\n // inputs\n accountId?: string;\n customerToken: string;\n\n // ui\n theme?: string;\n hideActionsMenuButton?: boolean;\n hideSelectionMenuButton?: boolean;\n\n // events\n onLoad?: (response: UNOnLoadResponse<[UNAccountData]>) => void;\n onAccountChanged?: (account: UNAccountData) => void;\n}\n\nexport interface UNAccountRef {\n openActionsMenu: () => void;\n openAction: (action: UNAccountMenuAction) => void;\n}\n\nexport enum AccountAction {\n List = 'account-list',\n Menu = 'account-menu'\n}\n\nexport const UNAccountComponent = React.forwardRef<UNAccountRef, UNAccountComponentProps>(function UNAccountComponent(props, accountRef) {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);\n\n const webRef = useRef<WebView>(null);\n\n const handleAccountChanged = (account: UNAccountData) => {\n props.onAccountChanged && props.onAccountChanged(account);\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data);\n };\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response) {\n // AccountsOnLoadResponse;\n props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<[UNAccountData]>);\n return;\n }\n\n console.error('On Load Error: unexpected response type.');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: AccountMessage.UNIT_ACCOUNT_CHANGED, action: handleAccountChanged });\n\n useEffect(() => {\n injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent);\n }, [requestRefreshEvent]);\n\n useImperativeHandle(accountRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNAccountMenuAction) {\n injectRequestAccountActionScript(webRef.current, action);\n }\n }));\n\n const handleMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.account,\n componentResourceId: props.accountId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.account}\n presentationMode={PresentationMode.Default}\n params={getAccountParams(props)}\n script={getAccountScript()}\n theme={props.theme}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_pageMessage","_unitMessages","_EventBus","_interopRequireDefault","_WebComponent","_UNAccountComponent","_bodyHtml","_listenerToBus","_accountMessage","_onLoadMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AccountAction","exports","UNAccountComponent","React","forwardRef","props","accountRef","height","setHeight","useState","windowWidth","Dimensions","width","requestRefreshEvent","setRequestRefreshEvent","webRef","useRef","handleAccountChanged","account","onAccountChanged","requestRefresh","data","handleUnitOnLoad","response","onLoad","RESPONSE_KEYS","errors","console","error","useListenerToBus","busEventKey","UnitMessage","UNIT_REQUEST_REFRESH","action","AccountMessage","UNIT_ACCOUNT_CHANGED","useEffect","injectRefreshEventIfNeeded","current","useImperativeHandle","openActionsMenu","injectOpenActionsMenuScript","openAction","injectRequestAccountActionScript","handleMessage","message","type","UNIT_ON_LOAD","details","UNIT_REQUEST_RENDERING","event","componentName","WebComponentType","componentResourceId","accountId","requestRenderingEvent","EventBus","Instance","PageMessage","PAGE_HEIGHT","createElement","View","style","WebComponent","ref","presentationMode","PresentationMode","Default","params","getAccountParams","script","getAccountScript","theme","language","onMessage","isScrollable"],"sources":["UNAccountComponent.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../..//messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getAccountParams, getAccountScript, injectOpenActionsMenuScript, injectRefreshEventIfNeeded, injectRequestAccountActionScript } from './UNAccountComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { UNAccountData } from '../../sharedTypes/account.types';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport type { UNAccountMenuAction } from '../../sharedTypes';\n\nexport interface UNAccountComponentProps {\n // inputs\n accountId?: string;\n customerToken: string;\n\n // ui\n theme?: string;\n language?: string;\n hideActionsMenuButton?: boolean;\n hideSelectionMenuButton?: boolean;\n\n // events\n onLoad?: (response: UNOnLoadResponse<[UNAccountData]>) => void;\n onAccountChanged?: (account: UNAccountData) => void;\n}\n\nexport interface UNAccountRef {\n openActionsMenu: () => void;\n openAction: (action: UNAccountMenuAction) => void;\n}\n\nexport enum AccountAction {\n List = 'account-list',\n Menu = 'account-menu'\n}\n\nexport const UNAccountComponent = React.forwardRef<UNAccountRef, UNAccountComponentProps>(function UNAccountComponent(props, accountRef) {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);\n\n const webRef = useRef<WebView>(null);\n\n const handleAccountChanged = (account: UNAccountData) => {\n props.onAccountChanged && props.onAccountChanged(account);\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data);\n };\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response) {\n // AccountsOnLoadResponse;\n props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<[UNAccountData]>);\n return;\n }\n\n console.error('On Load Error: unexpected response type.');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: AccountMessage.UNIT_ACCOUNT_CHANGED, action: handleAccountChanged });\n\n useEffect(() => {\n injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent);\n }, [requestRefreshEvent]);\n\n useImperativeHandle(accountRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNAccountMenuAction) {\n injectRequestAccountActionScript(webRef.current, action);\n }\n }));\n\n const handleMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.account,\n componentResourceId: props.accountId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.account}\n presentationMode={PresentationMode.Default}\n params={getAccountParams(props)}\n script={getAccountScript()}\n theme={props.theme}\n language={props.language}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n});\n"],"mappings":"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"}
|
|
@@ -8,9 +8,10 @@ var _UNAccountComponent = require("./UNAccountComponent");
|
|
|
8
8
|
var _unitMessages = require("../../messages/webMessages/unitMessages");
|
|
9
9
|
var _WebComponent = require("../../webComponent/WebComponent");
|
|
10
10
|
const getAccountParams = props => {
|
|
11
|
+
const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : '';
|
|
11
12
|
return `
|
|
12
|
-
account-id="${props.accountId}"
|
|
13
13
|
customer-token="${props.customerToken}"
|
|
14
|
+
${accountIdParam}
|
|
14
15
|
hide-actions-menu-button="${props.hideActionsMenuButton || false}"
|
|
15
16
|
hide-selection-menu-button="${props.hideSelectionMenuButton || false}"
|
|
16
17
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_UNAccountComponent","require","_unitMessages","_WebComponent","getAccountParams","props","accountId","customerToken","hideActionsMenuButton","hideSelectionMenuButton","exports","getAccountScript","UnitMessage","UNIT_REQUEST_REFRESH","injectOpenActionsMenuScript","currentWeb","injectJavaScript","WebComponentType","account","injectRequestAccountActionScript","action","injectRefreshEventIfNeeded","requestRefreshEvent","dependencies","includes","valueOf","JSON","stringify","getAccountActionType","requestRendering","data","nativeComponent","AccountAction","List","Menu"],"sources":["UNAccountComponent.utils.ts"],"sourcesContent":["import { AccountAction, UNAccountComponentProps } from './UNAccountComponent';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport type WebView from 'react-native-webview';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { UNAccountMenuAction } from 'src/sharedTypes';\n\nexport const getAccountParams = (props: UNAccountComponentProps) => {\n
|
|
1
|
+
{"version":3,"names":["_UNAccountComponent","require","_unitMessages","_WebComponent","getAccountParams","props","accountIdParam","accountId","customerToken","hideActionsMenuButton","hideSelectionMenuButton","exports","getAccountScript","UnitMessage","UNIT_REQUEST_REFRESH","injectOpenActionsMenuScript","currentWeb","injectJavaScript","WebComponentType","account","injectRequestAccountActionScript","action","injectRefreshEventIfNeeded","requestRefreshEvent","dependencies","includes","valueOf","JSON","stringify","getAccountActionType","requestRendering","data","nativeComponent","AccountAction","List","Menu"],"sources":["UNAccountComponent.utils.ts"],"sourcesContent":["import { AccountAction, UNAccountComponentProps } from './UNAccountComponent';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport type WebView from 'react-native-webview';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { UNAccountMenuAction } from 'src/sharedTypes';\n\nexport const getAccountParams = (props: UNAccountComponentProps) => {\n const accountIdParam = props.accountId ? `account-id=\"${props.accountId}\"` : '';\n return `\n customer-token=\"${props.customerToken}\"\n ${accountIdParam}\n hide-actions-menu-button=\"${props.hideActionsMenuButton || false}\"\n hide-selection-menu-button=\"${props.hideSelectionMenuButton || false}\"\n `;\n};\n\nexport const getAccountScript = () => {\n return `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_REFRESH}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n `;\n};\n\nexport const injectOpenActionsMenuScript = (currentWeb: WebView | null) => {\n currentWeb?.injectJavaScript(`dispatchOpenActionsMenu('${WebComponentType.account}')`);\n};\n\nexport const injectRequestAccountActionScript = (currentWeb: WebView | null, action: UNAccountMenuAction) => {\n currentWeb?.injectJavaScript(`dispatchRequestAccountAction('${action}')`);\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.account.valueOf())) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const getAccountActionType = (requestRendering: RequestRenderingEvent) => {\n return requestRendering.data.nativeComponent.includes(AccountAction.List) ? AccountAction.List : AccountAction.Menu;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAGO,MAAMG,gBAAgB,GAAIC,KAA8B,IAAK;EAClE,MAAMC,cAAc,GAAGD,KAAK,CAACE,SAAS,GAAI,eAAcF,KAAK,CAACE,SAAU,GAAE,GAAG,EAAE;EAC/E,OAAQ;AACV,sBAAsBF,KAAK,CAACG,aAAc;AAC1C,MAAMF,cAAe;AACrB,gCAAgCD,KAAK,CAACI,qBAAqB,IAAI,KAAM;AACrE,kCAAkCJ,KAAK,CAACK,uBAAuB,IAAI,KAAM;AACzE,GAAG;AACH,CAAC;AAACC,OAAA,CAAAP,gBAAA,GAAAA,gBAAA;AAEK,MAAMQ,gBAAgB,GAAGA,CAAA,KAAM;EACpC,OAAQ;AACV;AACA,qCAAqCC,yBAAW,CAACC,oBAAqB;AACtE;AACA;AACA,GAAG;AACH,CAAC;AAACH,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,MAAMG,2BAA2B,GAAIC,UAA0B,IAAK;EACzEA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,4BAA2BC,8BAAgB,CAACC,OAAQ,IAAG,CAAC;AACxF,CAAC;AAACR,OAAA,CAAAI,2BAAA,GAAAA,2BAAA;AAEK,MAAMK,gCAAgC,GAAGA,CAACJ,UAA0B,EAAEK,MAA2B,KAAK;EAC3GL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,iCAAgCI,MAAO,IAAG,CAAC;AAC3E,CAAC;AAACV,OAAA,CAAAS,gCAAA,GAAAA,gCAAA;AAEK,MAAME,0BAA0B,GAAGA,CAACN,UAA0B,EAAEO,mBAA+C,KAAK;EACzH,IAAIA,mBAAmB,IAAIA,mBAAmB,CAACC,YAAY,CAACC,QAAQ,CAACP,8BAAgB,CAACC,OAAO,CAACO,OAAO,EAAE,CAAC,EAAE;IACxGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,yBAAwBU,IAAI,CAACC,SAAS,CAACL,mBAAmB,CAAE,IAAG,CAAC;EAChG;AACF,CAAC;AAACZ,OAAA,CAAAW,0BAAA,GAAAA,0BAAA;AAEK,MAAMO,oBAAoB,GAAIC,gBAAuC,IAAK;EAC/E,OAAOA,gBAAgB,CAACC,IAAI,CAACC,eAAe,CAACP,QAAQ,CAACQ,iCAAa,CAACC,IAAI,CAAC,GAAGD,iCAAa,CAACC,IAAI,GAAGD,iCAAa,CAACE,IAAI;AACrH,CAAC;AAACxB,OAAA,CAAAkB,oBAAA,GAAAA,oBAAA"}
|