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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_EventBus","_interopRequireDefault","_html","_unitMessages","_listenerToBus","_bodyHtml","_UnitSdk","_UnitSdkManager","_sdkMessage","_WebComponent","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNAppInfo","NativeModules","WebComponentType","exports","WebComponent","React","forwardRef","props","webRef","unitScript","setUnitScript","useState","globalUnitScript","sourceHtml","setSourceHtml","componentCurrentTheme","setComponentCurrentTheme","theme","UnitSDK","getTheme","baseName","setBaseName","width","updateUnitScript","data","updateInitializedParams","useListenerToBus","busEventKey","SDKMessage","IS_SCRIPT_FETCHED","action","IS_SDK_INITIALIZED","useEffect","getAppName","Platform","OS","name","getBundleName","replace","error","console","fetchUnitScript","componentParams","params","newHtml","html","HTML_PLACEHOLDER","BODY","getHtmlBody","type","valueOf","presentationMode","SCRIPT_FROM_NATIVE","script","onMessage","e","message","JSON","parse","nativeEvent","UnitMessage","UNIT_REQUEST_REFRESH","details","EventBus","Instance","event","UNIT_REQUEST_DOWNLOAD","handleRequestDownload","UNIT_REQUEST_CLOSE_FLOW","_onScroll","handleScroll","createElement","WebView","ref","originWhitelist","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","cacheEnabled","scrollEnabled","isScrollable","nestedScrollEnabled","onScroll","overScrollMode","injectedJavaScript","style","flex","opacity","source","baseUrl","androidHardwareAccelerationDisabled"],"sources":["WebComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport EventBus from '../helpers/EventBus';\nimport html, { HTML_PLACEHOLDER } from './html';\nimport { RequestRefreshEvent, UnitMessage, RequestDownloadEvent } from '../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../hooks/listenerToBus';\nimport { getHtmlBody, PresentationMode } from '../scripts/html/bodyHtml';\nimport { fetchUnitScript, globalUnitScript } from '../unitSdkManager/UnitSdk.api';\nimport { UnitSDK } from '../unitSdkManager/UnitSdkManager';\nimport type { WebViewMessage } from '../messages/webMessages';\nimport { SDKMessage, SdkScriptFetched } from '../messages/nativeMessages/sdkMessage';\nimport { handleRequestDownload } from './WebComponent.utils';\n\nconst { UNAppInfo } = NativeModules;\n\nexport interface WebComponentProps {\n type: WebComponentType;\n presentationMode?: PresentationMode,\n params?: string;\n theme?: string;\n onMessage?: (message: WebViewMessage) => void;\n script?: string;\n isScrollable?: boolean,\n nestedScrollEnabled?: boolean,\n handleScroll?: (event: any) => void,\n width?: number;\n}\n\nexport enum WebComponentType {\n card = 'unit-elements-card',\n bookPayment = 'unit-elements-book-payment',\n activity = 'unit-elements-activity',\n slot = 'unit-elements-sdk-slot',\n account = 'unit-elements-account',\n checkDeposit = 'unit-elements-check-deposit',\n achDebitPayment = 'unit-elements-ach-debit-payment',\n achCreditPayment = 'unit-elements-ach-credit-payment'\n}\n\nexport const WebComponent = React.forwardRef<WebView, WebComponentProps>(function WebComponent(props, webRef) {\n const [unitScript, setUnitScript] = useState<string | undefined>(globalUnitScript);\n const [sourceHtml, setSourceHtml] = useState<string | null>(null);\n const [componentCurrentTheme, setComponentCurrentTheme] = useState<string | undefined>(props.theme ?? UnitSDK.getTheme());\n const [baseName, setBaseName] = useState<string>();\n const width = props.width ?? '100%';\n\n const updateUnitScript = (data: SdkScriptFetched) => {\n setUnitScript(data.unitScript);\n };\n\n const updateInitializedParams = () => {\n setComponentCurrentTheme(props.theme ?? UnitSDK.getTheme());\n };\n\n useListenerToBus({ busEventKey: SDKMessage.IS_SCRIPT_FETCHED, action: updateUnitScript });\n useListenerToBus({ busEventKey: SDKMessage.IS_SDK_INITIALIZED, action: updateInitializedParams });\n\n useEffect(() => {\n\n const getAppName = async () => {\n // For iOS, we extend the app name from the HTML to display a prettier access request message.\n // On Android, there is no request message sent from HTML.\n try {\n if (Platform.OS == 'ios') {\n const name = await UNAppInfo.getBundleName();\n setBaseName(name.replace(/ /g, '-'));\n } else { // android\n setBaseName('unit');\n }\n } catch (error: any) {\n console.error(error);\n }\n };\n\n getAppName();\n }, []);\n\n useEffect(() => {\n if (!unitScript) {\n fetchUnitScript();\n return;\n }\n\n const componentParams = (props.params || '') + (componentCurrentTheme ? ` theme=\"${componentCurrentTheme}\"` : '');\n let newHtml = html.replace(HTML_PLACEHOLDER.BODY, getHtmlBody(props.type.valueOf(), componentParams, props.presentationMode));\n newHtml = newHtml.replace(HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE, props.script || '');\n setSourceHtml(newHtml);\n }, [props.params, unitScript, props.presentationMode, componentCurrentTheme, props.script]);\n\n const onMessage = (e: WebViewMessageEvent) => {\n const message = JSON.parse(e.nativeEvent.data) as WebViewMessage;\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_REFRESH:\n message.details &&\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_REFRESH, message.details as RequestRefreshEvent);\n break;\n case UnitMessage.UNIT_REQUEST_DOWNLOAD:\n message.details &&\n handleRequestDownload(message.details as RequestDownloadEvent, () => {\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_CLOSE_FLOW);\n });\n break;\n default:\n props.onMessage && props.onMessage(message);\n }\n };\n\n if (!sourceHtml) return null;\n\n const _onScroll = (event: any) => {\n if (props.handleScroll) {\n props.handleScroll(event);\n }\n\n return null;\n };\n\n if (!baseName) {\n return null;\n }\n\n return (\n <WebView\n ref={webRef}\n originWhitelist={['*']}\n mediaPlaybackRequiresUserAction={false}\n allowsInlineMediaPlayback={true}\n cacheEnabled={false}\n scrollEnabled={props.isScrollable}\n nestedScrollEnabled={props.nestedScrollEnabled}\n onScroll={_onScroll}\n overScrollMode=\"never\"\n injectedJavaScript={unitScript}\n style={{ width: width, flex: 1, opacity: 0.99}}\n source={{ html: sourceHtml, baseUrl: `https://${baseName}` }}\n onMessage={onMessage}\n androidHardwareAccelerationDisabled\n />\n );\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_EventBus","_interopRequireDefault","_html","_unitMessages","_listenerToBus","_bodyHtml","_UnitSdk","_UnitSdkManager","_sdkMessage","_WebComponent","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNAppInfo","NativeModules","WebComponentType","exports","WebComponent","React","forwardRef","props","webRef","unitScript","setUnitScript","useState","globalUnitScript","sourceHtml","setSourceHtml","componentCurrentTheme","setComponentCurrentTheme","theme","UnitSDK","getTheme","componentCurrentLanguage","setComponentCurrentLanguage","language","getLanguage","baseName","setBaseName","width","updateUnitScript","data","updateInitializedParams","useListenerToBus","busEventKey","SDKMessage","IS_SCRIPT_FETCHED","action","IS_SDK_INITIALIZED","useEffect","getAppName","Platform","OS","name","getBundleName","replace","error","console","fetchUnitScript","themeParam","languageParam","componentParams","params","newHtml","html","HTML_PLACEHOLDER","BODY","getHtmlBody","type","valueOf","presentationMode","SCRIPT_FROM_NATIVE","script","onMessage","e","message","JSON","parse","nativeEvent","UnitMessage","UNIT_REQUEST_REFRESH","details","EventBus","Instance","event","UNIT_REQUEST_DOWNLOAD","handleRequestDownload","UNIT_REQUEST_CLOSE_FLOW","_onScroll","handleScroll","createElement","WebView","ref","originWhitelist","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","cacheEnabled","scrollEnabled","isScrollable","nestedScrollEnabled","onScroll","overScrollMode","injectedJavaScript","style","flex","opacity","backgroundColor","source","baseUrl","androidHardwareAccelerationDisabled"],"sources":["WebComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport EventBus from '../helpers/EventBus';\nimport html, { HTML_PLACEHOLDER } from './html';\nimport { RequestRefreshEvent, UnitMessage, RequestDownloadEvent } from '../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../hooks/listenerToBus';\nimport { getHtmlBody, PresentationMode } from '../scripts/html/bodyHtml';\nimport { fetchUnitScript, globalUnitScript } from '../unitSdkManager/UnitSdk.api';\nimport { UnitSDK } from '../unitSdkManager/UnitSdkManager';\nimport type { WebViewMessage } from '../messages/webMessages';\nimport { SDKMessage, SdkScriptFetched } from '../messages/nativeMessages/sdkMessage';\nimport { handleRequestDownload } from './WebComponent.utils';\n\nconst { UNAppInfo } = NativeModules;\n\nexport interface WebComponentProps {\n type: WebComponentType;\n presentationMode?: PresentationMode,\n params?: string;\n theme?: string;\n language?: string;\n onMessage?: (message: WebViewMessage) => void;\n script?: string;\n isScrollable?: boolean,\n nestedScrollEnabled?: boolean,\n handleScroll?: (event: any) => void,\n width?: number;\n}\n\nexport enum WebComponentType {\n card = 'unit-elements-card',\n bookPayment = 'unit-elements-book-payment',\n activity = 'unit-elements-activity',\n slot = 'unit-elements-sdk-slot',\n account = 'unit-elements-account',\n checkDeposit = 'unit-elements-check-deposit',\n achDebitPayment = 'unit-elements-ach-debit-payment',\n achCreditPayment = 'unit-elements-ach-credit-payment'\n}\n\nexport const WebComponent = React.forwardRef<WebView, WebComponentProps>(function WebComponent(props, webRef) {\n const [unitScript, setUnitScript] = useState<string | undefined>(globalUnitScript);\n const [sourceHtml, setSourceHtml] = useState<string | null>(null);\n const [componentCurrentTheme, setComponentCurrentTheme] = useState<string | undefined>(props.theme ?? UnitSDK.getTheme());\n const [componentCurrentLanguage, setComponentCurrentLanguage] = useState<string | undefined>(props.language ?? UnitSDK.getLanguage());\n const [baseName, setBaseName] = useState<string>();\n const width = props.width ?? '100%';\n\n const updateUnitScript = (data: SdkScriptFetched) => {\n setUnitScript(data.unitScript);\n };\n\n const updateInitializedParams = () => {\n setComponentCurrentTheme(props.theme ?? UnitSDK.getTheme());\n setComponentCurrentLanguage(props.language ?? UnitSDK.getLanguage());\n };\n\n useListenerToBus({ busEventKey: SDKMessage.IS_SCRIPT_FETCHED, action: updateUnitScript });\n useListenerToBus({ busEventKey: SDKMessage.IS_SDK_INITIALIZED, action: updateInitializedParams });\n\n useEffect(() => {\n\n const getAppName = async () => {\n // For iOS, we extend the app name from the HTML to display a prettier access request message.\n // On Android, there is no request message sent from HTML.\n try {\n if (Platform.OS == 'ios') {\n const name = await UNAppInfo.getBundleName();\n setBaseName(name.replace(/ /g, '-'));\n } else { // android\n setBaseName('unit');\n }\n } catch (error: any) {\n console.error(error);\n }\n };\n\n getAppName();\n }, []);\n\n useEffect(() => {\n if (!unitScript) {\n fetchUnitScript();\n return;\n }\n\n const themeParam = componentCurrentTheme ? ` theme=\"${componentCurrentTheme}\"` : '';\n const languageParam = componentCurrentLanguage ? ` language=\"${componentCurrentLanguage}\"` : '';\n\n const componentParams = (props.params || '') + themeParam + languageParam;\n let newHtml = html.replace(HTML_PLACEHOLDER.BODY, getHtmlBody(props.type.valueOf(), componentParams, props.presentationMode));\n newHtml = newHtml.replace(HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE, props.script || '');\n setSourceHtml(newHtml);\n }, [props.params, unitScript, props.presentationMode, componentCurrentTheme, componentCurrentLanguage, props.script]);\n\n const onMessage = (e: WebViewMessageEvent) => {\n const message = JSON.parse(e.nativeEvent.data) as WebViewMessage;\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_REFRESH:\n message.details &&\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_REFRESH, message.details as RequestRefreshEvent);\n break;\n case UnitMessage.UNIT_REQUEST_DOWNLOAD:\n message.details &&\n handleRequestDownload(message.details as RequestDownloadEvent, () => {\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_CLOSE_FLOW);\n });\n break;\n default:\n props.onMessage && props.onMessage(message);\n }\n };\n\n if (!sourceHtml) return null;\n\n const _onScroll = (event: any) => {\n if (props.handleScroll) {\n props.handleScroll(event);\n }\n\n return null;\n };\n\n if (!baseName) {\n return null;\n }\n\n return (\n <WebView\n ref={webRef}\n originWhitelist={['*']}\n mediaPlaybackRequiresUserAction={false}\n allowsInlineMediaPlayback={true}\n cacheEnabled={false}\n scrollEnabled={props.isScrollable}\n nestedScrollEnabled={props.nestedScrollEnabled}\n onScroll={_onScroll}\n overScrollMode=\"never\"\n injectedJavaScript={unitScript}\n style={{ width: width, flex: 1, opacity: 0.99, backgroundColor: \"transparent\" }}\n source={{ html: sourceHtml, baseUrl: `https://${baseName}` }}\n onMessage={onMessage}\n androidHardwareAccelerationDisabled\n />\n );\n});\n"],"mappings":"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"}
|
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useEffect, useRef } from 'react';
|
|
2
2
|
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
3
3
|
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
4
4
|
import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
5
|
-
import { View } from 'react-native';
|
|
6
|
-
import {
|
|
7
|
-
import { getACHCreditParams, getACHCreditScript } from './UNACHCreditComponent.utils';
|
|
5
|
+
import { Platform, View } from 'react-native';
|
|
6
|
+
import { getACHCreditParams, getACHCreditScript, injectUnitPlaidResponse } from './UNACHCreditComponent.utils';
|
|
8
7
|
import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
9
8
|
import { RESPONSE_KEYS } from '../../messages/webMessages/onLoadMessage';
|
|
9
|
+
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
10
|
+
import { openLink } from 'react-native-plaid-link-sdk';
|
|
11
|
+
import { getAndroidPackageName } from '../utils/nativeModulesInfo';
|
|
10
12
|
export const UNACHCreditComponent = props => {
|
|
11
13
|
const [height, setHeight] = useState(0);
|
|
12
14
|
const [presentationMode, setPresentationMode] = useState(PresentationMode.Inherit);
|
|
15
|
+
const [linkToken, setLinkToken] = useState();
|
|
16
|
+
const [appPackageName, setAppPackageName] = useState();
|
|
17
|
+
const webRef = useRef(null);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const setPackageNameForAndroid = async () => {
|
|
20
|
+
if (Platform.OS === 'android') {
|
|
21
|
+
const packageName = await getAndroidPackageName();
|
|
22
|
+
setAppPackageName(packageName);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
setPackageNameForAndroid();
|
|
26
|
+
}, []);
|
|
13
27
|
const handleUnitOnLoad = response => {
|
|
14
28
|
if (!props.onLoad) {
|
|
15
29
|
return;
|
|
@@ -53,17 +67,46 @@ export const UNACHCreditComponent = props => {
|
|
|
53
67
|
}
|
|
54
68
|
break;
|
|
55
69
|
}
|
|
70
|
+
case UnitMessage.UNIT_PLAID_TOKEN_CREATED:
|
|
71
|
+
{
|
|
72
|
+
const linkTokenEvent = message.details;
|
|
73
|
+
const linkTokenData = linkTokenEvent.linkToken;
|
|
74
|
+
setLinkToken(linkTokenData.attributes.linkToken);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case UnitMessage.UNIT_REQUEST_EXTERNAL_SDK:
|
|
78
|
+
{
|
|
79
|
+
const externalSdkType = message.details.type;
|
|
80
|
+
if (externalSdkType !== 'plaid') return;
|
|
81
|
+
linkToken && openLink({
|
|
82
|
+
tokenConfig: {
|
|
83
|
+
noLoadingState: false,
|
|
84
|
+
token: linkToken
|
|
85
|
+
},
|
|
86
|
+
onSuccess: success => {
|
|
87
|
+
injectUnitPlaidResponse(webRef.current, success);
|
|
88
|
+
},
|
|
89
|
+
onExit: exit => {
|
|
90
|
+
console.log(exit);
|
|
91
|
+
}
|
|
92
|
+
}).catch(e => {
|
|
93
|
+
console.error(e);
|
|
94
|
+
});
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
56
97
|
}
|
|
57
98
|
};
|
|
58
99
|
const renderACHCreditWebView = () => {
|
|
59
100
|
return /*#__PURE__*/React.createElement(WebComponent, {
|
|
101
|
+
ref: webRef,
|
|
60
102
|
type: WebComponentType.achCreditPayment,
|
|
61
103
|
presentationMode: presentationMode,
|
|
62
104
|
params: getACHCreditParams(props),
|
|
63
|
-
script: getACHCreditScript(),
|
|
105
|
+
script: getACHCreditScript(appPackageName),
|
|
64
106
|
onMessage: message => handleWebViewMessage(message),
|
|
65
107
|
isScrollable: false,
|
|
66
|
-
theme: props.theme
|
|
108
|
+
theme: props.theme,
|
|
109
|
+
language: props.language
|
|
67
110
|
});
|
|
68
111
|
};
|
|
69
112
|
if (presentationMode === PresentationMode.Inherit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","WebComponent","WebComponentType","PresentationMode","PageMessage","View","UnitMessage","getACHCreditParams","getACHCreditScript","PaymentMessage","RESPONSE_KEYS","UNACHCreditComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","handleUnitOnLoad","response","onLoad","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","achCreditEvent","onPaymentCreated","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","Default","renderACHCreditWebView","createElement","achCreditPayment","params","script","onMessage","isScrollable","theme","style"],"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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAChF,SAASC,gBAAgB,QAAQ,6BAA6B;AAG9D,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,WAAW,QAAQ,yCAAyC;AACrE,SAASC,kBAAkB,EAAEC,kBAAkB,QAAQ,8BAA8B;AACrF,SAASC,cAAc,QAAQ,4CAA4C;AAE3E,SAASC,aAAa,QAAiC,0CAA0C;AAYjG,OAAO,MAAMC,oBAAoB,GAAIC,KAAgC,IAAK;EACxE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACe,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhB,QAAQ,CAAmBG,gBAAgB,CAACc,OAAO,CAAC;EAEpG,MAAMC,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAACP,KAAK,CAACQ,MAAM,EAAE;MACjB;IACF;IAEA,IAAIV,aAAa,CAACW,MAAM,IAAIF,QAAQ,EAAE;MACpCP,KAAK,CAACQ,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIT,aAAa,CAACY,OAAO,IAAIH,QAAQ,IAAIT,aAAa,CAACa,mBAAmB,IAAIJ,QAAQ,EAAE;MACtF;MACA,MAAMK,SAAgD,GAAG;QACvDC,IAAI,EAAE;UACJ,CAACf,aAAa,CAACY,OAAO,GAAGH,QAAQ,CAACT,aAAa,CAACY,OAAO,CAAC,CAACG,IAAI;UAC7D,CAACf,aAAa,CAACa,mBAAmB,GAAGJ,QAAQ,CAACT,aAAa,CAACa,mBAAmB,CAAC,CAACE;QACnF;MACF,CAAC;MACDb,KAAK,CAACQ,MAAM,CAACI,SAAS,CAAC;MACvB;IACF;IAEAE,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAKtB,cAAc,CAACuB,eAAe;QAAE;UACnC,MAAMC,cAAc,GAAGJ,OAAO,CAACC,OAAmB;UAClDlB,KAAK,CAACsB,gBAAgB,IAAItB,KAAK,CAACsB,gBAAgB,CAACD,cAAc,CAACR,IAAI,CAAc;UAClF;QACF;MACA,KAAKnB,WAAW,CAAC6B,YAAY;QAC3BjB,gBAAgB,CAACW,OAAO,CAACC,OAAO,CAA4B;QAC5D;MACF,KAAK1B,WAAW,CAACgC,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIR,OAAO,CAACC,OAAO,CAAiBjB,MAAM;UAC7DC,SAAS,CAACuB,aAAa,CAAC;UACxB,IAAItB,gBAAgB,KAAKZ,gBAAgB,CAACc,OAAO,IAAIoB,aAAa,KAAK,CAAC,EAAE;YACxErB,mBAAmB,CAACb,gBAAgB,CAACmC,OAAO,CAAC;UAC/C;UACA;QACF;IAAC;EAEL,CAAC;EAED,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACnC,oBACExC,KAAA,CAAAyC,aAAA,CAACvC,YAAY;MACX8B,IAAI,EAAE7B,gBAAgB,CAACuC,gBAAiB;MACxC1B,gBAAgB,EAAEA,gBAAiB;MACnC2B,MAAM,EAAEnC,kBAAkB,CAACK,KAAK,CAAE;MAClC+B,MAAM,EAAEnC,kBAAkB,EAAG;MAC7BoC,SAAS,EAAGf,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEgB,YAAY,EAAE,KAAM;MACpBC,KAAK,EAAElC,KAAK,CAACkC;IAAM,EACnB;EAEN,CAAC;EAED,IAAI/B,gBAAgB,KAAKZ,gBAAgB,CAACc,OAAO,EAAE;IACjD,OAAOsB,sBAAsB,EAAE;EACjC;EAEA,oBACExC,KAAA,CAAAyC,aAAA,CAACnC,IAAI;IAAC0C,KAAK,EAAE;MAAElC,MAAM,EAAEA;IAAO;EAAE,GAC7B0B,sBAAsB,EAAE,CACpB;AAEX,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useRef","WebComponent","WebComponentType","PresentationMode","PageMessage","Platform","View","getACHCreditParams","getACHCreditScript","injectUnitPlaidResponse","PaymentMessage","RESPONSE_KEYS","UnitMessage","openLink","getAndroidPackageName","UNACHCreditComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","linkToken","setLinkToken","appPackageName","setAppPackageName","webRef","setPackageNameForAndroid","OS","packageName","handleUnitOnLoad","response","onLoad","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","achCreditEvent","onPaymentCreated","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","tokenConfig","noLoadingState","token","onSuccess","success","current","onExit","exit","log","catch","e","renderACHCreditWebView","createElement","ref","achCreditPayment","params","script","onMessage","isScrollable","theme","language","style"],"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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"}
|
|
@@ -1,23 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DISPATCH_PLAID_RESPONSE, LISTENERS } from '../../scripts/html/bodyScript';
|
|
2
2
|
export const getACHCreditParams = props => {
|
|
3
3
|
return `
|
|
4
4
|
account-id="${props.accountId}"
|
|
5
5
|
customer-token="${props.customerToken}"
|
|
6
|
+
with-plaid="${props.withPlaid ?? false}"
|
|
6
7
|
is-auto-focus="${props.isAutoFocus ?? false}"
|
|
7
8
|
${props.fee ? `fee="${props.fee}"` : ''}
|
|
8
9
|
style="height: 100%"
|
|
9
10
|
`;
|
|
10
11
|
};
|
|
11
|
-
export const getACHCreditScript =
|
|
12
|
+
export const getACHCreditScript = appPackageName => {
|
|
12
13
|
return `
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}).catch((e) => {
|
|
18
|
-
console.log(e)
|
|
19
|
-
})
|
|
20
|
-
});
|
|
14
|
+
${LISTENERS.unitPlaidTokenCreated}
|
|
15
|
+
${appPackageName && `window.UnitMobileSDKConfig.androidPackageName='${appPackageName}'`}
|
|
16
|
+
${LISTENERS.unitPaymentCreated}
|
|
17
|
+
${DISPATCH_PLAID_RESPONSE}
|
|
21
18
|
`;
|
|
22
19
|
};
|
|
20
|
+
export const injectUnitPlaidResponse = (currentWeb, success) => {
|
|
21
|
+
const successObj = {
|
|
22
|
+
data: {
|
|
23
|
+
publicToken: success.publicToken,
|
|
24
|
+
metadata: success.metadata
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchPlaidEvent(${JSON.stringify(successObj)})`);
|
|
28
|
+
};
|
|
23
29
|
//# sourceMappingURL=UNACHCreditComponent.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["DISPATCH_PLAID_RESPONSE","LISTENERS","getACHCreditParams","props","accountId","customerToken","withPlaid","isAutoFocus","fee","getACHCreditScript","appPackageName","unitPlaidTokenCreated","unitPaymentCreated","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,SAASA,uBAAuB,EAAEC,SAAS,QAAQ,+BAA+B;AAElF,OAAO,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;AAED,OAAO,MAAMC,kBAAkB,GAAIC,cAAuB,IAAK;EAC7D,OAAQ;AACV,MAAMT,SAAS,CAACU,qBAAsB;AACtC,MAAMD,cAAc,IAAK,kDAAiDA,cAAe,GAAG;AAC5F,MAAMT,SAAS,CAACW,kBAAmB;AACnC,MAAMZ,uBAAwB;AAC9B,GAAG;AACH,CAAC;AAED,OAAO,MAAMa,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"}
|
|
@@ -4,10 +4,11 @@ import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
|
4
4
|
import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
5
5
|
import { Platform, View } from 'react-native';
|
|
6
6
|
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
7
|
-
import { getACHDebitParams, getACHDebitScript,
|
|
7
|
+
import { getACHDebitParams, getACHDebitScript, injectUnitPlaidResponse } from './UNACHDebitComponent.utils';
|
|
8
8
|
import { openLink } from 'react-native-plaid-link-sdk';
|
|
9
9
|
import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
10
10
|
import { RESPONSE_KEYS } from '../../messages/webMessages/onLoadMessage';
|
|
11
|
+
import { getAndroidPackageName } from '../utils/nativeModulesInfo';
|
|
11
12
|
export const UNACHDebitComponent = props => {
|
|
12
13
|
const [height, setHeight] = useState(0);
|
|
13
14
|
const [appPackageName, setAppPackageName] = useState('');
|
|
@@ -23,9 +24,6 @@ export const UNACHDebitComponent = props => {
|
|
|
23
24
|
};
|
|
24
25
|
setPackageNameForAndroid();
|
|
25
26
|
}, []);
|
|
26
|
-
const dispatchUnitPlaidResponse = success => {
|
|
27
|
-
injectUnitPlaidResponse(webRef.current, success);
|
|
28
|
-
};
|
|
29
27
|
const handleUnitOnLoad = response => {
|
|
30
28
|
if (!props.onLoad) {
|
|
31
29
|
return;
|
|
@@ -86,7 +84,7 @@ export const UNACHDebitComponent = props => {
|
|
|
86
84
|
token: linkToken
|
|
87
85
|
},
|
|
88
86
|
onSuccess: success => {
|
|
89
|
-
|
|
87
|
+
injectUnitPlaidResponse(webRef.current, success);
|
|
90
88
|
},
|
|
91
89
|
onExit: exit => {
|
|
92
90
|
console.log(exit);
|
|
@@ -107,7 +105,8 @@ export const UNACHDebitComponent = props => {
|
|
|
107
105
|
script: getACHDebitScript(appPackageName),
|
|
108
106
|
onMessage: message => handleWebViewMessage(message),
|
|
109
107
|
isScrollable: false,
|
|
110
|
-
theme: props.theme
|
|
108
|
+
theme: props.theme,
|
|
109
|
+
language: props.language
|
|
111
110
|
});
|
|
112
111
|
};
|
|
113
112
|
if (presentationMode === PresentationMode.Inherit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","PresentationMode","PageMessage","Platform","View","UnitMessage","getACHDebitParams","getACHDebitScript","getAndroidPackageName","injectUnitPlaidResponse","openLink","PaymentMessage","RESPONSE_KEYS","UNACHDebitComponent","props","height","setHeight","appPackageName","setAppPackageName","linkToken","setLinkToken","webRef","presentationMode","setPresentationMode","Inherit","setPackageNameForAndroid","OS","packageName","dispatchUnitPlaidResponse","success","current","handleUnitOnLoad","response","onLoad","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","achDebitEvent","onPaymentCreated","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","tokenConfig","noLoadingState","token","onSuccess","onExit","exit","log","catch","e","renderACHDebitWebView","createElement","ref","achDebitPayment","params","script","onMessage","isScrollable","theme","style"],"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":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAChF,SAASC,gBAAgB,QAAQ,6BAA6B;AAG9D,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SAA8EC,WAAW,QAAQ,yCAAyC;AAC1I,SAASC,iBAAiB,EAAEC,iBAAiB,EAAEC,qBAAqB,EAAEC,uBAAuB,QAAQ,6BAA6B;AAElI,SAAsBC,QAAQ,QAAQ,6BAA6B;AAGnE,SAASC,cAAc,QAAQ,4CAA4C;AAE3E,SAASC,aAAa,QAAiC,0CAA0C;AAYjG,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACmB,cAAc,EAAEC,iBAAiB,CAAC,GAAGpB,QAAQ,CAAS,EAAE,CAAC;EAChE,MAAM,CAACqB,SAAS,EAAEC,YAAY,CAAC,GAAGtB,QAAQ,CAAS,EAAE,CAAC;EACtD,MAAMuB,MAAM,GAAGxB,MAAM,CAAU,IAAI,CAAC;EACpC,MAAM,CAACyB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzB,QAAQ,CAAmBG,gBAAgB,CAACuB,OAAO,CAAC;EAEpG5B,SAAS,CAAC,MAAM;IACd,MAAM6B,wBAAwB,GAAG,MAAAA,CAAA,KAAY;MAC3C,IAAItB,QAAQ,CAACuB,EAAE,KAAK,SAAS,EAAE;QAC7B,MAAMC,WAAW,GAAG,MAAMnB,qBAAqB,EAAE;QACjDU,iBAAiB,CAACS,WAAW,CAAC;MAChC;IACF,CAAC;IACDF,wBAAwB,EAAE;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,yBAAyB,GAAIC,OAAoB,IAAK;IAC1DpB,uBAAuB,CAACY,MAAM,CAACS,OAAO,EAAED,OAAO,CAAC;EAClD,CAAC;EAED,MAAME,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAAClB,KAAK,CAACmB,MAAM,EAAE;MACjB;IACF;IAEA,IAAIrB,aAAa,CAACsB,MAAM,IAAIF,QAAQ,EAAE;MACpClB,KAAK,CAACmB,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIpB,aAAa,CAACuB,OAAO,IAAIH,QAAQ,IAAIpB,aAAa,CAACwB,mBAAmB,IAAIJ,QAAQ,EAAE;MACtF;MACA,MAAMK,SAAgD,GAAG;QACvDC,IAAI,EAAE;UACJ,CAAC1B,aAAa,CAACuB,OAAO,GAAGH,QAAQ,CAACpB,aAAa,CAACuB,OAAO,CAAC,CAACG,IAAI;UAC7D,CAAC1B,aAAa,CAACwB,mBAAmB,GAAGJ,QAAQ,CAACpB,aAAa,CAACwB,mBAAmB,CAAC,CAACE;QACnF;MACF,CAAC;MACDxB,KAAK,CAACmB,MAAM,CAACI,SAAS,CAAC;MACvB;IACF;IAEAE,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAKjC,cAAc,CAACkC,eAAe;QAAE;UACnC,MAAMC,aAAa,GAAGJ,OAAO,CAACC,OAAmB;UACjD7B,KAAK,CAACiC,gBAAgB,IAAIjC,KAAK,CAACiC,gBAAgB,CAACD,aAAa,CAACR,IAAI,CAAc;UACjF;QACF;MACA,KAAKjC,WAAW,CAAC2C,YAAY;QAC3BjB,gBAAgB,CAACW,OAAO,CAACC,OAAO,CAA4B;QAC5D;MACF,KAAKzC,WAAW,CAAC+C,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIR,OAAO,CAACC,OAAO,CAAiB5B,MAAM;UAC7DC,SAAS,CAACkC,aAAa,CAAC;UACxB,IAAI5B,gBAAgB,KAAKrB,gBAAgB,CAACuB,OAAO,IAAI0B,aAAa,KAAK,CAAC,EAAE;YACxE3B,mBAAmB,CAACtB,gBAAgB,CAACkD,OAAO,CAAC;UAC/C;UACA;QACF;MACA,KAAK9C,WAAW,CAAC+C,wBAAwB;QAAE;UACzC,MAAMC,cAAc,GAAGX,OAAO,CAACC,OAAiC;UAChE,MAAMW,aAAa,GAAGD,cAAc,CAAClC,SAA+B;UACpEC,YAAY,CAACkC,aAAa,CAACC,UAAU,CAACpC,SAAS,CAAC;UAChD;QACF;MAEA,KAAKd,WAAW,CAACmD,yBAAyB;QAAE;UAC1C,MAAMC,eAAe,GAAIf,OAAO,CAACC,OAAO,CAA6BC,IAAI;UACzE,IAAIa,eAAe,KAAK,OAAO,EAAE;UACjCtC,SAAS,IAAIT,QAAQ,CAAC;YACpBgD,WAAW,EAAE;cAAEC,cAAc,EAAE,KAAK;cAAEC,KAAK,EAAEzC;YAAS,CAAC;YACvD0C,SAAS,EAAGhC,OAAO,IAAK;cACtBD,yBAAyB,CAACC,OAAO,CAAC;YACpC,CAAC;YACDiC,MAAM,EAAEC,IAAI,IAAI;cAAExB,OAAO,CAACyB,GAAG,CAACD,IAAI,CAAC;YAAE;UACvC,CAAC,CAAC,CAACE,KAAK,CAACC,CAAC,IAAI;YACZ3B,OAAO,CAACC,KAAK,CAAC0B,CAAC,CAAC;UAClB,CAAC,CAAC;UACF;QACF;IAAC;EAEL,CAAC;EAED,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;IAClC,oBACExE,KAAA,CAAAyE,aAAA,CAACrE,YAAY;MACXsE,GAAG,EAAEhD,MAAO;MACZuB,IAAI,EAAE5C,gBAAgB,CAACsE,eAAgB;MACvChD,gBAAgB,EAAEA,gBAAiB;MACnCiD,MAAM,EAAEjE,iBAAiB,CAACQ,KAAK,CAAE;MACjC0D,MAAM,EAAEjE,iBAAiB,CAACU,cAAc,CAAE;MAC1CwD,SAAS,EAAG/B,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEgC,YAAY,EAAE,KAAM;MACpBC,KAAK,EAAE7D,KAAK,CAAC6D;IAAM,EACnB;EAEN,CAAC;EAED,IAAIrD,gBAAgB,KAAKrB,gBAAgB,CAACuB,OAAO,EAAE;IACjD,OAAO2C,qBAAqB,EAAE;EAChC;EAEA,oBACExE,KAAA,CAAAyE,aAAA,CAAChE,IAAI;IAACwE,KAAK,EAAE;MAAE7D,MAAM,EAAEA;IAAO;EAAE,GAC7BoD,qBAAqB,EAAE,CACnB;AAGX,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","PresentationMode","PageMessage","Platform","View","UnitMessage","getACHDebitParams","getACHDebitScript","injectUnitPlaidResponse","openLink","PaymentMessage","RESPONSE_KEYS","getAndroidPackageName","UNACHDebitComponent","props","height","setHeight","appPackageName","setAppPackageName","linkToken","setLinkToken","webRef","presentationMode","setPresentationMode","Inherit","setPackageNameForAndroid","OS","packageName","handleUnitOnLoad","response","onLoad","errors","account","counterpartyAccount","achOnload","data","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","achDebitEvent","onPaymentCreated","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","Default","UNIT_PLAID_TOKEN_CREATED","linkTokenEvent","linkTokenData","attributes","UNIT_REQUEST_EXTERNAL_SDK","externalSdkType","tokenConfig","noLoadingState","token","onSuccess","success","current","onExit","exit","log","catch","e","renderACHDebitWebView","createElement","ref","achDebitPayment","params","script","onMessage","isScrollable","theme","language","style"],"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":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC1D,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAChF,SAASC,gBAAgB,QAAQ,6BAA6B;AAG9D,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SAA8EC,WAAW,QAAQ,yCAAyC;AAC1I,SAASC,iBAAiB,EAAEC,iBAAiB,EAAEC,uBAAuB,QAAQ,6BAA6B;AAC3G,SAAsBC,QAAQ,QAAQ,6BAA6B;AAGnE,SAASC,cAAc,QAAQ,4CAA4C;AAE3E,SAASC,aAAa,QAAiC,0CAA0C;AACjG,SAASC,qBAAqB,QAAQ,4BAA4B;AAalE,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACmB,cAAc,EAAEC,iBAAiB,CAAC,GAAGpB,QAAQ,CAAS,EAAE,CAAC;EAChE,MAAM,CAACqB,SAAS,EAAEC,YAAY,CAAC,GAAGtB,QAAQ,CAAS,EAAE,CAAC;EACtD,MAAMuB,MAAM,GAAGxB,MAAM,CAAU,IAAI,CAAC;EACpC,MAAM,CAACyB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzB,QAAQ,CAAmBG,gBAAgB,CAACuB,OAAO,CAAC;EAEpG5B,SAAS,CAAC,MAAM;IACd,MAAM6B,wBAAwB,GAAG,MAAAA,CAAA,KAAY;MAC3C,IAAItB,QAAQ,CAACuB,EAAE,KAAK,SAAS,EAAE;QAC7B,MAAMC,WAAW,GAAG,MAAMf,qBAAqB,EAAE;QACjDM,iBAAiB,CAACS,WAAW,CAAC;MAChC;IACF,CAAC;IACDF,wBAAwB,EAAE;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAACf,KAAK,CAACgB,MAAM,EAAE;MACjB;IACF;IAEA,IAAInB,aAAa,CAACoB,MAAM,IAAIF,QAAQ,EAAE;MACpCf,KAAK,CAACgB,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIlB,aAAa,CAACqB,OAAO,IAAIH,QAAQ,IAAIlB,aAAa,CAACsB,mBAAmB,IAAIJ,QAAQ,EAAE;MACtF;MACA,MAAMK,SAAgD,GAAG;QACvDC,IAAI,EAAE;UACJ,CAACxB,aAAa,CAACqB,OAAO,GAAGH,QAAQ,CAAClB,aAAa,CAACqB,OAAO,CAAC,CAACG,IAAI;UAC7D,CAACxB,aAAa,CAACsB,mBAAmB,GAAGJ,QAAQ,CAAClB,aAAa,CAACsB,mBAAmB,CAAC,CAACE;QACnF;MACF,CAAC;MACDrB,KAAK,CAACgB,MAAM,CAACI,SAAS,CAAC;MACvB;IACF;IAEAE,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAK/B,cAAc,CAACgC,eAAe;QAAE;UACnC,MAAMC,aAAa,GAAGJ,OAAO,CAACC,OAAmB;UACjD1B,KAAK,CAAC8B,gBAAgB,IAAI9B,KAAK,CAAC8B,gBAAgB,CAACD,aAAa,CAACR,IAAI,CAAc;UACjF;QACF;MACA,KAAK9B,WAAW,CAACwC,YAAY;QAC3BjB,gBAAgB,CAACW,OAAO,CAACC,OAAO,CAA4B;QAC5D;MACF,KAAKtC,WAAW,CAAC4C,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIR,OAAO,CAACC,OAAO,CAAiBzB,MAAM;UAC7DC,SAAS,CAAC+B,aAAa,CAAC;UACxB,IAAIzB,gBAAgB,KAAKrB,gBAAgB,CAACuB,OAAO,IAAIuB,aAAa,KAAK,CAAC,EAAE;YACxExB,mBAAmB,CAACtB,gBAAgB,CAAC+C,OAAO,CAAC;UAC/C;UACA;QACF;MACA,KAAK3C,WAAW,CAAC4C,wBAAwB;QAAE;UACzC,MAAMC,cAAc,GAAGX,OAAO,CAACC,OAAiC;UAChE,MAAMW,aAAa,GAAGD,cAAc,CAAC/B,SAA+B;UACpEC,YAAY,CAAC+B,aAAa,CAACC,UAAU,CAACjC,SAAS,CAAC;UAChD;QACF;MAEA,KAAKd,WAAW,CAACgD,yBAAyB;QAAE;UAC1C,MAAMC,eAAe,GAAIf,OAAO,CAACC,OAAO,CAA6BC,IAAI;UACzE,IAAIa,eAAe,KAAK,OAAO,EAAE;UACjCnC,SAAS,IAAIV,QAAQ,CAAC;YACpB8C,WAAW,EAAE;cAAEC,cAAc,EAAE,KAAK;cAAEC,KAAK,EAAEtC;YAAU,CAAC;YACxDuC,SAAS,EAAGC,OAAoB,IAAK;cACnCnD,uBAAuB,CAACa,MAAM,CAACuC,OAAO,EAAED,OAAO,CAAC;YAClD,CAAC;YACDE,MAAM,EAAEC,IAAI,IAAI;cAAE1B,OAAO,CAAC2B,GAAG,CAACD,IAAI,CAAC;YAAE;UACvC,CAAC,CAAC,CAACE,KAAK,CAACC,CAAC,IAAI;YACZ7B,OAAO,CAACC,KAAK,CAAC4B,CAAC,CAAC;UAClB,CAAC,CAAC;UACF;QACF;IAAC;EAEL,CAAC;EAED,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;IAClC,oBACEvE,KAAA,CAAAwE,aAAA,CAACpE,YAAY;MACXqE,GAAG,EAAE/C,MAAO;MACZoB,IAAI,EAAEzC,gBAAgB,CAACqE,eAAgB;MACvC/C,gBAAgB,EAAEA,gBAAiB;MACnCgD,MAAM,EAAEhE,iBAAiB,CAACQ,KAAK,CAAE;MACjCyD,MAAM,EAAEhE,iBAAiB,CAACU,cAAc,CAAE;MAC1CuD,SAAS,EAAGjC,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEkC,YAAY,EAAE,KAAM;MACpBC,KAAK,EAAE5D,KAAK,CAAC4D,KAAM;MACnBC,QAAQ,EAAE7D,KAAK,CAAC6D;IAAS,EACzB;EAEN,CAAC;EAED,IAAIrD,gBAAgB,KAAKrB,gBAAgB,CAACuB,OAAO,EAAE;IACjD,OAAO0C,qBAAqB,EAAE;EAChC;EAEA,oBACEvE,KAAA,CAAAwE,aAAA,CAAC/D,IAAI;IAACwE,KAAK,EAAE;MAAE7D,MAAM,EAAEA;IAAO;EAAE,GAC7BmD,qBAAqB,EAAE,CACnB;AAGX,CAAC"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { DISPATCH_PLAID_RESPONSE, LISTENERS } from './../../scripts/html/bodyScript';
|
|
2
|
-
import { NativeModules } from 'react-native';
|
|
3
|
-
const {
|
|
4
|
-
RNAppInfoModule
|
|
5
|
-
} = NativeModules;
|
|
6
|
-
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
7
2
|
export const getACHDebitParams = props => {
|
|
8
3
|
return `
|
|
9
4
|
account-id="${props.accountId}"
|
|
@@ -13,24 +8,9 @@ export const getACHDebitParams = props => {
|
|
|
13
8
|
style="height: 100%"
|
|
14
9
|
`;
|
|
15
10
|
};
|
|
16
|
-
export const getAndroidPackageName = async () => {
|
|
17
|
-
try {
|
|
18
|
-
const response = await RNAppInfoModule.getAppPackageName();
|
|
19
|
-
return response;
|
|
20
|
-
} catch (error) {
|
|
21
|
-
console.error(error);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
11
|
export const getACHDebitScript = androidPackageName => {
|
|
25
12
|
return `
|
|
26
|
-
|
|
27
|
-
const response = e.detail
|
|
28
|
-
response.then((data) => {
|
|
29
|
-
postMessageToSDK({ type: "${UnitMessage.UNIT_PLAID_TOKEN_CREATED}", details: { linkToken: data.data }})
|
|
30
|
-
}).catch((e) => {
|
|
31
|
-
console.log(e)
|
|
32
|
-
})
|
|
33
|
-
});
|
|
13
|
+
${LISTENERS.unitPlaidTokenCreated}
|
|
34
14
|
${androidPackageName && `window.UnitMobileSDKConfig.androidPackageName='${androidPackageName}'`}
|
|
35
15
|
${LISTENERS.unitPaymentCreated}
|
|
36
16
|
${DISPATCH_PLAID_RESPONSE}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DISPATCH_PLAID_RESPONSE","LISTENERS","
|
|
1
|
+
{"version":3,"names":["DISPATCH_PLAID_RESPONSE","LISTENERS","getACHDebitParams","props","accountId","customerToken","isAutoFocus","fee","getACHDebitScript","androidPackageName","unitPlaidTokenCreated","unitPaymentCreated","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,SAASA,uBAAuB,EAAEC,SAAS,QAAQ,iCAAiC;AAMpF,OAAO,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;AAED,OAAO,MAAMC,iBAAiB,GAAIC,kBAA2B,IAAK;EAChE,OAAQ;AACV,MAAMR,SAAS,CAACS,qBAAsB;AACtC,MAAMD,kBAAkB,IAAK,kDAAiDA,kBAAmB,GAAG;AACpG,MAAMR,SAAS,CAACU,kBAAmB;AACnC,MAAMX,uBAAwB;AAC9B,KAAK;AACL,CAAC;AAED,OAAO,MAAMY,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"}
|
|
@@ -91,6 +91,7 @@ export const UNAccountComponent = /*#__PURE__*/React.forwardRef(function UNAccou
|
|
|
91
91
|
params: getAccountParams(props),
|
|
92
92
|
script: getAccountScript(),
|
|
93
93
|
theme: props.theme,
|
|
94
|
+
language: props.language,
|
|
94
95
|
onMessage: message => handleMessage(message),
|
|
95
96
|
width: windowWidth,
|
|
96
97
|
isScrollable: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","getAccountParams","getAccountScript","injectOpenActionsMenuScript","injectRefreshEventIfNeeded","injectRequestAccountActionScript","PresentationMode","useListenerToBus","AccountMessage","RESPONSE_KEYS","AccountAction","UNAccountComponent","forwardRef","props","accountRef","height","setHeight","windowWidth","get","width","requestRefreshEvent","setRequestRefreshEvent","webRef","handleAccountChanged","account","onAccountChanged","requestRefresh","data","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACCOUNT_CHANGED","current","openActionsMenu","openAction","handleMessage","message","type","UNIT_ON_LOAD","details","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","accountId","requestRenderingEvent","Instance","PAGE_HEIGHT","createElement","style","ref","presentationMode","Default","params","script","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":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/E,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAAsBC,WAAW,QAAQ,yCAAyC;AAClF,SAAqDC,WAAW,QAAQ,yCAAyC;AACjH,OAAOC,QAAQ,MAAM,wBAAwB;AAC7C,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAEhF,SAASC,gBAAgB,EAAEC,gBAAgB,EAAEC,2BAA2B,EAAEC,0BAA0B,EAAEC,gCAAgC,QAAQ,4BAA4B;AAC1K,SAASC,gBAAgB,QAAQ,6BAA6B;AAG9D,SAASC,gBAAgB,QAAQ,2BAA2B;AAE5D,SAASC,cAAc,QAAQ,2CAA2C;AAC1E,SAASC,aAAa,QAAiC,0CAA0C;
|
|
1
|
+
{"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","getAccountParams","getAccountScript","injectOpenActionsMenuScript","injectRefreshEventIfNeeded","injectRequestAccountActionScript","PresentationMode","useListenerToBus","AccountMessage","RESPONSE_KEYS","AccountAction","UNAccountComponent","forwardRef","props","accountRef","height","setHeight","windowWidth","get","width","requestRefreshEvent","setRequestRefreshEvent","webRef","handleAccountChanged","account","onAccountChanged","requestRefresh","data","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACCOUNT_CHANGED","current","openActionsMenu","openAction","handleMessage","message","type","UNIT_ON_LOAD","details","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","accountId","requestRenderingEvent","Instance","PAGE_HEIGHT","createElement","style","ref","presentationMode","Default","params","script","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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"}
|
|
@@ -2,9 +2,10 @@ import { AccountAction } from './UNAccountComponent';
|
|
|
2
2
|
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
3
3
|
import { WebComponentType } from '../../webComponent/WebComponent';
|
|
4
4
|
export const getAccountParams = props => {
|
|
5
|
+
const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : '';
|
|
5
6
|
return `
|
|
6
|
-
account-id="${props.accountId}"
|
|
7
7
|
customer-token="${props.customerToken}"
|
|
8
|
+
${accountIdParam}
|
|
8
9
|
hide-actions-menu-button="${props.hideActionsMenuButton || false}"
|
|
9
10
|
hide-selection-menu-button="${props.hideSelectionMenuButton || false}"
|
|
10
11
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AccountAction","UnitMessage","WebComponentType","getAccountParams","props","accountId","customerToken","hideActionsMenuButton","hideSelectionMenuButton","getAccountScript","UNIT_REQUEST_REFRESH","injectOpenActionsMenuScript","currentWeb","injectJavaScript","account","injectRequestAccountActionScript","action","injectRefreshEventIfNeeded","requestRefreshEvent","dependencies","includes","valueOf","JSON","stringify","getAccountActionType","requestRendering","data","nativeComponent","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":["AccountAction","UnitMessage","WebComponentType","getAccountParams","props","accountIdParam","accountId","customerToken","hideActionsMenuButton","hideSelectionMenuButton","getAccountScript","UNIT_REQUEST_REFRESH","injectOpenActionsMenuScript","currentWeb","injectJavaScript","account","injectRequestAccountActionScript","action","injectRefreshEventIfNeeded","requestRefreshEvent","dependencies","includes","valueOf","JSON","stringify","getAccountActionType","requestRendering","data","nativeComponent","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,SAASA,aAAa,QAAiC,sBAAsB;AAC7E,SAAqDC,WAAW,QAAQ,yCAAyC;AAEjH,SAASC,gBAAgB,QAAQ,iCAAiC;AAGlE,OAAO,MAAMC,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;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,OAAQ;AACV;AACA,qCAAqCT,WAAW,CAACU,oBAAqB;AACtE;AACA;AACA,GAAG;AACH,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAIC,UAA0B,IAAK;EACzEA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,4BAA2BZ,gBAAgB,CAACa,OAAQ,IAAG,CAAC;AACxF,CAAC;AAED,OAAO,MAAMC,gCAAgC,GAAGA,CAACH,UAA0B,EAAEI,MAA2B,KAAK;EAC3GJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,iCAAgCG,MAAO,IAAG,CAAC;AAC3E,CAAC;AAED,OAAO,MAAMC,0BAA0B,GAAGA,CAACL,UAA0B,EAAEM,mBAA+C,KAAK;EACzH,IAAIA,mBAAmB,IAAIA,mBAAmB,CAACC,YAAY,CAACC,QAAQ,CAACnB,gBAAgB,CAACa,OAAO,CAACO,OAAO,EAAE,CAAC,EAAE;IACxGT,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEC,gBAAgB,CAAE,yBAAwBS,IAAI,CAACC,SAAS,CAACL,mBAAmB,CAAE,IAAG,CAAC;EAChG;AACF,CAAC;AAED,OAAO,MAAMM,oBAAoB,GAAIC,gBAAuC,IAAK;EAC/E,OAAOA,gBAAgB,CAACC,IAAI,CAACC,eAAe,CAACP,QAAQ,CAACrB,aAAa,CAAC6B,IAAI,CAAC,GAAG7B,aAAa,CAAC6B,IAAI,GAAG7B,aAAa,CAAC8B,IAAI;AACrH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectFiltersChanged","injectRefreshEventIfNeeded","EventBus","RESPONSE_KEYS","ActivityMessage","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","dispatchActivityFiltersChanged","query","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACTIVITY_FILTERS_CHANGED","handleUnitOnLoad","response","onLoad","errors","authorization","transactions","activityOnLoad","console","error","handleWebViewMessage","message","type","UNIT_REQUEST_RENDERING","event","componentName","activity","componentResourceId","accountId","requestRenderingEvent","details","Instance","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","renderActivityWebView","createElement","ref","presentationMode","Inherit","params","onMessage","nestedScrollEnabled","theme","script","style"],"sources":["UNActivityComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { getActivityParams, getActivityScript, injectFiltersChanged, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';\nimport type WebView from 'react-native-webview';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport EventBus from '../../helpers/EventBus';\nimport type { UNActivityOnLoadData } from '../../sharedTypes/activity.types';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { ActivityMessage } from '../../messages/webMessages/activityMessage';\n\nconst DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;\nexport interface UNActivityComponentProps {\n // inputs\n
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectFiltersChanged","injectRefreshEventIfNeeded","EventBus","RESPONSE_KEYS","ActivityMessage","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","dispatchActivityFiltersChanged","query","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACTIVITY_FILTERS_CHANGED","handleUnitOnLoad","response","onLoad","errors","authorization","transactions","activityOnLoad","console","error","handleWebViewMessage","message","type","UNIT_REQUEST_RENDERING","event","componentName","activity","componentResourceId","accountId","requestRenderingEvent","details","Instance","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","renderActivityWebView","createElement","ref","presentationMode","Inherit","params","onMessage","nestedScrollEnabled","theme","language","script","style"],"sources":["UNActivityComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { getActivityParams, getActivityScript, injectFiltersChanged, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';\nimport type WebView from 'react-native-webview';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport EventBus from '../../helpers/EventBus';\nimport type { UNActivityOnLoadData } from '../../sharedTypes/activity.types';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { ActivityMessage } from '../../messages/webMessages/activityMessage';\n\nconst DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;\nexport interface UNActivityComponentProps {\n // inputs\n customerToken: string;\n accountId?: string;\n queryFilter?: string\n\n // ui\n theme?: string;\n language?: string;\n hideFilterButton?: boolean;\n\n // event\n onLoad?: (response: UNOnLoadResponse<UNActivityOnLoadData>) => void;\n}\n\nexport const UNActivityComponent = (props: UNActivityComponentProps) => {\n const webRef = useRef<WebView>(null);\n const [defaultHeight, setDefaultHeight] = useState<number>();\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data);\n };\n\n const dispatchActivityFiltersChanged = (query: string) => {\n injectFiltersChanged(webRef.current, query);\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, action: dispatchActivityFiltersChanged });\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.authorization in response && RESPONSE_KEYS.transactions in response) {\n // ActivityOnLoadResponse;\n const activityOnLoad: UNOnLoadResponseData<UNActivityOnLoadData> = {\n data: {\n [RESPONSE_KEYS.authorization]: response[RESPONSE_KEYS.authorization].data,\n [RESPONSE_KEYS.transactions]: response[RESPONSE_KEYS.transactions].data\n }\n };\n props.onLoad(activityOnLoad);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.activity,\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 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 currentHeight === 0 && setDefaultHeight(DEFAULT_HEIGHT);\n break;\n }\n }\n };\n\n const renderActivityWebView = () => {\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.activity}\n presentationMode={PresentationMode.Inherit}\n params={getActivityParams(props)}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n nestedScrollEnabled={true}\n theme={props.theme}\n language={props.language}\n script={getActivityScript()}\n />\n );\n };\n\n if (!defaultHeight) {\n return renderActivityWebView();\n }\n\n return (\n <View style={{ height: defaultHeight }}>\n {renderActivityWebView()}\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { WebComponentType } from './../../webComponent/WebComponent';
|
|
2
2
|
import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';
|
|
3
3
|
export const getActivityParams = props => {
|
|
4
|
+
const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : '';
|
|
4
5
|
const queryFilterParam = props.queryFilter ? `query-filter="${props.queryFilter}"` : '';
|
|
5
6
|
return `
|
|
6
|
-
account-id="${props.accountId}"
|
|
7
7
|
customer-token="${props.customerToken}"
|
|
8
|
+
${accountIdParam}
|
|
8
9
|
hide-filter-button="${props.hideFilterButton || false}"
|
|
9
10
|
${queryFilterParam}
|
|
10
11
|
style="height: 100%"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebComponentType","DISPATCH_REQUEST_REFRESH","getActivityParams","props","
|
|
1
|
+
{"version":3,"names":["WebComponentType","DISPATCH_REQUEST_REFRESH","getActivityParams","props","accountIdParam","accountId","queryFilterParam","queryFilter","customerToken","hideFilterButton","getActivityScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","activity","valueOf","injectJavaScript","JSON","stringify","injectFiltersChanged","query"],"sources":["UNActivityComponent.utils.ts"],"sourcesContent":["import { WebComponentType } from './../../webComponent/WebComponent';\nimport type { RequestRefreshEvent } from './../../messages/webMessages/unitMessages';\nimport type { WebView } from 'react-native-webview';\nimport { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type { UNActivityComponentProps } from './UNActivityComponent';\n\nexport const getActivityParams = (props: UNActivityComponentProps) => {\n const accountIdParam = props.accountId ? `account-id=\"${props.accountId}\"` : '';\n const queryFilterParam = props.queryFilter ? `query-filter=\"${props.queryFilter}\"` : '';\n\n return `\n customer-token=\"${props.customerToken}\"\n ${accountIdParam}\n hide-filter-button=\"${props.hideFilterButton || false}\"\n ${queryFilterParam}\n style=\"height: 100%\"\n `;\n};\n\nexport const getActivityScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.activity.valueOf())) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const injectFiltersChanged = (currentWeb: WebView | null, query: string) => {\n currentWeb?.injectJavaScript(`dispatchActivityFilterChangedEvent('${query}')`);\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,mCAAmC;AAGpE,SAASC,wBAAwB,QAAQ,iCAAiC;AAG1E,OAAO,MAAMC,iBAAiB,GAAIC,KAA+B,IAAK;EACpE,MAAMC,cAAc,GAAGD,KAAK,CAACE,SAAS,GAAI,eAAcF,KAAK,CAACE,SAAU,GAAE,GAAG,EAAE;EAC/E,MAAMC,gBAAgB,GAAGH,KAAK,CAACI,WAAW,GAAI,iBAAgBJ,KAAK,CAACI,WAAY,GAAE,GAAG,EAAE;EAEvF,OAAQ;AACV,sBAAsBJ,KAAK,CAACK,aAAc;AAC1C,MAAMJ,cAAe;AACrB,0BAA0BD,KAAK,CAACM,gBAAgB,IAAI,KAAM;AAC1D,MAAMH,gBAAiB;AACvB;AACA,GAAG;AACH,CAAC;AAED,OAAO,MAAMI,iBAAiB,GAAGA,CAAA,KAAM;EACrC,OAAOT,wBAAwB;AACjC,CAAC;AAED,OAAO,MAAMU,0BAA0B,GAAGA,CAACC,UAA0B,EAAEC,mBAA+C,KAAK;EACzH,IAAIA,mBAAmB,IAAIA,mBAAmB,CAACC,YAAY,CAACC,QAAQ,CAACf,gBAAgB,CAACgB,QAAQ,CAACC,OAAO,EAAE,CAAC,EAAE;IACzGL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,yBAAwBC,IAAI,CAACC,SAAS,CAACP,mBAAmB,CAAE,IAAG,CAAC;EAChG;AACF,CAAC;AAED,OAAO,MAAMQ,oBAAoB,GAAGA,CAACT,UAA0B,EAAEU,KAAa,KAAK;EACjFV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,uCAAsCI,KAAM,IAAG,CAAC;AAChF,CAAC"}
|
|
@@ -54,7 +54,8 @@ export const UNBookPaymentComponent = props => {
|
|
|
54
54
|
script: getBookPaymentScript(),
|
|
55
55
|
onMessage: message => handleWebViewMessage(message),
|
|
56
56
|
isScrollable: false,
|
|
57
|
-
theme: props.theme
|
|
57
|
+
theme: props.theme,
|
|
58
|
+
language: props.language
|
|
58
59
|
});
|
|
59
60
|
};
|
|
60
61
|
if (presentationMode === PresentationMode.Inherit) {
|