react-native-unit-components 1.0.3 → 1.1.0
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 +39 -8
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +6 -1
- package/android/src/main/java/com/unitreactnativecomponents/getapplicationid/UNAppInfoModule.kt +35 -0
- package/lib/commonjs/assets/images/index.js +0 -2
- package/lib/commonjs/assets/images/index.js.map +1 -1
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +64 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +31 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +108 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +58 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +3 -29
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +0 -11
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +2 -22
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +0 -8
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -23
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -9
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -59
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +0 -3
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +0 -10
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +2 -24
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +0 -3
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +13 -41
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +7 -16
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +0 -2
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +3 -12
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -1
- package/lib/commonjs/components/index.js +22 -10
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +5 -47
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +0 -5
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/commonjs/helpers/EventBus.js +4 -17
- package/lib/commonjs/helpers/EventBus.js.map +1 -1
- package/lib/commonjs/hooks/listenerToBus.js +14 -14
- package/lib/commonjs/hooks/listenerToBus.js.map +1 -1
- package/lib/commonjs/hooks/useAppStateListener.js +1 -6
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
- package/lib/commonjs/index.js +0 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/cardMessage.js +0 -5
- package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js +0 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/achCreditMessage.js +6 -0
- package/lib/commonjs/messages/webMessages/achCreditMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js +0 -7
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/cardMessage.js +0 -1
- package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/index.js.map +1 -1
- package/lib/commonjs/messages/webMessages/pageMessage.js +0 -1
- package/lib/commonjs/messages/webMessages/pageMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/paymentsMessage.js +12 -0
- package/lib/commonjs/messages/webMessages/paymentsMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js +3 -1
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js +0 -2
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyHtml.js +0 -8
- package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyScript.js +24 -6
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/achCredit.types.js +6 -0
- package/lib/commonjs/sharedTypes/achCredit.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/index.js +22 -6
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/sharedTypes/payments.types.js +12 -0
- package/lib/commonjs/sharedTypes/payments.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/wallet.types.js +0 -3
- package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -1
- package/lib/commonjs/styles/variables.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js +1 -15
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +3 -20
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +7 -36
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.utils.js +0 -7
- package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -1
- package/lib/commonjs/webComponent/html.js +7 -8
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +55 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +23 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +99 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +48 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +3 -11
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +2 -9
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -11
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -3
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -35
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +2 -7
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.js +13 -20
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +7 -2
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +2 -4
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -1
- package/lib/module/components/index.js +2 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.js +5 -31
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/module/helpers/EventBus.js +4 -15
- package/lib/module/helpers/EventBus.js.map +1 -1
- package/lib/module/hooks/listenerToBus.js +14 -10
- package/lib/module/hooks/listenerToBus.js.map +1 -1
- package/lib/module/hooks/useAppStateListener.js +0 -2
- package/lib/module/hooks/useAppStateListener.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/messages/nativeMessages/cardMessage.js +0 -5
- package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js +0 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -1
- package/lib/module/messages/webMessages/achCreditMessage.js +2 -0
- package/lib/module/messages/webMessages/achCreditMessage.js.map +1 -0
- package/lib/module/messages/webMessages/bookPaymentMessage.js +1 -5
- package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -1
- package/lib/module/messages/webMessages/cardMessage.js +0 -1
- package/lib/module/messages/webMessages/cardMessage.js.map +1 -1
- package/lib/module/messages/webMessages/index.js.map +1 -1
- package/lib/module/messages/webMessages/pageMessage.js +0 -1
- package/lib/module/messages/webMessages/pageMessage.js.map +1 -1
- package/lib/module/messages/webMessages/paymentsMessage.js +5 -0
- package/lib/module/messages/webMessages/paymentsMessage.js.map +1 -0
- package/lib/module/messages/webMessages/unitMessages.js +3 -1
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -1
- package/lib/module/scripts/html/bodyHtml.js +0 -7
- package/lib/module/scripts/html/bodyHtml.js.map +1 -1
- package/lib/module/scripts/html/bodyScript.js +22 -1
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/achCredit.types.js +2 -0
- package/lib/module/sharedTypes/achCredit.types.js.map +1 -0
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/module/sharedTypes/index.js +2 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/sharedTypes/payments.types.js +5 -0
- package/lib/module/sharedTypes/payments.types.js.map +1 -0
- package/lib/module/sharedTypes/wallet.types.js +0 -3
- package/lib/module/sharedTypes/wallet.types.js.map +1 -1
- package/lib/module/styles/variables.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdk.api.js +1 -6
- package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js +3 -12
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +7 -18
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/WebComponent.utils.js +0 -1
- package/lib/module/webComponent/WebComponent.utils.js.map +1 -1
- package/lib/module/webComponent/html.js +7 -5
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +11 -0
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.utils.d.ts +3 -0
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +11 -0
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.utils.d.ts +7 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +1 -1
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
- package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +2 -1
- package/lib/typescript/components/index.d.ts +2 -0
- package/lib/typescript/helpers/EventBus.d.ts +1 -1
- package/lib/typescript/hooks/listenerToBus.d.ts +2 -2
- package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +1 -1
- package/lib/typescript/messages/nativeMessages/index.d.ts +2 -2
- package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/achCreditMessage.d.ts +5 -0
- package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +1 -4
- package/lib/typescript/messages/webMessages/cardMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/index.d.ts +5 -3
- package/lib/typescript/messages/webMessages/pageMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/paymentsMessage.d.ts +3 -0
- package/lib/typescript/messages/webMessages/unitMessages.d.ts +20 -2
- package/lib/typescript/nativeComponent/UnitAddToWalletButton.d.ts +1 -1
- package/lib/typescript/scripts/html/bodyScript.d.ts +3 -0
- package/lib/typescript/sharedTypes/achCredit.types.d.ts +31 -0
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -4
- package/lib/typescript/sharedTypes/card.types.d.ts +4 -4
- package/lib/typescript/sharedTypes/index.d.ts +2 -0
- package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +3 -3
- package/lib/typescript/sharedTypes/payments.types.d.ts +12 -0
- package/lib/typescript/sharedTypes/types.d.ts +6 -6
- package/lib/typescript/webComponent/WebComponent.d.ts +3 -1
- package/package.json +4 -2
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +73 -0
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.utils.ts +26 -0
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +117 -0
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.utils.ts +48 -0
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +2 -4
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +1 -3
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +3 -2
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -3
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +2 -4
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +1 -3
- package/src/components/UNCardComponent/UNCardComponent.tsx +14 -7
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +8 -1
- package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +2 -4
- package/src/components/index.ts +2 -0
- package/src/helpers/BottomSheet/BottomSheet.tsx +3 -7
- package/src/hooks/listenerToBus.ts +15 -10
- package/src/messages/webMessages/achCreditMessage.ts +8 -0
- package/src/messages/webMessages/bookPaymentMessage.ts +0 -4
- package/src/messages/webMessages/index.ts +7 -2
- package/src/messages/webMessages/paymentsMessage.ts +3 -0
- package/src/messages/webMessages/unitMessages.ts +25 -1
- package/src/scripts/html/bodyScript.ts +23 -1
- package/src/sharedTypes/achCredit.types.ts +32 -0
- package/src/sharedTypes/bookPayment.types.ts +2 -3
- package/src/sharedTypes/index.ts +2 -0
- package/src/sharedTypes/payments.types.ts +14 -0
- package/src/webComponent/WebComponent.tsx +5 -5
- package/src/webComponent/html.ts +7 -5
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ResponseUnitOnLoadEvent, UNACHData } from '../../sharedTypes';
|
|
2
|
+
export interface UNACHDebitComponentProps {
|
|
3
|
+
accountId: string;
|
|
4
|
+
customerToken: string;
|
|
5
|
+
theme?: string;
|
|
6
|
+
isAutoFocus?: boolean;
|
|
7
|
+
fee?: number;
|
|
8
|
+
onPaymentCreated?: (data: UNACHData) => void;
|
|
9
|
+
onLoad?: (response: ResponseUnitOnLoadEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const UNACHDebitComponent: (props: UNACHDebitComponentProps) => JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UNACHDebitComponentProps } from './UNACHDebitComponent';
|
|
2
|
+
import type WebView from 'react-native-webview';
|
|
3
|
+
import type { LinkSuccess } from 'react-native-plaid-link-sdk';
|
|
4
|
+
export declare const getACHDebitParams: (props: UNACHDebitComponentProps) => string;
|
|
5
|
+
export declare const getAndroidPackageName: () => Promise<any>;
|
|
6
|
+
export declare const getACHDebitScript: (androidPackageName?: string) => string;
|
|
7
|
+
export declare const injectUnitPlaidResponse: (currentWeb: WebView | null, success: LinkSuccess) => void;
|
|
@@ -6,7 +6,7 @@ export declare enum ScrollState {
|
|
|
6
6
|
onlyWebView = "webViewScroll",
|
|
7
7
|
onlyBottomSheet = "onlyBottomSheet"
|
|
8
8
|
}
|
|
9
|
-
export
|
|
9
|
+
export type BottomSheetSlotData = {
|
|
10
10
|
componentName?: WebComponentType;
|
|
11
11
|
componentResourceId?: string;
|
|
12
12
|
requestRenderingEvent: RequestRenderingEvent;
|
|
@@ -4,8 +4,11 @@ export interface UNCardComponentProps {
|
|
|
4
4
|
cardId: string;
|
|
5
5
|
customerToken: string;
|
|
6
6
|
theme?: string;
|
|
7
|
+
hideActionsMenuButton?: boolean;
|
|
8
|
+
hideCardTitle?: boolean;
|
|
9
|
+
hideSensitiveDataButton?: boolean;
|
|
10
|
+
onLoad?: (response: ResponseUnitOnLoadEvent) => void;
|
|
7
11
|
onStatusChanged?: (card: UNCardData) => void;
|
|
8
12
|
pushProvisioningModule?: typeof NativeModules;
|
|
9
|
-
onLoad?: (response: ResponseUnitOnLoadEvent) => void;
|
|
10
13
|
}
|
|
11
14
|
export declare const UNCardComponent: (props: UNCardComponentProps) => JSX.Element;
|
package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';
|
|
2
|
+
export declare const getMobileWalletPayload: (customerToken: string, cardId: string, env: UNEnvironment) => Promise<any>;
|
|
@@ -3,3 +3,5 @@ export * from './UNBottomSheetComponent/UNBottomSheetComponent';
|
|
|
3
3
|
export * from './UNBookPaymentComponent/UNBookPaymentComponent';
|
|
4
4
|
export * from './UNActivityComponent/UNActivityComponent';
|
|
5
5
|
export * from './UNAccountComponent/UNAccountComponent';
|
|
6
|
+
export * from './UNACHDebitComponent/UNACHDebitComponent';
|
|
7
|
+
export * from './UNACHCreditComponent/UNACHCreditComponent';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NativeMessageType } from '../messages/nativeMessages';
|
|
2
2
|
import type { WebViewMessageType } from '../messages/webMessages';
|
|
3
|
-
export
|
|
3
|
+
export type BusEventKey = NativeMessageType | WebViewMessageType;
|
|
4
4
|
export default class EventBus {
|
|
5
5
|
private static _instance;
|
|
6
6
|
private eventListeners;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BusEventKey } from '../helpers/EventBus';
|
|
2
|
-
|
|
2
|
+
type Listener = {
|
|
3
3
|
busEventKey: BusEventKey;
|
|
4
4
|
action: (data: any) => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const useListenerToBus: (
|
|
6
|
+
export declare const useListenerToBus: (listener: Listener) => void;
|
|
7
7
|
export {};
|
|
@@ -25,4 +25,4 @@ export interface CardGetAddToWalletStatusEvent {
|
|
|
25
25
|
export interface CardStartPushProvisioningEvent {
|
|
26
26
|
cardId: string;
|
|
27
27
|
}
|
|
28
|
-
export
|
|
28
|
+
export type CardNativeEvent = CardAddToWalletStatusEvent | CardGetAddToWalletStatusEvent | CardStartPushProvisioningEvent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CardNativeEvent, CardNativeMessage } from './cardMessage';
|
|
2
2
|
import type { SDKEvent, SDKMessage } from './sdkMessage';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export type NativeMessageType = SDKMessage | CardNativeMessage;
|
|
4
|
+
export type NativeEvent = CardNativeEvent | SDKEvent;
|
|
5
5
|
export interface NativeMessage {
|
|
6
6
|
type: NativeMessageType;
|
|
7
7
|
details?: NativeEvent;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { UNBookPaymentData } from '../../sharedTypes';
|
|
2
|
-
export declare enum BookPaymentMessage {
|
|
3
|
-
PAYMENT_CREATED = "unitPaymentCreated"
|
|
4
|
-
}
|
|
5
2
|
export interface PaymentCreatedEvent {
|
|
6
3
|
data: UNBookPaymentData;
|
|
7
4
|
}
|
|
8
|
-
export
|
|
5
|
+
export type BookPaymentEvent = PaymentCreatedEvent;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ACHEvent } from './achCreditMessage';
|
|
2
|
+
import type { BookPaymentEvent } from './bookPaymentMessage';
|
|
2
3
|
import type { CardEvent, CardMessage } from './cardMessage';
|
|
3
4
|
import type { PageEvent, PageMessage } from './pageMessage';
|
|
5
|
+
import type { PaymentMessage } from './paymentsMessage';
|
|
4
6
|
import type { UnitEvent, UnitMessage } from './unitMessages';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
+
export type WebViewMessageType = PageMessage | CardMessage | UnitMessage | PaymentMessage;
|
|
8
|
+
type WebViewEvent = PageEvent | UnitEvent | CardEvent | BookPaymentEvent | PaymentMessage | ACHEvent;
|
|
7
9
|
export interface WebViewMessage {
|
|
8
10
|
type: WebViewMessageType;
|
|
9
11
|
details?: WebViewEvent;
|
|
@@ -5,7 +5,10 @@ export declare enum UnitMessage {
|
|
|
5
5
|
UNIT_REQUEST_CLOSE_FLOW = "unitRequestCloseFlow",
|
|
6
6
|
UNIT_REQUEST_OPEN_LINK = "unitRequestOpenLink",
|
|
7
7
|
UNIT_ON_LOAD = "unitOnLoad",
|
|
8
|
-
UNIT_REQUEST_DOWNLOAD = "unitRequestDownload"
|
|
8
|
+
UNIT_REQUEST_DOWNLOAD = "unitRequestDownload",
|
|
9
|
+
UNIT_PLAID_TOKEN_CREATED = "unitPlaidLinkTokenCreated",
|
|
10
|
+
UNIT_REQUEST_EXTERNAL_SDK = "unitRequestExternalSdk",
|
|
11
|
+
UNIT_PLAID_RESPONSE = "unitPlaidResponse"
|
|
9
12
|
}
|
|
10
13
|
export interface RequestRenderingEvent {
|
|
11
14
|
data: RequestRenderingEventData;
|
|
@@ -31,4 +34,19 @@ export interface RequestDownloadEvent {
|
|
|
31
34
|
responseType: string;
|
|
32
35
|
fileName: string;
|
|
33
36
|
}
|
|
34
|
-
export
|
|
37
|
+
export interface PlaidTokenCreatedEvent {
|
|
38
|
+
linkToken: PlaidLinkTokenData;
|
|
39
|
+
}
|
|
40
|
+
export interface PlaidLinkTokenData {
|
|
41
|
+
type: string;
|
|
42
|
+
attributes: PlaidLinkTokenAttributes;
|
|
43
|
+
}
|
|
44
|
+
interface PlaidLinkTokenAttributes {
|
|
45
|
+
linkToken: string;
|
|
46
|
+
expiration: string;
|
|
47
|
+
}
|
|
48
|
+
export interface RequestExternalSdkEvent {
|
|
49
|
+
type: string;
|
|
50
|
+
}
|
|
51
|
+
export type UnitEvent = RequestRenderingEvent | RequestRefreshEvent | RequestOpenLinkEvent | ResponseUnitOnLoadEvent | RequestDownloadEvent | PlaidTokenCreatedEvent | RequestExternalSdkEvent;
|
|
52
|
+
export {};
|
|
@@ -9,6 +9,9 @@ export declare const LISTENERS: {
|
|
|
9
9
|
requestOpenLink: string;
|
|
10
10
|
unitRequestDownload: string;
|
|
11
11
|
cardStatusChange: string;
|
|
12
|
+
unitRequestExternalSdk: string;
|
|
13
|
+
unitPaymentCreated: string;
|
|
12
14
|
};
|
|
13
15
|
export declare const DISPATCH_RENDERING_EVENT: string;
|
|
14
16
|
export declare const DISPATCH_REQUEST_REFRESH: string;
|
|
17
|
+
export declare const DISPATCH_PLAID_RESPONSE: string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AchCounterparty, CounterpartyVerificationMethod, PaymentStatus } from './payments.types';
|
|
2
|
+
import type { Tags, Relationship } from './types';
|
|
3
|
+
export type UNACHData = {
|
|
4
|
+
type: 'achPayment';
|
|
5
|
+
id: string;
|
|
6
|
+
attributes: {
|
|
7
|
+
createdAt: string | Date;
|
|
8
|
+
status: PaymentStatus;
|
|
9
|
+
settlementDate?: Date;
|
|
10
|
+
reason: string;
|
|
11
|
+
direction: 'Debit' | 'Credit';
|
|
12
|
+
description: string;
|
|
13
|
+
transactionSummaryOverride?: string;
|
|
14
|
+
amount: string;
|
|
15
|
+
tags: Tags;
|
|
16
|
+
addenda?: string;
|
|
17
|
+
counterparty: AchCounterparty;
|
|
18
|
+
expectedCompletionDate?: Date;
|
|
19
|
+
counterpartyVerificationMethod?: keyof typeof CounterpartyVerificationMethod;
|
|
20
|
+
sameDay?: boolean;
|
|
21
|
+
};
|
|
22
|
+
relationships: {
|
|
23
|
+
account: Relationship;
|
|
24
|
+
customer?: Relationship;
|
|
25
|
+
customers?: Relationship;
|
|
26
|
+
counterpartyAccount: Relationship;
|
|
27
|
+
counterpartyCustomer: Relationship;
|
|
28
|
+
transaction: Relationship;
|
|
29
|
+
recurringPayment: Relationship;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import type { PaymentStatus } from './payments.types';
|
|
1
2
|
import type { Tags, Relationship } from './types';
|
|
2
|
-
|
|
3
|
-
export declare type UNBookPaymentData = {
|
|
3
|
+
export type UNBookPaymentData = {
|
|
4
4
|
type: 'bookPayment';
|
|
5
5
|
id: string;
|
|
6
6
|
attributes: {
|
|
7
7
|
createdAt: string | Date;
|
|
8
|
-
status:
|
|
8
|
+
status: PaymentStatus;
|
|
9
9
|
reason: string;
|
|
10
10
|
direction: 'Debit' | 'Credit';
|
|
11
11
|
description: string;
|
|
@@ -23,4 +23,3 @@ export declare type UNBookPaymentData = {
|
|
|
23
23
|
recurringPayment: Relationship;
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
|
-
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Address, FullName, Limits, Relationship, Tags } from './types';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
export type UNCardData = IndividualDebitCard | BusinessDebitCard;
|
|
3
|
+
type CardStatus = 'Active' | 'Inactive' | 'Stolen' | 'Lost' | 'Frozen' | 'ClosedByCustomer' | 'SuspectedFraud';
|
|
4
|
+
export type IndividualDebitCard = {
|
|
5
5
|
id: string;
|
|
6
6
|
type: 'individualDebitCard' | 'individualVirtualDebitCard';
|
|
7
7
|
attributes: {
|
|
@@ -23,7 +23,7 @@ export declare type IndividualDebitCard = {
|
|
|
23
23
|
customer: Relationship;
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
|
-
export
|
|
26
|
+
export type BusinessDebitCard = {
|
|
27
27
|
id: string;
|
|
28
28
|
type: 'businessDebitCard' | 'businessVirtualDebitCard';
|
|
29
29
|
attributes: {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { UNCardData } from '../sharedTypes';
|
|
2
|
-
export
|
|
2
|
+
export type SuccessResponseUnitOnLoad = {
|
|
3
3
|
data: UNCardData | Object;
|
|
4
4
|
included: [Object];
|
|
5
5
|
errors: null;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type ErrorResponseUnitOnLoad = {
|
|
8
8
|
errors: [
|
|
9
9
|
{
|
|
10
10
|
status: string;
|
|
@@ -15,4 +15,4 @@ export declare type ErrorResponseUnitOnLoad = {
|
|
|
15
15
|
}
|
|
16
16
|
];
|
|
17
17
|
};
|
|
18
|
-
export
|
|
18
|
+
export type ResponseUnitOnLoadEvent = SuccessResponseUnitOnLoad | ErrorResponseUnitOnLoad;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type PaymentStatus = 'Sent' | 'Rejected';
|
|
2
|
+
export type AchCounterparty = {
|
|
3
|
+
name: string;
|
|
4
|
+
accountNumber: string;
|
|
5
|
+
routingNumber: string;
|
|
6
|
+
accountType: AccountType;
|
|
7
|
+
};
|
|
8
|
+
type AccountType = 'Savings' | 'Checking';
|
|
9
|
+
export declare enum CounterpartyVerificationMethod {
|
|
10
|
+
Plaid = "Plaid"
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Address = {
|
|
2
2
|
street: string;
|
|
3
3
|
street2?: string;
|
|
4
4
|
city: string;
|
|
@@ -6,22 +6,22 @@ export declare type Address = {
|
|
|
6
6
|
postalCode: string;
|
|
7
7
|
country: string;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
9
|
+
export type Limits = {
|
|
10
10
|
dailyWithdrawal?: string | number;
|
|
11
11
|
dailyPurchase?: string | number;
|
|
12
12
|
monthlyWithdrawal?: string | number;
|
|
13
13
|
monthlyPurchase?: string | number;
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
type Data = {
|
|
16
16
|
type: string;
|
|
17
17
|
id: string;
|
|
18
18
|
};
|
|
19
|
-
export
|
|
19
|
+
export type Relationship = {
|
|
20
20
|
data: null | [] | Data | Data[];
|
|
21
21
|
};
|
|
22
|
-
export
|
|
22
|
+
export type FullName = {
|
|
23
23
|
first: string;
|
|
24
24
|
last: string;
|
|
25
25
|
};
|
|
26
|
-
export
|
|
26
|
+
export type Tags = Record<string, string>;
|
|
27
27
|
export {};
|
|
@@ -19,6 +19,8 @@ export declare enum WebComponentType {
|
|
|
19
19
|
bookPayment = "unit-elements-book-payment",
|
|
20
20
|
activity = "unit-elements-activity",
|
|
21
21
|
slot = "unit-elements-sdk-slot",
|
|
22
|
-
account = "unit-elements-account"
|
|
22
|
+
account = "unit-elements-account",
|
|
23
|
+
achDebitPayment = "unit-elements-ach-debit-payment",
|
|
24
|
+
achCreditPayment = "unit-elements-ach-credit-payment"
|
|
23
25
|
}
|
|
24
26
|
export declare const WebComponent: React.ForwardRefExoticComponent<WebComponentProps & React.RefAttributes<WebView<{}>>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-unit-components",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Unit React Native components",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -74,10 +74,12 @@
|
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"react": "*",
|
|
76
76
|
"react-native": "*",
|
|
77
|
-
"react-native-webview": "*"
|
|
77
|
+
"react-native-webview": "*",
|
|
78
|
+
"react-native-plaid-link-sdk": "*"
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
81
|
"axios": "^1.3.3",
|
|
82
|
+
"react-native-plaid-link-sdk": "^9.0.1",
|
|
81
83
|
"react-native-webview": "11.23.1"
|
|
82
84
|
},
|
|
83
85
|
"jest": {
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
3
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
4
|
+
import type { WebViewMessage } from '../../messages/webMessages';
|
|
5
|
+
import type { ResponseUnitOnLoadEvent, UNACHData } from '../../sharedTypes';
|
|
6
|
+
import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
|
|
7
|
+
import { View } from 'react-native';
|
|
8
|
+
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
9
|
+
import { getACHCreditParams, getACHCreditScript } from './UNACHCreditComponent.utils';
|
|
10
|
+
import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
11
|
+
import type { ACHEvent } from '../../messages/webMessages/achCreditMessage';
|
|
12
|
+
|
|
13
|
+
export interface UNACHCreditComponentProps {
|
|
14
|
+
accountId: string;
|
|
15
|
+
customerToken: string;
|
|
16
|
+
theme?: string;
|
|
17
|
+
isAutoFocus?: boolean;
|
|
18
|
+
fee?: number;
|
|
19
|
+
onPaymentCreated?: (data: UNACHData) => void;
|
|
20
|
+
onLoad?: (response: ResponseUnitOnLoadEvent) => void;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const UNACHCreditComponent = (props: UNACHCreditComponentProps) => {
|
|
24
|
+
const [height, setHeight] = useState<number>(0);
|
|
25
|
+
const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
|
|
26
|
+
|
|
27
|
+
const handleWebViewMessage = (message: WebViewMessage) => {
|
|
28
|
+
if (!message || !message.details) return;
|
|
29
|
+
|
|
30
|
+
switch (message.type) {
|
|
31
|
+
case PaymentMessage.PAYMENT_CREATED: {
|
|
32
|
+
const achCreditEvent = message.details as ACHEvent;
|
|
33
|
+
props.onPaymentCreated && props.onPaymentCreated(achCreditEvent.data as UNACHData);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case UnitMessage.UNIT_ON_LOAD:
|
|
37
|
+
props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);
|
|
38
|
+
break;
|
|
39
|
+
case PageMessage.PAGE_HEIGHT: {
|
|
40
|
+
const currentHeight = (message.details as HeightEvent).height;
|
|
41
|
+
setHeight(currentHeight);
|
|
42
|
+
if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {
|
|
43
|
+
setPresentationMode(PresentationMode.Default);
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const renderACHCreditWebView = () => {
|
|
51
|
+
return (
|
|
52
|
+
<WebComponent
|
|
53
|
+
type={WebComponentType.achCreditPayment}
|
|
54
|
+
presentationMode={presentationMode}
|
|
55
|
+
params={getACHCreditParams(props)}
|
|
56
|
+
script={getACHCreditScript()}
|
|
57
|
+
onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
|
|
58
|
+
isScrollable={false}
|
|
59
|
+
theme={props.theme}
|
|
60
|
+
/>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
if (presentationMode === PresentationMode.Inherit) {
|
|
65
|
+
return renderACHCreditWebView();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<View style={{ height: height }}>
|
|
70
|
+
{renderACHCreditWebView()}
|
|
71
|
+
</View>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { UNACHCreditComponentProps } from './UNACHCreditComponent';
|
|
2
|
+
|
|
3
|
+
import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
4
|
+
|
|
5
|
+
export const getACHCreditParams = (props: UNACHCreditComponentProps) => {
|
|
6
|
+
return `
|
|
7
|
+
account-id="${props.accountId}"
|
|
8
|
+
customer-token="${props.customerToken}"
|
|
9
|
+
is-auto-focus="${props.isAutoFocus ?? false}"
|
|
10
|
+
${props.fee ? `fee="${props.fee}"` : ''}
|
|
11
|
+
style="height: 100%"
|
|
12
|
+
`;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const getACHCreditScript = () => {
|
|
16
|
+
return `
|
|
17
|
+
window.addEventListener("${PaymentMessage.PAYMENT_CREATED}", (e) => {
|
|
18
|
+
const response = e.detail
|
|
19
|
+
response.then((data) => {
|
|
20
|
+
postMessageToSDK({ type: "${PaymentMessage.PAYMENT_CREATED}", details: { data: JSON.stringify(data.data) }})
|
|
21
|
+
}).catch((e) => {
|
|
22
|
+
console.log(e)
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
`;
|
|
26
|
+
};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
3
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
4
|
+
import type { WebViewMessage } from '../../messages/webMessages';
|
|
5
|
+
import type { ResponseUnitOnLoadEvent, UNACHData } from '../../sharedTypes';
|
|
6
|
+
import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
|
|
7
|
+
import { Platform, View } from 'react-native';
|
|
8
|
+
import { PlaidLinkTokenData, PlaidTokenCreatedEvent, RequestExternalSdkEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
9
|
+
import { getACHDebitParams, getACHDebitScript, getAndroidPackageName, injectUnitPlaidResponse } from './UNACHDebitComponent.utils';
|
|
10
|
+
|
|
11
|
+
import { LinkSuccess, openLink } from 'react-native-plaid-link-sdk';
|
|
12
|
+
import type WebView from 'react-native-webview';
|
|
13
|
+
|
|
14
|
+
import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
15
|
+
import type { ACHEvent } from '../../messages/webMessages/achCreditMessage';
|
|
16
|
+
|
|
17
|
+
export interface UNACHDebitComponentProps {
|
|
18
|
+
accountId: string;
|
|
19
|
+
customerToken: string;
|
|
20
|
+
theme?: string;
|
|
21
|
+
isAutoFocus?: boolean;
|
|
22
|
+
fee?: number;
|
|
23
|
+
onPaymentCreated?: (data: UNACHData) => void;
|
|
24
|
+
onLoad?: (response: ResponseUnitOnLoadEvent) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const UNACHDebitComponent = (props: UNACHDebitComponentProps) => {
|
|
28
|
+
const [height, setHeight] = useState<number>(0);
|
|
29
|
+
const [appPackageName, setAppPackageName] = useState<string>('');
|
|
30
|
+
const [linkToken, setLinkToken] = useState<string>('');
|
|
31
|
+
const webRef = useRef<WebView>(null);
|
|
32
|
+
const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
|
|
33
|
+
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const setPackageNameForAndroid = async () => {
|
|
36
|
+
if (Platform.OS === 'android') {
|
|
37
|
+
const packageName = await getAndroidPackageName();
|
|
38
|
+
setAppPackageName(packageName);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
setPackageNameForAndroid();
|
|
42
|
+
}, []);
|
|
43
|
+
|
|
44
|
+
const dispatchUnitPlaidResponse = (success: LinkSuccess) => {
|
|
45
|
+
injectUnitPlaidResponse(webRef.current, success);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const handleWebViewMessage = (message: WebViewMessage) => {
|
|
49
|
+
if (!message || !message.details) return;
|
|
50
|
+
|
|
51
|
+
switch (message.type) {
|
|
52
|
+
case PaymentMessage.PAYMENT_CREATED: {
|
|
53
|
+
const achDebitEvent = message.details as ACHEvent;
|
|
54
|
+
props.onPaymentCreated && props.onPaymentCreated(achDebitEvent.data as UNACHData);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case UnitMessage.UNIT_ON_LOAD:
|
|
58
|
+
props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);
|
|
59
|
+
break;
|
|
60
|
+
case PageMessage.PAGE_HEIGHT: {
|
|
61
|
+
const currentHeight = (message.details as HeightEvent).height;
|
|
62
|
+
setHeight(currentHeight);
|
|
63
|
+
if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {
|
|
64
|
+
setPresentationMode(PresentationMode.Default);
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case UnitMessage.UNIT_PLAID_TOKEN_CREATED: {
|
|
69
|
+
const linkTokenEvent = message.details as PlaidTokenCreatedEvent;
|
|
70
|
+
const linkTokenData = linkTokenEvent.linkToken as PlaidLinkTokenData;
|
|
71
|
+
setLinkToken(linkTokenData.attributes.linkToken);
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
case UnitMessage.UNIT_REQUEST_EXTERNAL_SDK: {
|
|
76
|
+
const externalSdkType = (message.details as RequestExternalSdkEvent).type;
|
|
77
|
+
if (externalSdkType !== 'plaid') return;
|
|
78
|
+
linkToken && openLink({
|
|
79
|
+
tokenConfig: { noLoadingState: false, token: linkToken},
|
|
80
|
+
onSuccess: (success) => {
|
|
81
|
+
dispatchUnitPlaidResponse(success);
|
|
82
|
+
},
|
|
83
|
+
onExit: exit => { console.log(exit); }
|
|
84
|
+
}).catch(e => {
|
|
85
|
+
console.error(e);
|
|
86
|
+
});
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const renderACHDebitWebView = () => {
|
|
93
|
+
return (
|
|
94
|
+
<WebComponent
|
|
95
|
+
ref={webRef}
|
|
96
|
+
type={WebComponentType.achDebitPayment}
|
|
97
|
+
presentationMode={presentationMode}
|
|
98
|
+
params={getACHDebitParams(props)}
|
|
99
|
+
script={getACHDebitScript(appPackageName)}
|
|
100
|
+
onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
|
|
101
|
+
isScrollable={false}
|
|
102
|
+
theme={props.theme}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
if (presentationMode === PresentationMode.Inherit) {
|
|
108
|
+
return renderACHDebitWebView();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<View style={{ height: height }}>
|
|
113
|
+
{renderACHDebitWebView()}
|
|
114
|
+
</View>
|
|
115
|
+
|
|
116
|
+
);
|
|
117
|
+
};
|