react-native-unit-components 1.1.0 → 1.2.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 +70 -1
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +8 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +12 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +6 -5
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/cardMessage.js +1 -13
- package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/accountMessage.js +12 -0
- package/lib/commonjs/messages/webMessages/accountMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/index.js.map +1 -1
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyScript.js +14 -3
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/account.types.js +31 -0
- package/lib/commonjs/sharedTypes/account.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/achCredit.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/index.js +11 -0
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/payments.types.js +6 -6
- package/lib/commonjs/sharedTypes/payments.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/types.js.map +1 -1
- package/lib/commonjs/sharedTypes/wallet.types.js +13 -1
- package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +2 -1
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/html.js +2 -0
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +8 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +11 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +7 -6
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/messages/nativeMessages/cardMessage.js +0 -11
- package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/module/messages/webMessages/accountMessage.js +5 -0
- package/lib/module/messages/webMessages/accountMessage.js.map +1 -0
- package/lib/module/messages/webMessages/index.js.map +1 -1
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/module/scripts/html/bodyScript.js +14 -3
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/account.types.js +23 -0
- package/lib/module/sharedTypes/account.types.js.map +1 -0
- package/lib/module/sharedTypes/achCredit.types.js.map +1 -1
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/module/sharedTypes/card.types.js.map +1 -1
- package/lib/module/sharedTypes/index.js +1 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -1
- package/lib/module/sharedTypes/payments.types.js +4 -4
- package/lib/module/sharedTypes/payments.types.js.map +1 -1
- package/lib/module/sharedTypes/types.js.map +1 -1
- package/lib/module/sharedTypes/wallet.types.js +11 -0
- package/lib/module/sharedTypes/wallet.types.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +2 -1
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/html.js +2 -0
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +2 -2
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +2 -2
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +4 -2
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -2
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -2
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +2 -2
- package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +4 -13
- package/lib/typescript/messages/webMessages/accountMessage.d.ts +8 -0
- package/lib/typescript/messages/webMessages/index.d.ts +3 -2
- package/lib/typescript/messages/webMessages/unitMessages.d.ts +2 -2
- package/lib/typescript/scripts/html/bodyScript.d.ts +1 -0
- package/lib/typescript/sharedTypes/account.types.d.ts +114 -0
- package/lib/typescript/sharedTypes/achCredit.types.d.ts +13 -13
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +11 -11
- package/lib/typescript/sharedTypes/card.types.d.ts +18 -18
- package/lib/typescript/sharedTypes/index.d.ts +1 -0
- package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +3 -3
- package/lib/typescript/sharedTypes/payments.types.d.ts +5 -5
- package/lib/typescript/sharedTypes/types.d.ts +7 -7
- package/lib/typescript/sharedTypes/wallet.types.d.ts +11 -2
- package/package.json +1 -1
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +3 -3
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +3 -3
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +11 -3
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +15 -4
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +3 -3
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +11 -1
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +8 -7
- package/src/components/UNCardComponent/UNCardComponent.tsx +5 -5
- package/src/messages/nativeMessages/cardMessage.ts +5 -15
- package/src/messages/webMessages/accountMessage.ts +12 -0
- package/src/messages/webMessages/index.ts +3 -0
- package/src/messages/webMessages/unitMessages.ts +2 -2
- package/src/scripts/html/bodyScript.ts +14 -2
- package/src/sharedTypes/account.types.ts +117 -0
- package/src/sharedTypes/achCredit.types.ts +13 -13
- package/src/sharedTypes/bookPayment.types.ts +11 -11
- package/src/sharedTypes/card.types.ts +18 -18
- package/src/sharedTypes/index.ts +1 -0
- package/src/sharedTypes/onLoadResponse.types.ts +5 -5
- package/src/sharedTypes/payments.types.ts +5 -5
- package/src/sharedTypes/types.ts +8 -8
- package/src/sharedTypes/wallet.types.ts +13 -3
- package/src/webComponent/WebComponent.tsx +1 -1
- package/src/webComponent/html.ts +2 -0
|
@@ -7,6 +7,7 @@ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent'
|
|
|
7
7
|
import { getAccountParams, getAccountScript, injectRefreshEventIfNeeded } from './UNAccountComponent.utils';
|
|
8
8
|
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
9
9
|
import { useListenerToBus } from '../../hooks/listenerToBus';
|
|
10
|
+
import { AccountMessage } from '../../messages/webMessages/accountMessage';
|
|
10
11
|
export let AccountAction;
|
|
11
12
|
(function (AccountAction) {
|
|
12
13
|
AccountAction["List"] = "account-list";
|
|
@@ -17,6 +18,9 @@ export const UNAccountComponent = props => {
|
|
|
17
18
|
const windowWidth = Dimensions.get('window').width;
|
|
18
19
|
const [requestRefreshEvent, setRequestRefreshEvent] = useState(null);
|
|
19
20
|
const webRef = useRef(null);
|
|
21
|
+
const handleAccountChanged = account => {
|
|
22
|
+
props.onAccountChanged && props.onAccountChanged(account);
|
|
23
|
+
};
|
|
20
24
|
const requestRefresh = data => {
|
|
21
25
|
setRequestRefreshEvent(data);
|
|
22
26
|
};
|
|
@@ -24,6 +28,10 @@ export const UNAccountComponent = props => {
|
|
|
24
28
|
busEventKey: UnitMessage.UNIT_REQUEST_REFRESH,
|
|
25
29
|
action: requestRefresh
|
|
26
30
|
});
|
|
31
|
+
useListenerToBus({
|
|
32
|
+
busEventKey: AccountMessage.UNIT_ACCOUNT_CHANGED,
|
|
33
|
+
action: handleAccountChanged
|
|
34
|
+
});
|
|
27
35
|
useEffect(() => {
|
|
28
36
|
injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent);
|
|
29
37
|
}, [requestRefreshEvent]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","getAccountParams","getAccountScript","injectRefreshEventIfNeeded","PresentationMode","useListenerToBus","AccountAction","UNAccountComponent","props","height","setHeight","windowWidth","get","width","requestRefreshEvent","setRequestRefreshEvent","webRef","requestRefresh","data","busEventKey","UNIT_REQUEST_REFRESH","action","current","handleMessage","message","type","UNIT_ON_LOAD","onLoad","details","UNIT_REQUEST_RENDERING","event","componentName","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","getAccountParams","getAccountScript","injectRefreshEventIfNeeded","PresentationMode","useListenerToBus","AccountMessage","AccountAction","UNAccountComponent","props","height","setHeight","windowWidth","get","width","requestRefreshEvent","setRequestRefreshEvent","webRef","handleAccountChanged","account","onAccountChanged","requestRefresh","data","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACCOUNT_CHANGED","current","handleMessage","message","type","UNIT_ON_LOAD","onLoad","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, 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, injectRefreshEventIfNeeded } from './UNAccountComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { UNAccountData } from '../../sharedTypes/account.types';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\n\nexport interface UNAccountComponentProps {\n accountId?: string;\n customerToken: string;\n theme?: string;\n onLoad?: (response: UNResponseUnitOnLoadEvent) => void;\n onAccountChanged?: (account: UNAccountData) => void;\n}\n\nexport enum AccountAction {\n List = 'account-list',\n Menu = 'account-menu'\n}\n\nexport const UNAccountComponent = (props: UNAccountComponentProps) => {\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 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 const handleMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.account,\n componentResourceId: props.accountId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.account}\n presentationMode={PresentationMode.Default}\n params={getAccountParams(props)}\n script={getAccountScript()}\n theme={props.theme}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
|
6
6
|
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
7
7
|
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
8
8
|
import { getActivityParams, getActivityScript, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';
|
|
9
|
+
import EventBus from '../../helpers/EventBus';
|
|
9
10
|
const DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;
|
|
10
11
|
export const UNActivityComponent = props => {
|
|
11
12
|
const webRef = useRef(null);
|
|
@@ -19,6 +20,16 @@ export const UNActivityComponent = props => {
|
|
|
19
20
|
});
|
|
20
21
|
const handleWebViewMessage = message => {
|
|
21
22
|
switch (message.type) {
|
|
23
|
+
case UnitMessage.UNIT_REQUEST_RENDERING:
|
|
24
|
+
{
|
|
25
|
+
const event = {
|
|
26
|
+
componentName: WebComponentType.activity,
|
|
27
|
+
componentResourceId: props.accountId,
|
|
28
|
+
requestRenderingEvent: message.details
|
|
29
|
+
};
|
|
30
|
+
EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
22
33
|
case UnitMessage.UNIT_ON_LOAD:
|
|
23
34
|
props.onLoad && props.onLoad(message.details);
|
|
24
35
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectRefreshEventIfNeeded","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","busEventKey","UNIT_REQUEST_REFRESH","action","handleWebViewMessage","message","type","
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectRefreshEventIfNeeded","EventBus","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","busEventKey","UNIT_REQUEST_REFRESH","action","handleWebViewMessage","message","type","UNIT_REQUEST_RENDERING","event","componentName","activity","componentResourceId","accountId","requestRenderingEvent","details","Instance","UNIT_ON_LOAD","onLoad","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 { UNResponseUnitOnLoadEvent } from '../../sharedTypes';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { getActivityParams, getActivityScript, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';\nimport type WebView from 'react-native-webview';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport EventBus from '../../helpers/EventBus';\n\nconst DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;\nexport interface UNActivityComponentProps {\n accountId: string;\n customerToken: string;\n theme?: string;\n onLoad?: (response: UNResponseUnitOnLoadEvent) => 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 useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\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 props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);\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 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":"AAAA,OAAOA,KAAK,IAAIC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/C,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAAqDC,WAAW,QAAQ,yCAAyC;AACjH,SAASC,gBAAgB,QAAQ,2BAA2B;AAE5D,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAASC,gBAAgB,QAAQ,6BAA6B;AAE9D,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAChF,SAASC,iBAAiB,EAAEC,iBAAiB,EAAEC,0BAA0B,QAAQ,6BAA6B;AAG9G,OAAOC,QAAQ,MAAM,wBAAwB;AAE7C,MAAMC,cAAc,GAAGZ,UAAU,CAACa,GAAG,CAAC,QAAQ,CAAC,CAACC,MAAM,GAAG,GAAG;AAQ5D,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAMC,MAAM,GAAGnB,MAAM,CAAU,IAAI,CAAC;EACpC,MAAM,CAACoB,aAAa,EAAEC,gBAAgB,CAAC,GAAGpB,QAAQ,EAAU;EAE5D,MAAMqB,cAAc,GAAIC,IAAyB,IAAK;IACpDX,0BAA0B,CAACO,MAAM,CAACK,OAAO,EAAED,IAAI,CAAC;EAClD,CAAC;EAEDlB,gBAAgB,CAAC;IAAEoB,WAAW,EAAErB,WAAW,CAACsB,oBAAoB;IAAEC,MAAM,EAAEL;EAAe,CAAC,CAAC;EAE3F,MAAMM,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,QAAQA,OAAO,CAACC,IAAI;MAClB,KAAK1B,WAAW,CAAC2B,sBAAsB;QAAE;UACvC,MAAMC,KAA0B,GAAG;YACjCC,aAAa,EAAExB,gBAAgB,CAACyB,QAAQ;YACxCC,mBAAmB,EAAEjB,KAAK,CAACkB,SAAS;YACpCC,qBAAqB,EAAER,OAAO,CAACS;UACjC,CAAC;UACDzB,QAAQ,CAAC0B,QAAQ,CAACP,KAAK,CAAC5B,WAAW,CAAC2B,sBAAsB,EAAEC,KAAK,CAAC;UAClE;QACF;MACA,KAAK5B,WAAW,CAACoC,YAAY;QAC3BtB,KAAK,CAACuB,MAAM,IAAIvB,KAAK,CAACuB,MAAM,CAACZ,OAAO,CAACS,OAAO,CAA8B;QAC1E;MACF,KAAKhC,WAAW,CAACoC,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAId,OAAO,CAACS,OAAO,CAAiBtB,MAAM;UAC7D2B,aAAa,KAAK,CAAC,IAAItB,gBAAgB,CAACP,cAAc,CAAC;UACvD;QACF;IAAC;EAEL,CAAC;EAED,MAAM8B,qBAAqB,GAAGA,CAAA,KAAM;IAClC,oBACE7C,KAAA,CAAA8C,aAAA,CAACrC,YAAY;MACXsC,GAAG,EAAE3B,MAAO;MACZW,IAAI,EAAErB,gBAAgB,CAACyB,QAAS;MAChCa,gBAAgB,EAAExC,gBAAgB,CAACyC,OAAQ;MAC3CC,MAAM,EAAEvC,iBAAiB,CAACQ,KAAK,CAAE;MACjCgC,SAAS,EAAGrB,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEsB,mBAAmB,EAAE,IAAK;MAC1BC,KAAK,EAAElC,KAAK,CAACkC,KAAM;MACnBC,MAAM,EAAE1C,iBAAiB;IAAG,EAC5B;EAEN,CAAC;EAED,IAAI,CAACS,aAAa,EAAE;IAClB,OAAOwB,qBAAqB,EAAE;EAChC;EAEA,oBACE7C,KAAA,CAAA8C,aAAA,CAAC1C,IAAI;IAACmD,KAAK,EAAE;MAAEtC,MAAM,EAAEI;IAAc;EAAE,GACpCwB,qBAAqB,EAAE,CACnB;AAEX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","WebComponent","WebComponentType","PresentationMode","getBookPaymentParams","getBookPaymentScript","PageMessage","View","UnitMessage","PaymentMessage","UNBookPaymentComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","handleWebViewMessage","message","details","type","PAYMENT_CREATED","onPaymentCreated","data","UNIT_ON_LOAD","onLoad","PAGE_HEIGHT","currentHeight","Default","renderBookPaymentWebView","createElement","bookPayment","params","script","onMessage","isScrollable","theme","style"],"sources":["UNBookPaymentComponent.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type {
|
|
1
|
+
{"version":3,"names":["React","useState","WebComponent","WebComponentType","PresentationMode","getBookPaymentParams","getBookPaymentScript","PageMessage","View","UnitMessage","PaymentMessage","UNBookPaymentComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","handleWebViewMessage","message","details","type","PAYMENT_CREATED","onPaymentCreated","data","UNIT_ON_LOAD","onLoad","PAGE_HEIGHT","currentHeight","Default","renderBookPaymentWebView","createElement","bookPayment","params","script","onMessage","isScrollable","theme","style"],"sources":["UNBookPaymentComponent.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport type { UNResponseUnitOnLoadEvent, UNBookPaymentData } from '../../sharedTypes';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { View } from 'react-native';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport type { BookPaymentEvent } from '../../messages/webMessages/bookPaymentMessage';\n\nexport interface UNBookPaymentComponentProps {\n accountId: string;\n customerToken: string;\n isSameCustomer: boolean;\n counterPartyAccountId: string;\n counterPartyName: string;\n theme?: string;\n onPaymentCreated?: (data: UNBookPaymentData) => void;\n onLoad?: (response: UNResponseUnitOnLoadEvent) => void;\n}\n\nexport const UNBookPaymentComponent = (props: UNBookPaymentComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case PaymentMessage.PAYMENT_CREATED:\n props.onPaymentCreated && props.onPaymentCreated((message.details as BookPaymentEvent).data);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);\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 renderBookPaymentWebView = () => {\n return (\n <WebComponent\n type={WebComponentType.bookPayment}\n presentationMode={presentationMode}\n params={getBookPaymentParams(props)}\n script={getBookPaymentScript()}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n isScrollable={false}\n theme={props.theme}\n />\n );\n };\n\n if (presentationMode === PresentationMode.Inherit) {\n return renderBookPaymentWebView();\n }\n\n return (\n <View style={{ height: height }}>\n {renderBookPaymentWebView()}\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;AAC9D,SAASC,oBAAoB,EAAEC,oBAAoB,QAAQ,gCAAgC;AAG3F,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,WAAW,QAAQ,yCAAyC;AACrE,SAASC,cAAc,QAAQ,4CAA4C;AAc3E,OAAO,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EAC5E,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGb,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACc,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGf,QAAQ,CAAmBG,gBAAgB,CAACa,OAAO,CAAC;EAEpG,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAKX,cAAc,CAACY,eAAe;QACjCV,KAAK,CAACW,gBAAgB,IAAIX,KAAK,CAACW,gBAAgB,CAAEJ,OAAO,CAACC,OAAO,CAAsBI,IAAI,CAAC;QAC5F;MACF,KAAKf,WAAW,CAACgB,YAAY;QAC3Bb,KAAK,CAACc,MAAM,IAAId,KAAK,CAACc,MAAM,CAACP,OAAO,CAACC,OAAO,CAA8B;QAC1E;MACF,KAAKb,WAAW,CAACoB,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIT,OAAO,CAACC,OAAO,CAAiBP,MAAM;UAC7DC,SAAS,CAACc,aAAa,CAAC;UACxB,IAAIb,gBAAgB,KAAKX,gBAAgB,CAACa,OAAO,IAAIW,aAAa,KAAK,CAAC,EAAE;YACxEZ,mBAAmB,CAACZ,gBAAgB,CAACyB,OAAO,CAAC;UAC/C;UACA;QACF;IAAC;EAEL,CAAC;EAED,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;IACrC,oBACE9B,KAAA,CAAA+B,aAAA,CAAC7B,YAAY;MACXmB,IAAI,EAAElB,gBAAgB,CAAC6B,WAAY;MACnCjB,gBAAgB,EAAEA,gBAAiB;MACnCkB,MAAM,EAAE5B,oBAAoB,CAACO,KAAK,CAAE;MACpCsB,MAAM,EAAE5B,oBAAoB,EAAG;MAC/B6B,SAAS,EAAGhB,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEiB,YAAY,EAAE,KAAM;MACpBC,KAAK,EAAEzB,KAAK,CAACyB;IAAM,EACnB;EAEN,CAAC;EAED,IAAItB,gBAAgB,KAAKX,gBAAgB,CAACa,OAAO,EAAE;IACjD,OAAOa,wBAAwB,EAAE;EACnC;EAEA,oBACE9B,KAAA,CAAA+B,aAAA,CAACvB,IAAI;IAAC8B,KAAK,EAAE;MAAEzB,MAAM,EAAEA;IAAO;EAAE,GAC7BiB,wBAAwB,EAAE,CACtB;AAEX,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { useAppStateListener } from '../../hooks/useAppStateListener';
|
|
|
15
15
|
import { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';
|
|
16
16
|
import { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';
|
|
17
17
|
import { AccountAction } from '../UNAccountComponent/UNAccountComponent';
|
|
18
|
+
import { AccountMessage } from '../../messages/webMessages/accountMessage';
|
|
18
19
|
export let ScrollState;
|
|
19
20
|
(function (ScrollState) {
|
|
20
21
|
ScrollState["onTop"] = "onTop";
|
|
@@ -137,6 +138,9 @@ export const UNBottomSheetComponent = () => {
|
|
|
137
138
|
case CardMessage.CARD_STATUS_CHANGED:
|
|
138
139
|
EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, message.details.card);
|
|
139
140
|
break;
|
|
141
|
+
case AccountMessage.UNIT_ACCOUNT_CHANGED:
|
|
142
|
+
EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, message.details.account);
|
|
143
|
+
break;
|
|
140
144
|
case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
|
|
141
145
|
handleCloseFlow();
|
|
142
146
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","ScrollState","CustomDialog","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","bottomSheetSlotData","setBottomSheetSlotData","requestRenderingEvent","setRequestRenderingEvent","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","customDialog","setCustomDialog","isAppActive","styles","webRef","handleRequestRendering","data","handleCloseFlow","current","undefined","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","UNIT_REQUEST_CLOSE_FLOW","message","componentName","account","accountActionType","List","unScrollable","card","addToWallet","nativePlace","bottomSheetNewHeight","get","details","onWebMessage","type","PAGE_HEIGHT","_requestRenderingEven","requestRendering","nativeComponent","includes","setTimeout","CARD_STATUS_CHANGED","Instance","event","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","createElement","renderingRequest","cardId","componentResourceId","ref","slot","presentationMode","CoverInjectedHeight","script","onMessage","isScrollable","handleScroll","Fragment","pointerEvents","style","container","isOpen","onClose","onOpen","shouldEnableBottomSheetScroll"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport type BottomSheetSlotData = {\n // The data that rendered by the web view\n componentName?: WebComponentType,\n componentResourceId?: string,\n requestRenderingEvent: RequestRenderingEvent\n}\n\nenum CustomDialog {\n addToWallet\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const handleRequestRendering = (data: BottomSheetSlotData) => {\n setBottomSheetSlotData(data);\n setIsBottomSheetActive(true);\n setRequestRenderingEvent(data.requestRenderingEvent);\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);\n }, [bottomSheetSlotData]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, requestRenderingEvent);\n }\n }, [webRef.current, requestRenderingEvent]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRequestRenderingEvent(undefined);\n setScrollState(ScrollState.onTop);\n setCustomDialog(null);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering });\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });\n\n const setNewHeight = (message: WebViewMessage) => {\n if (!requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (customDialog === CustomDialog.addToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const requestRendering = (message.details as RequestRenderingEvent);\n if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {\n if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {\n setCustomDialog(CustomDialog.addToWallet);\n }\n\n setHeight(0);\n setRequestRenderingEvent(requestRendering);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n }\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (customDialog) {\n case CustomDialog.addToWallet:\n return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;\n default:\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","AccountMessage","ScrollState","CustomDialog","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","bottomSheetSlotData","setBottomSheetSlotData","requestRenderingEvent","setRequestRenderingEvent","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","customDialog","setCustomDialog","isAppActive","styles","webRef","handleRequestRendering","data","handleCloseFlow","current","undefined","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","UNIT_REQUEST_CLOSE_FLOW","message","componentName","account","accountActionType","List","unScrollable","card","addToWallet","nativePlace","bottomSheetNewHeight","get","details","onWebMessage","type","PAGE_HEIGHT","_requestRenderingEven","requestRendering","nativeComponent","includes","setTimeout","CARD_STATUS_CHANGED","Instance","event","UNIT_ACCOUNT_CHANGED","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","createElement","renderingRequest","cardId","componentResourceId","ref","slot","presentationMode","CoverInjectedHeight","script","onMessage","isScrollable","handleScroll","Fragment","pointerEvents","style","container","isOpen","onClose","onOpen","shouldEnableBottomSheetScroll"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport {\n getBottomSheetScript,\n handleHtmlFullHeight,\n renderingBottomSheetRequest,\n resetHtml,\n} from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\nimport type { AccountChangedEvent } from '../../messages/webMessages/accountMessage';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport type BottomSheetSlotData = {\n // The data that rendered by the web view\n componentName?: WebComponentType,\n componentResourceId?: string,\n requestRenderingEvent: RequestRenderingEvent\n}\n\nenum CustomDialog {\n addToWallet\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const handleRequestRendering = (data: BottomSheetSlotData) => {\n setBottomSheetSlotData(data);\n setIsBottomSheetActive(true);\n setRequestRenderingEvent(data.requestRenderingEvent);\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);\n }, [bottomSheetSlotData]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, requestRenderingEvent);\n }\n }, [webRef.current, requestRenderingEvent]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRequestRenderingEvent(undefined);\n setScrollState(ScrollState.onTop);\n setCustomDialog(null);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering });\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });\n\n const setNewHeight = (message: WebViewMessage) => {\n if (!requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (customDialog === CustomDialog.addToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const requestRendering = (message.details as RequestRenderingEvent);\n if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {\n if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {\n setCustomDialog(CustomDialog.addToWallet);\n }\n\n setHeight(0);\n setRequestRenderingEvent(requestRendering);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n }\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case AccountMessage.UNIT_ACCOUNT_CHANGED:\n EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, (message.details as AccountChangedEvent).account);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (customDialog) {\n case CustomDialog.addToWallet:\n return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;\n default:\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
|
package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { CardNativeMessage } from '../../../messages/nativeMessages/cardMessage';
|
|
3
3
|
import EventBus from '../../../helpers/EventBus';
|
|
4
4
|
import { PresentationMode } from '../../../scripts/html/bodyHtml';
|
|
5
5
|
import { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';
|
|
@@ -8,6 +8,7 @@ import { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';
|
|
|
8
8
|
import { ActivityIndicator } from 'react-native';
|
|
9
9
|
import { useListenerToBus } from '../../../hooks/listenerToBus';
|
|
10
10
|
import UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';
|
|
11
|
+
import { UNCardAddToWalletStatus } from '../../../sharedTypes/wallet.types';
|
|
11
12
|
export const UNAddToWalletBottomSheetItem = props => {
|
|
12
13
|
const styles = getStylesObject();
|
|
13
14
|
const webRef = useRef(null);
|
|
@@ -15,7 +16,7 @@ export const UNAddToWalletBottomSheetItem = props => {
|
|
|
15
16
|
renderingRequest,
|
|
16
17
|
cardId
|
|
17
18
|
} = props;
|
|
18
|
-
const [addToWalletStatus, setAddToWalletStatus] = useState(
|
|
19
|
+
const [addToWalletStatus, setAddToWalletStatus] = useState(UNCardAddToWalletStatus.pending);
|
|
19
20
|
useEffect(() => {
|
|
20
21
|
if (!cardId) return;
|
|
21
22
|
const event = {
|
|
@@ -25,8 +26,8 @@ export const UNAddToWalletBottomSheetItem = props => {
|
|
|
25
26
|
}, [cardId]);
|
|
26
27
|
useEffect(() => {
|
|
27
28
|
if (!webRef.current) return;
|
|
28
|
-
if (addToWalletStatus ===
|
|
29
|
-
const isCardInWallet = addToWalletStatus ===
|
|
29
|
+
if (addToWalletStatus === UNCardAddToWalletStatus.pending) return;
|
|
30
|
+
const isCardInWallet = addToWalletStatus === UNCardAddToWalletStatus.addedToWallet;
|
|
30
31
|
webRef.current.injectJavaScript(`window.UnitMobileSDKConfig["isCardInWallet"] = ${isCardInWallet}`);
|
|
31
32
|
if (renderingRequest) {
|
|
32
33
|
renderingBottomSheetRequest(webRef.current, renderingRequest);
|
|
@@ -53,9 +54,9 @@ export const UNAddToWalletBottomSheetItem = props => {
|
|
|
53
54
|
type: WebComponentType.slot,
|
|
54
55
|
presentationMode: PresentationMode.CoverInjectedHeight,
|
|
55
56
|
isScrollable: false
|
|
56
|
-
}), addToWalletStatus ===
|
|
57
|
+
}), addToWalletStatus === UNCardAddToWalletStatus.pending && /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
57
58
|
style: styles.loader
|
|
58
|
-
}), addToWalletStatus ===
|
|
59
|
+
}), addToWalletStatus === UNCardAddToWalletStatus.readyToProvisioning && /*#__PURE__*/React.createElement(UnitAddToWalletButtonView, {
|
|
59
60
|
style: styles.addToWalletButton,
|
|
60
61
|
onAddToWalletClicked: handleAddToWalletClicked
|
|
61
62
|
}));
|
package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","CardNativeMessage","EventBus","PresentationMode","WebComponent","WebComponentType","renderingBottomSheetRequest","getStylesObject","ActivityIndicator","useListenerToBus","UnitAddToWalletButtonView","UNCardAddToWalletStatus","UNAddToWalletBottomSheetItem","props","styles","webRef","renderingRequest","cardId","addToWalletStatus","setAddToWalletStatus","pending","event","Instance","CARD_GET_ADD_TO_WALLET_STATUS","current","isCardInWallet","addedToWallet","injectJavaScript","gotCardWalletStatus","data","status","busEventKey","CARD_UPDATE_ADD_TO_WALLET_STATUS","action","handleAddToWalletClicked","startPushProvisioningEvent","CARD_START_PUSH_PROVISIONING","createElement","Fragment","ref","type","slot","presentationMode","CoverInjectedHeight","isScrollable","style","loader","readyToProvisioning","addToWalletButton","onAddToWalletClicked"],"sources":["UNAddToWalletBottomSheetItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { UNCardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../../messages/nativeMessages/cardMessage';\nimport EventBus from '../../../helpers/EventBus';\nimport { PresentationMode } from '../../../scripts/html/bodyHtml';\nimport { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';\nimport { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';\nimport { ActivityIndicator } from 'react-native';\nimport { useListenerToBus } from '../../../hooks/listenerToBus';\nimport type { RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';\nimport UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';\nimport { UNCardAddToWalletStatus } from '../../../sharedTypes/wallet.types';\n\nexport interface UNAddToWalletBottomSheetItemProps {\n renderingRequest?: RequestRenderingEvent\n cardId?: string\n}\n\nexport const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItemProps) => {\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const { renderingRequest, cardId } = props;\n\n const [addToWalletStatus, setAddToWalletStatus] = useState<UNCardAddToWalletStatus>(UNCardAddToWalletStatus.pending);\n\n useEffect(() => {\n if (!cardId) return;\n const event: CardGetAddToWalletStatusEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);\n }, [cardId]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (addToWalletStatus === UNCardAddToWalletStatus.pending) return;\n\n const isCardInWallet = addToWalletStatus === UNCardAddToWalletStatus.addedToWallet;\n webRef.current.injectJavaScript(`window.UnitMobileSDKConfig[\"isCardInWallet\"] = ${isCardInWallet}`);\n\n if (renderingRequest) {\n renderingBottomSheetRequest(webRef.current, renderingRequest);\n }\n }, [webRef.current, renderingRequest, addToWalletStatus]);\n\n const gotCardWalletStatus = (data?: UNCardAddToWalletStatusEvent) => {\n if (data != null) {\n setAddToWalletStatus(data.status);\n }\n };\n\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, action: gotCardWalletStatus });\n\n const handleAddToWalletClicked = () => {\n if (!cardId) return;\n const startPushProvisioningEvent: CardStartPushProvisioningEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);\n };\n\n return (\n <>\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n isScrollable={false}\n />\n {addToWalletStatus === UNCardAddToWalletStatus.pending && <ActivityIndicator style={styles.loader} />}\n {addToWalletStatus === UNCardAddToWalletStatus.readyToProvisioning && <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","UNIT_REQUEST_REFRESH","action","CARD_STATUS_CHANGED","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","createElement","style","ref","presentationMode","Default","params","theme","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, 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 { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { ResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n theme?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: ResponseUnitOnLoadEvent) => void\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n\n const walletRef = useRef<UNWallet | null>(null);\n // walletRef can be changed to a state. (After the change of the listener hook)\n // TODO: walletState and checks it works. =)\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus });\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\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 case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: CardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","UNIT_REQUEST_REFRESH","action","CARD_STATUS_CHANGED","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","createElement","style","ref","presentationMode","Default","params","theme","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, 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 { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, UNCardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n theme?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: UNResponseUnitOnLoadEvent) => void\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n\n const walletRef = useRef<UNWallet | null>(null);\n // walletRef can be changed to a state. (After the change of the listener hook)\n // TODO: walletState and checks it works. =)\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus });\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\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 case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as UNResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: UNCardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -4,17 +4,6 @@ export let CardNativeMessage;
|
|
|
4
4
|
CardNativeMessage["CARD_UPDATE_ADD_TO_WALLET_STATUS"] = "cardUpdateAddToWalletStatus";
|
|
5
5
|
CardNativeMessage["CARD_START_PUSH_PROVISIONING"] = "cardStartPushProvisioning";
|
|
6
6
|
})(CardNativeMessage || (CardNativeMessage = {}));
|
|
7
|
-
export let CardAddToWalletStatus;
|
|
8
|
-
(function (CardAddToWalletStatus) {
|
|
9
|
-
CardAddToWalletStatus[CardAddToWalletStatus["pending"] = 0] = "pending";
|
|
10
|
-
CardAddToWalletStatus["readyToProvisioning"] = "ReadyToProvision";
|
|
11
|
-
CardAddToWalletStatus["addedToWallet"] = "AlreadyProvisioned";
|
|
12
|
-
CardAddToWalletStatus["iosProvisionedInCurrentDevice"] = "ProvisionedInCurrentDevice";
|
|
13
|
-
CardAddToWalletStatus["iosProvisionedInPairedDevice"] = "ProvisionedInPairedDevice";
|
|
14
|
-
CardAddToWalletStatus["androidNotInstalled"] = "NotInstalled";
|
|
15
|
-
CardAddToWalletStatus["androidWalletSetupNotCompleted"] = "WalletSetupNotCompleted";
|
|
16
|
-
CardAddToWalletStatus["androidWalletAppUpdateAvailable"] = "WalletAppUpdateAvailable";
|
|
17
|
-
})(CardAddToWalletStatus || (CardAddToWalletStatus = {}));
|
|
18
7
|
export let CardAddToWalletErrors;
|
|
19
8
|
(function (CardAddToWalletErrors) {
|
|
20
9
|
CardAddToWalletErrors["closedNativeWalletScreen"] = "VP_ERROR_302";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CardNativeMessage","
|
|
1
|
+
{"version":3,"names":["CardNativeMessage","CardAddToWalletErrors"],"sources":["cardMessage.ts"],"sourcesContent":["import type { UNCardAddToWalletStatus } from '../../sharedTypes/wallet.types';\n\nexport enum CardNativeMessage {\n CARD_GET_ADD_TO_WALLET_STATUS = 'cardGetAddToWalletStatus',\n CARD_UPDATE_ADD_TO_WALLET_STATUS = 'cardUpdateAddToWalletStatus',\n CARD_START_PUSH_PROVISIONING = 'cardStartPushProvisioning'\n}\n\nexport enum CardAddToWalletErrors {\n closedNativeWalletScreen = 'VP_ERROR_302'\n}\nexport interface UNCardAddToWalletStatusEvent {\n status: UNCardAddToWalletStatus\n}\n\nexport interface CardGetAddToWalletStatusEvent {\n cardId: string\n}\n\nexport interface CardStartPushProvisioningEvent {\n cardId: string\n}\n\nexport type CardNativeEvent =\n | UNCardAddToWalletStatusEvent\n | CardGetAddToWalletStatusEvent\n | CardStartPushProvisioningEvent\n"],"mappings":"AAEA,WAAYA,iBAAiB;AAI5B,WAJWA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;AAAA,GAAjBA,iBAAiB,KAAjBA,iBAAiB;AAM7B,WAAYC,qBAAqB;AAEhC,WAFWA,qBAAqB;EAArBA,qBAAqB;AAAA,GAArBA,qBAAqB,KAArBA,qBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AccountMessage"],"sources":["accountMessage.ts"],"sourcesContent":["import type { UNAccountData } from '../../sharedTypes';\n\nexport enum AccountMessage {\n UNIT_ACCOUNT_CHANGED = 'unitAccountChanged'\n}\n\nexport interface AccountChangedEvent {\n account: UNAccountData;\n}\n\nexport type AccountEvent =\n | AccountChangedEvent\n"],"mappings":"AAEA,WAAYA,cAAc;AAEzB,WAFWA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["import type { ACHEvent } from './achCreditMessage';\nimport type { BookPaymentEvent } from './bookPaymentMessage';\n\nimport type { CardEvent, CardMessage } from './cardMessage';\nimport type { PageEvent, PageMessage } from './pageMessage';\nimport type { PaymentMessage } from './paymentsMessage';\nimport type { UnitEvent, UnitMessage } from './unitMessages';\n\nexport type WebViewMessageType =\n | PageMessage\n | CardMessage\n | UnitMessage\n | PaymentMessage\n\ntype WebViewEvent =\n | PageEvent\n | UnitEvent\n | CardEvent\n | BookPaymentEvent\n | PaymentMessage\n | ACHEvent\n\nexport interface WebViewMessage {\n type: WebViewMessageType,\n details?: WebViewEvent\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["import type { ACHEvent } from './achCreditMessage';\nimport type { BookPaymentEvent } from './bookPaymentMessage';\n\nimport type { CardEvent, CardMessage } from './cardMessage';\nimport type { PageEvent, PageMessage } from './pageMessage';\nimport type { PaymentMessage } from './paymentsMessage';\nimport type { UnitEvent, UnitMessage } from './unitMessages';\nimport type { AccountEvent, AccountMessage } from './accountMessage';\n\nexport type WebViewMessageType =\n | PageMessage\n | CardMessage\n | UnitMessage\n | PaymentMessage\n | AccountMessage\n\ntype WebViewEvent =\n | PageEvent\n | UnitEvent\n | CardEvent\n | BookPaymentEvent\n | PaymentMessage\n | ACHEvent\n | AccountEvent\n\nexport interface WebViewMessage {\n type: WebViewMessageType,\n details?: WebViewEvent\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["import type { UNResponseUnitOnLoadEvent } from '../../sharedTypes';\n\nexport enum UnitMessage {\n UNIT_REQUEST_RENDERING = 'unitRequestRendering',\n UNIT_REQUEST_REFRESH = 'unitRequestRefresh',\n UNIT_REQUEST_CLOSE_FLOW = 'unitRequestCloseFlow',\n UNIT_REQUEST_OPEN_LINK = 'unitRequestOpenLink',\n UNIT_ON_LOAD = 'unitOnLoad',\n UNIT_REQUEST_DOWNLOAD = 'unitRequestDownload',\n UNIT_PLAID_TOKEN_CREATED = 'unitPlaidLinkTokenCreated',\n UNIT_REQUEST_EXTERNAL_SDK = 'unitRequestExternalSdk',\n UNIT_PLAID_RESPONSE = 'unitPlaidResponse'\n\n}\nexport interface RequestRenderingEvent {\n data: RequestRenderingEventData\n}\n\nexport interface RequestRenderingEventData {\n actionType?: string,\n nativePlace: string,\n nativeComponent: string,\n}\n\nexport interface RequestRefreshEvent {\n refEvent: string;\n dependencies: string[];\n resourceId: string;\n}\n\nexport interface RequestOpenLinkEvent {\n href: string;\n target: string\n}\n\nexport interface RequestDownloadEvent {\n url: string\n accessToken: string\n fileType: string\n responseType: string\n fileName: string\n}\n\nexport interface PlaidTokenCreatedEvent {\n linkToken: PlaidLinkTokenData\n}\n\nexport interface PlaidLinkTokenData {\n type: string,\n attributes: PlaidLinkTokenAttributes\n}\n\ninterface PlaidLinkTokenAttributes {\n linkToken: string,\n expiration: string\n}\n\nexport interface RequestExternalSdkEvent {\n type: string\n}\n\nexport type UnitEvent =\n | RequestRenderingEvent\n | RequestRefreshEvent\n | RequestOpenLinkEvent\n | UNResponseUnitOnLoadEvent\n | RequestDownloadEvent\n | PlaidTokenCreatedEvent\n | RequestExternalSdkEvent\n"],"mappings":"AAEA,WAAYA,WAAW;AAWtB,WAXWA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAXA,WAAW"}
|
|
@@ -2,6 +2,7 @@ import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
|
|
|
2
2
|
import { CardMessage } from '../../messages/webMessages/cardMessage';
|
|
3
3
|
import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
4
4
|
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
5
|
+
import { AccountMessage } from '../../messages/webMessages/accountMessage';
|
|
5
6
|
export const POST_MESSAGE_TO_SDK = `
|
|
6
7
|
const postMessageToSDK = (message) => {
|
|
7
8
|
if ('ReactNativeWebView' in window) {
|
|
@@ -59,7 +60,7 @@ export const LISTENERS = {
|
|
|
59
60
|
window.addEventListener("${CardMessage.CARD_STATUS_CHANGED}", (e) => {
|
|
60
61
|
const response = e.detail
|
|
61
62
|
response.then((data) => {
|
|
62
|
-
postMessageToSDK({ type: "${CardMessage.CARD_STATUS_CHANGED}", details: { card:
|
|
63
|
+
postMessageToSDK({ type: "${CardMessage.CARD_STATUS_CHANGED}", details: { card: data.data }})
|
|
63
64
|
}).catch((e) => {
|
|
64
65
|
console.log(e)
|
|
65
66
|
})
|
|
@@ -74,11 +75,21 @@ export const LISTENERS = {
|
|
|
74
75
|
window.addEventListener("${PaymentMessage.PAYMENT_CREATED}", (e) => {
|
|
75
76
|
const response = e.detail
|
|
76
77
|
response.then((data) => {
|
|
77
|
-
postMessageToSDK({ type: "${PaymentMessage.PAYMENT_CREATED}", details: { data:
|
|
78
|
+
postMessageToSDK({ type: "${PaymentMessage.PAYMENT_CREATED}", details: { data: data.data }})
|
|
78
79
|
}).catch((e) => {
|
|
79
80
|
console.log(e)
|
|
80
81
|
})
|
|
81
|
-
})
|
|
82
|
+
});`,
|
|
83
|
+
unitAccountChanged: `
|
|
84
|
+
window.addEventListener("${AccountMessage.UNIT_ACCOUNT_CHANGED}", (e) => {
|
|
85
|
+
const response = e.detail
|
|
86
|
+
response.then((data) => {
|
|
87
|
+
postMessageToSDK({ type: "${AccountMessage.UNIT_ACCOUNT_CHANGED}", details: { account: data.data }})
|
|
88
|
+
}).catch((e) => {
|
|
89
|
+
console.log(e)
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
`
|
|
82
93
|
};
|
|
83
94
|
export const DISPATCH_RENDERING_EVENT = `
|
|
84
95
|
const dispatchRenderingEvent = (details) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PaymentMessage","CardMessage","PageMessage","UnitMessage","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","PAGE_HEIGHT","LISTENERS","isPageLoaded","PAGE_LOADED","requestRendering","UNIT_REQUEST_RENDERING","requestRefresh","UNIT_REQUEST_REFRESH","onLoad","UNIT_ON_LOAD","requestCloseFlow","UNIT_REQUEST_CLOSE_FLOW","requestOpenLink","UNIT_REQUEST_OPEN_LINK","unitRequestDownload","UNIT_REQUEST_DOWNLOAD","cardStatusChange","CARD_STATUS_CHANGED","unitRequestExternalSdk","UNIT_REQUEST_EXTERNAL_SDK","unitPaymentCreated","PAYMENT_CREATED","DISPATCH_RENDERING_EVENT","DISPATCH_REQUEST_REFRESH","DISPATCH_PLAID_RESPONSE","UNIT_PLAID_RESPONSE"],"sources":["bodyScript.ts"],"sourcesContent":["import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { PageMessage } from '../../messages/webMessages/pageMessage';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\n\nexport const POST_MESSAGE_TO_SDK = `\n const postMessageToSDK = (message) => {\n if ('ReactNativeWebView' in window) {\n const messageString = JSON.stringify(message)\n window['ReactNativeWebView'].postMessage(messageString)\n }\n }\n`;\n\nexport const POST_PAGE_HEIGHT = `\n const postHeight = () => {\n setTimeout(() => {\n const height = window.document.documentElement.getBoundingClientRect().height\n postMessageToSDK({ type: \"${PageMessage.PAGE_HEIGHT}\", details: { height } })\n })\n }\n`;\n\nexport const LISTENERS = {\n isPageLoaded: `\n window.addEventListener('DOMContentLoaded', e => {\n postMessageToSDK({ type: \"${PageMessage.PAGE_LOADED}\" })\n });\n `,\n requestRendering: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_RENDERING}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_RENDERING}\", details: { data: e.detail }})\n });\n `,\n requestRefresh: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_REFRESH}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_REFRESH}\", details: e.detail })\n });\n `,\n onLoad: `\n window.addEventListener(\"${UnitMessage.UNIT_ON_LOAD}\", (e) => {\n postHeight()\n postMessageToSDK({ type: \"${UnitMessage.UNIT_ON_LOAD}\", details: e.detail })\n });\n `,\n requestCloseFlow: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\" })\n });\n `,\n requestOpenLink: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", details: e.detail })\n });\n `,\n unitRequestDownload: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", details: e.detail })\n });\n `,\n cardStatusChange: `\n window.addEventListener(\"${CardMessage.CARD_STATUS_CHANGED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${CardMessage.CARD_STATUS_CHANGED}\", details: { card:
|
|
1
|
+
{"version":3,"names":["PaymentMessage","CardMessage","PageMessage","UnitMessage","AccountMessage","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","PAGE_HEIGHT","LISTENERS","isPageLoaded","PAGE_LOADED","requestRendering","UNIT_REQUEST_RENDERING","requestRefresh","UNIT_REQUEST_REFRESH","onLoad","UNIT_ON_LOAD","requestCloseFlow","UNIT_REQUEST_CLOSE_FLOW","requestOpenLink","UNIT_REQUEST_OPEN_LINK","unitRequestDownload","UNIT_REQUEST_DOWNLOAD","cardStatusChange","CARD_STATUS_CHANGED","unitRequestExternalSdk","UNIT_REQUEST_EXTERNAL_SDK","unitPaymentCreated","PAYMENT_CREATED","unitAccountChanged","UNIT_ACCOUNT_CHANGED","DISPATCH_RENDERING_EVENT","DISPATCH_REQUEST_REFRESH","DISPATCH_PLAID_RESPONSE","UNIT_PLAID_RESPONSE"],"sources":["bodyScript.ts"],"sourcesContent":["import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { PageMessage } from '../../messages/webMessages/pageMessage';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\n\nexport const POST_MESSAGE_TO_SDK = `\n const postMessageToSDK = (message) => {\n if ('ReactNativeWebView' in window) {\n const messageString = JSON.stringify(message)\n window['ReactNativeWebView'].postMessage(messageString)\n }\n }\n`;\n\nexport const POST_PAGE_HEIGHT = `\n const postHeight = () => {\n setTimeout(() => {\n const height = window.document.documentElement.getBoundingClientRect().height\n postMessageToSDK({ type: \"${PageMessage.PAGE_HEIGHT}\", details: { height } })\n })\n }\n`;\n\nexport const LISTENERS = {\n isPageLoaded: `\n window.addEventListener('DOMContentLoaded', e => {\n postMessageToSDK({ type: \"${PageMessage.PAGE_LOADED}\" })\n });\n `,\n requestRendering: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_RENDERING}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_RENDERING}\", details: { data: e.detail }})\n });\n `,\n requestRefresh: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_REFRESH}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_REFRESH}\", details: e.detail })\n });\n `,\n onLoad: `\n window.addEventListener(\"${UnitMessage.UNIT_ON_LOAD}\", (e) => {\n postHeight()\n postMessageToSDK({ type: \"${UnitMessage.UNIT_ON_LOAD}\", details: e.detail })\n });\n `,\n requestCloseFlow: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_CLOSE_FLOW}\" })\n });\n `,\n requestOpenLink: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_OPEN_LINK}\", details: e.detail })\n });\n `,\n unitRequestDownload: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_DOWNLOAD}\", details: e.detail })\n });\n `,\n cardStatusChange: `\n window.addEventListener(\"${CardMessage.CARD_STATUS_CHANGED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${CardMessage.CARD_STATUS_CHANGED}\", details: { card: data.data }})\n }).catch((e) => {\n console.log(e)\n })\n });\n `,\n unitRequestExternalSdk: `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_EXTERNAL_SDK}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_EXTERNAL_SDK}\", details: e.detail })\n });\n`,\n unitPaymentCreated:`\n window.addEventListener(\"${PaymentMessage.PAYMENT_CREATED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${PaymentMessage.PAYMENT_CREATED}\", details: { data: data.data }})\n }).catch((e) => {\n console.log(e)\n })\n });`\n ,\n unitAccountChanged: `\n window.addEventListener(\"${AccountMessage.UNIT_ACCOUNT_CHANGED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${AccountMessage.UNIT_ACCOUNT_CHANGED}\", details: { account: data.data }})\n }).catch((e) => {\n console.log(e)\n })\n });\n `,\n};\n\nexport const DISPATCH_RENDERING_EVENT = `\n const dispatchRenderingEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_RENDERING}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n`;\n\nexport const DISPATCH_REQUEST_REFRESH = `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_REFRESH}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n`;\n\nexport const DISPATCH_PLAID_RESPONSE = `\n const dispatchPlaidEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_PLAID_RESPONSE}\",{ detail: details })\n window.dispatchEvent(event)\n }\n`;\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,4CAA4C;AAC3E,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,WAAW,QAAQ,yCAAyC;AACrE,SAASC,cAAc,QAAQ,2CAA2C;AAE1E,OAAO,MAAMC,mBAAmB,GAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAI;AACjC;AACA;AACA;AACA,kCAAkCJ,WAAW,CAACK,WAAY;AAC1D;AACA;AACA,CAAC;AAED,OAAO,MAAMC,SAAS,GAAG;EACvBC,YAAY,EAAG;AACjB;AACA,kCAAkCP,WAAW,CAACQ,WAAY;AAC1D;AACA,GAAG;EACDC,gBAAgB,EAAG;AACrB,+BAA+BR,WAAW,CAACS,sBAAuB;AAClE,kCAAkCT,WAAW,CAACS,sBAAuB;AACrE;AACA,GAAG;EACDC,cAAc,EAAG;AACnB,+BAA+BV,WAAW,CAACW,oBAAqB;AAChE,kCAAkCX,WAAW,CAACW,oBAAqB;AACnE;AACA,GAAG;EACDC,MAAM,EAAG;AACX,+BAA+BZ,WAAW,CAACa,YAAa;AACxD;AACA,kCAAkCb,WAAW,CAACa,YAAa;AAC3D;AACA,GAAG;EACDC,gBAAgB,EAAG;AACrB,+BAA+Bd,WAAW,CAACe,uBAAwB;AACnE,kCAAkCf,WAAW,CAACe,uBAAwB;AACtE;AACA,GAAG;EACDC,eAAe,EAAG;AACpB,+BAA+BhB,WAAW,CAACiB,sBAAuB;AAClE,kCAAkCjB,WAAW,CAACiB,sBAAuB;AACrE;AACA,GAAG;EACDC,mBAAmB,EAAG;AACxB,+BAA+BlB,WAAW,CAACmB,qBAAsB;AACjE,kCAAkCnB,WAAW,CAACmB,qBAAsB;AACpE;AACA,GAAG;EACDC,gBAAgB,EAAG;AACrB,+BAA+BtB,WAAW,CAACuB,mBAAoB;AAC/D;AACA;AACA,oCAAoCvB,WAAW,CAACuB,mBAAoB;AACpE;AACA;AACA;AACA;AACA,GAAG;EACDC,sBAAsB,EAAG;AAC3B,6BAA6BtB,WAAW,CAACuB,yBAA0B;AACnE,gCAAgCvB,WAAW,CAACuB,yBAA0B;AACtE;AACA,CAAC;EACCC,kBAAkB,EAAE;AACtB,6BAA6B3B,cAAc,CAAC4B,eAAgB;AAC5D;AACA;AACA,oCAAoC5B,cAAc,CAAC4B,eAAgB;AACnE;AACA;AACA;AACA,MAAM;EAEJC,kBAAkB,EAAG;AACvB,+BAA+BzB,cAAc,CAAC0B,oBAAqB;AACnE;AACA;AACA,oCAAoC1B,cAAc,CAAC0B,oBAAqB;AACxE;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAI;AACzC;AACA,qCAAqC5B,WAAW,CAACS,sBAAuB;AACxE;AACA;AACA,CAAC;AAED,OAAO,MAAMoB,wBAAwB,GAAI;AACzC;AACA,qCAAqC7B,WAAW,CAACW,oBAAqB;AACtE;AACA;AACA,CAAC;AAED,OAAO,MAAMmB,uBAAuB,GAAI;AACxC;AACA,qCAAqC9B,WAAW,CAAC+B,mBAAoB;AACrE;AACA;AACA,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var UNAccountStatus;
|
|
2
|
+
(function (UNAccountStatus) {
|
|
3
|
+
UNAccountStatus["Open"] = "Open";
|
|
4
|
+
UNAccountStatus["Closed"] = "Closed";
|
|
5
|
+
UNAccountStatus["Frozen"] = "Frozen";
|
|
6
|
+
})(UNAccountStatus || (UNAccountStatus = {}));
|
|
7
|
+
export let UNCloseReason;
|
|
8
|
+
(function (UNCloseReason) {
|
|
9
|
+
UNCloseReason["Fraud"] = "Fraud";
|
|
10
|
+
UNCloseReason["ByCustomer"] = "ByCustomer";
|
|
11
|
+
})(UNCloseReason || (UNCloseReason = {}));
|
|
12
|
+
export let UNFraudReason;
|
|
13
|
+
(function (UNFraudReason) {
|
|
14
|
+
UNFraudReason["ACHActivity"] = "ACHActivity";
|
|
15
|
+
UNFraudReason["CardActivity"] = "CardActivity";
|
|
16
|
+
UNFraudReason["CheckActivity"] = "CheckActivity";
|
|
17
|
+
UNFraudReason["ApplicationHistory"] = "ApplicationHistory";
|
|
18
|
+
UNFraudReason["AccountActivity"] = "AccountActivity";
|
|
19
|
+
UNFraudReason["ClientIdentified"] = "ClientIdentified";
|
|
20
|
+
UNFraudReason["IdentityTheft"] = "IdentityTheft";
|
|
21
|
+
UNFraudReason["LinkedToFraudulentCustomer"] = "LinkedToFraudulentCustomer";
|
|
22
|
+
})(UNFraudReason || (UNFraudReason = {}));
|
|
23
|
+
//# sourceMappingURL=account.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UNAccountStatus","UNCloseReason","UNFraudReason"],"sources":["account.types.ts"],"sourcesContent":["import type { UNRelationship, UNTags } from './types';\n\nexport type UNAccountData = UNDepositAccount | UNBatchAccount | UNCreditAccount\n\nenum UNAccountStatus {\n Open = \"Open\",\n Closed = \"Closed\",\n Frozen = \"Frozen\",\n}\n\nexport enum UNCloseReason {\n Fraud = \"Fraud\",\n ByCustomer = \"ByCustomer\",\n}\n\nexport enum UNFraudReason {\n ACHActivity = \"ACHActivity\",\n CardActivity = \"CardActivity\",\n CheckActivity = \"CheckActivity\",\n ApplicationHistory = \"ApplicationHistory\",\n AccountActivity = \"AccountActivity\",\n ClientIdentified = \"ClientIdentified\",\n IdentityTheft = \"IdentityTheft\",\n LinkedToFraudulentCustomer = \"LinkedToFraudulentCustomer\",\n}\n\nexport type UNDepositAccount = {\n id: string\n type: \"depositAccount\"\n attributes: {\n createdAt: string\n updatedAt?: string\n name: string\n depositProduct: string\n routingNumber: string\n accountNumber: string\n maskedAccountNumber?: string\n secondaryAccountNumber?: {\n routingNumber: string\n accountNumber: string\n }\n balance: number\n hold: number\n reserve: number\n available: number\n overdraftLimit?: number\n currency: string\n tags: UNTags\n status: UNAccountStatus\n closeReason?: string\n fraudReason?: UNFraudReason\n closeReasonText?: string\n freezeReason?: string\n isOverdrawnWithinLimit?: boolean\n }\n relationships: {\n customer?: UNRelationship\n customers?: UNRelationship\n org: UNRelationship\n }\n // included?: Individual[]\n}\n\nexport type UNBatchAccount = {\n id: string\n type: \"batchAccount\"\n attributes: {\n createdAt: Date\n updatedAt?: Date\n name: string\n depositProduct: string\n routingNumber: string\n accountNumber: string\n maskedAccountNumber?: string\n balance: number\n hold: number\n reserve: number\n available: number\n currency: string\n status: \"Open\" | \"Closed\"\n closeReason?: string\n fraudReason?: UNFraudReason\n closeReasonText?: string\n freezeReason?: string\n tags?: {[key: string]: string}\n }\n relationships: {\n org: UNRelationship\n }\n}\n\nexport type UNCreditAccount = {\n id: string\n type: \"creditAccount\"\n attributes: {\n createdAt: Date\n updatedAt?: Date\n name: string\n creditTerms: string\n balance: number\n hold: number\n reserve: number\n available: number\n creditLimit: number\n currency: string\n tags: {[key: string]: string}\n status: UNAccountStatus\n closeReason?: UNCloseReason\n fraudReason?: UNFraudReason\n closeReasonText?: string\n freezeReason?: string\n }\n relationships: {\n customer: UNRelationship,\n org: UNRelationship\n }\n}\n"],"mappings":"IAIKA,eAAe;AAAA,WAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe;AAMpB,WAAYC,aAAa;AAGxB,WAHWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AAKzB,WAAYC,aAAa;AASxB,WATWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa"}
|