react-native-unit-components 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -375
- package/ios/Camera/Camera.swift +22 -0
- package/ios/Camera/CameraExportModule.m +7 -0
- package/ios/UNAppInfo/UNAppInfo.swift +19 -0
- package/ios/UNAppInfo/UNAppInfoExportModule.m +7 -0
- package/ios/UnitReactNativeComponentsViewManager.swift +7 -7
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +3 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +7 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +8 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +6 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.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/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +97 -0
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -0
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +45 -0
- package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -0
- package/lib/commonjs/components/index.js +11 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/hooks/listenerToBus.js +4 -1
- package/lib/commonjs/hooks/listenerToBus.js.map +1 -1
- package/lib/commonjs/messages/webMessages/activityMessage.js +12 -0
- package/lib/commonjs/messages/webMessages/activityMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/checkMessage.js +13 -0
- package/lib/commonjs/messages/webMessages/checkMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/index.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyScript.js +20 -1
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/account.types.js +8 -1
- package/lib/commonjs/sharedTypes/account.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/checkDeposit.types.js +22 -0
- package/lib/commonjs/sharedTypes/checkDeposit.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/index.js +11 -0
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +33 -1
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/html.js +8 -1
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +4 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +5 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +9 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +4 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.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/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +88 -0
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -0
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js +37 -0
- package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/hooks/listenerToBus.js +4 -1
- package/lib/module/hooks/listenerToBus.js.map +1 -1
- package/lib/module/messages/webMessages/activityMessage.js +5 -0
- package/lib/module/messages/webMessages/activityMessage.js.map +1 -0
- package/lib/module/messages/webMessages/checkMessage.js +6 -0
- package/lib/module/messages/webMessages/checkMessage.js.map +1 -0
- package/lib/module/messages/webMessages/index.js.map +1 -1
- package/lib/module/scripts/html/bodyScript.js +17 -0
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/account.types.js +6 -0
- package/lib/module/sharedTypes/account.types.js.map +1 -1
- package/lib/module/sharedTypes/checkDeposit.types.js +15 -0
- package/lib/module/sharedTypes/checkDeposit.types.js.map +1 -0
- package/lib/module/sharedTypes/index.js +1 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +32 -1
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/html.js +9 -2
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +4 -0
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +2 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -1
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +1 -0
- package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts +12 -0
- package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.d.ts +3 -0
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/messages/webMessages/activityMessage.d.ts +5 -0
- package/lib/typescript/messages/webMessages/checkMessage.d.ts +8 -0
- package/lib/typescript/messages/webMessages/index.d.ts +4 -2
- package/lib/typescript/scripts/html/bodyScript.d.ts +3 -0
- package/lib/typescript/sharedTypes/account.types.d.ts +5 -0
- package/lib/typescript/sharedTypes/checkDeposit.types.d.ts +46 -0
- package/lib/typescript/sharedTypes/index.d.ts +1 -0
- package/lib/typescript/webComponent/WebComponent.d.ts +1 -0
- package/package.json +3 -3
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +13 -1
- package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +7 -0
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +14 -2
- package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +5 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +1 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +4 -0
- package/src/components/UNCardComponent/UNCardComponent.tsx +2 -0
- package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +112 -0
- package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.utils.ts +40 -0
- package/src/components/index.ts +1 -0
- package/src/hooks/listenerToBus.ts +4 -1
- package/src/messages/webMessages/activityMessage.ts +8 -0
- package/src/messages/webMessages/checkMessage.ts +14 -0
- package/src/messages/webMessages/index.ts +6 -0
- package/src/scripts/html/bodyScript.ts +20 -1
- package/src/sharedTypes/account.types.ts +13 -7
- package/src/sharedTypes/checkDeposit.types.ts +50 -0
- package/src/sharedTypes/index.ts +1 -0
- package/src/webComponent/WebComponent.tsx +33 -1
- package/src/webComponent/html.ts +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectRefreshEventIfNeeded","EventBus","RESPONSE_KEYS","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","busEventKey","UNIT_REQUEST_REFRESH","action","handleUnitOnLoad","response","onLoad","errors","authorization","transactions","activityOnLoad","console","error","handleWebViewMessage","message","type","UNIT_REQUEST_RENDERING","event","componentName","activity","componentResourceId","accountId","requestRenderingEvent","details","Instance","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","renderActivityWebView","createElement","ref","presentationMode","Inherit","params","onMessage","nestedScrollEnabled","theme","script","style"],"sources":["UNActivityComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { getActivityParams, getActivityScript, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';\nimport type WebView from 'react-native-webview';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport EventBus from '../../helpers/EventBus';\nimport type { UNActivityOnLoadData } from '../../sharedTypes/activity.types';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\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: UNOnLoadResponse<UNActivityOnLoadData>) => void;\n
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Dimensions","View","UnitMessage","useListenerToBus","PageMessage","PresentationMode","WebComponent","WebComponentType","getActivityParams","getActivityScript","injectFiltersChanged","injectRefreshEventIfNeeded","EventBus","RESPONSE_KEYS","ActivityMessage","DEFAULT_HEIGHT","get","height","UNActivityComponent","props","webRef","defaultHeight","setDefaultHeight","requestRefresh","data","current","dispatchActivityFiltersChanged","query","busEventKey","UNIT_REQUEST_REFRESH","action","UNIT_ACTIVITY_FILTERS_CHANGED","handleUnitOnLoad","response","onLoad","errors","authorization","transactions","activityOnLoad","console","error","handleWebViewMessage","message","type","UNIT_REQUEST_RENDERING","event","componentName","activity","componentResourceId","accountId","requestRenderingEvent","details","Instance","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","renderActivityWebView","createElement","ref","presentationMode","Inherit","params","onMessage","nestedScrollEnabled","theme","script","style"],"sources":["UNActivityComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { getActivityParams, getActivityScript, injectFiltersChanged, injectRefreshEventIfNeeded } from './UNActivityComponent.utils';\nimport type WebView from 'react-native-webview';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nimport EventBus from '../../helpers/EventBus';\nimport type { UNActivityOnLoadData } from '../../sharedTypes/activity.types';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { ActivityMessage } from '../../messages/webMessages/activityMessage';\n\nconst DEFAULT_HEIGHT = Dimensions.get('window').height * 0.5;\nexport interface UNActivityComponentProps {\n // inputs\n accountId: string;\n customerToken: string;\n queryFilter?: string\n\n // ui\n theme?: string;\n hideFilterButton?: boolean;\n\n // event\n onLoad?: (response: UNOnLoadResponse<UNActivityOnLoadData>) => void;\n}\n\nexport const UNActivityComponent = (props: UNActivityComponentProps) => {\n const webRef = useRef<WebView>(null);\n const [defaultHeight, setDefaultHeight] = useState<number>();\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data);\n };\n\n const dispatchActivityFiltersChanged = (query: string) => {\n injectFiltersChanged(webRef.current, query);\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, action: dispatchActivityFiltersChanged});\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.authorization in response && RESPONSE_KEYS.transactions in response) {\n // ActivityOnLoadResponse;\n const activityOnLoad: UNOnLoadResponseData<UNActivityOnLoadData> = {\n data: {\n [RESPONSE_KEYS.authorization]: response[RESPONSE_KEYS.authorization].data,\n [RESPONSE_KEYS.transactions]: response[RESPONSE_KEYS.transactions].data\n }\n };\n props.onLoad(activityOnLoad);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.activity,\n componentResourceId: props.accountId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n currentHeight === 0 && setDefaultHeight(DEFAULT_HEIGHT);\n break;\n }\n }\n };\n\n const renderActivityWebView = () => {\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.activity}\n presentationMode={PresentationMode.Inherit}\n params={getActivityParams(props)}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n nestedScrollEnabled={true}\n theme={props.theme}\n 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,oBAAoB,EAAEC,0BAA0B,QAAQ,6BAA6B;AAGpI,OAAOC,QAAQ,MAAM,wBAAwB;AAE7C,SAASC,aAAa,QAAiC,0CAA0C;AACjG,SAASC,eAAe,QAAQ,4CAA4C;AAE5E,MAAMC,cAAc,GAAGf,UAAU,CAACgB,GAAG,CAAC,QAAQ,CAAC,CAACC,MAAM,GAAG,GAAG;AAe5D,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAMC,MAAM,GAAGtB,MAAM,CAAU,IAAI,CAAC;EACpC,MAAM,CAACuB,aAAa,EAAEC,gBAAgB,CAAC,GAAGvB,QAAQ,EAAU;EAE5D,MAAMwB,cAAc,GAAIC,IAAyB,IAAK;IACpDb,0BAA0B,CAACS,MAAM,CAACK,OAAO,EAAED,IAAI,CAAC;EAClD,CAAC;EAED,MAAME,8BAA8B,GAAIC,KAAa,IAAK;IACxDjB,oBAAoB,CAACU,MAAM,CAACK,OAAO,EAAEE,KAAK,CAAC;EAC7C,CAAC;EAEDxB,gBAAgB,CAAC;IAAEyB,WAAW,EAAE1B,WAAW,CAAC2B,oBAAoB;IAAEC,MAAM,EAAEP;EAAe,CAAC,CAAC;EAC3FpB,gBAAgB,CAAC;IAAEyB,WAAW,EAAEd,eAAe,CAACiB,6BAA6B;IAAED,MAAM,EAAEJ;EAA8B,CAAC,CAAC;EAEvH,MAAMM,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAACd,KAAK,CAACe,MAAM,EAAE;MACjB;IACF;IAEA,IAAIrB,aAAa,CAACsB,MAAM,IAAIF,QAAQ,EAAE;MACpCd,KAAK,CAACe,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIpB,aAAa,CAACuB,aAAa,IAAIH,QAAQ,IAAIpB,aAAa,CAACwB,YAAY,IAAIJ,QAAQ,EAAE;MACrF;MACA,MAAMK,cAA0D,GAAG;QACjEd,IAAI,EAAE;UACJ,CAACX,aAAa,CAACuB,aAAa,GAAGH,QAAQ,CAACpB,aAAa,CAACuB,aAAa,CAAC,CAACZ,IAAI;UACzE,CAACX,aAAa,CAACwB,YAAY,GAAGJ,QAAQ,CAACpB,aAAa,CAACwB,YAAY,CAAC,CAACb;QACrE;MACF,CAAC;MACDL,KAAK,CAACe,MAAM,CAACI,cAAc,CAAC;MAC5B;IACF;IAEAC,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,QAAQA,OAAO,CAACC,IAAI;MAClB,KAAKzC,WAAW,CAAC0C,sBAAsB;QAAE;UACvC,MAAMC,KAA0B,GAAG;YACjCC,aAAa,EAAEvC,gBAAgB,CAACwC,QAAQ;YACxCC,mBAAmB,EAAE7B,KAAK,CAAC8B,SAAS;YACpCC,qBAAqB,EAAER,OAAO,CAACS;UACjC,CAAC;UACDvC,QAAQ,CAACwC,QAAQ,CAACP,KAAK,CAAC3C,WAAW,CAAC0C,sBAAsB,EAAEC,KAAK,CAAC;UAClE;QACF;MACA,KAAK3C,WAAW,CAACmD,YAAY;QAC3BrB,gBAAgB,CAACU,OAAO,CAACS,OAAO,CAA4B;QAC5D;MACF,KAAK/C,WAAW,CAACkD,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIb,OAAO,CAACS,OAAO,CAAiBlC,MAAM;UAC7DsC,aAAa,KAAK,CAAC,IAAIjC,gBAAgB,CAACP,cAAc,CAAC;UACvD;QACF;IAAC;EAEL,CAAC;EAED,MAAMyC,qBAAqB,GAAGA,CAAA,KAAM;IAClC,oBACE3D,KAAA,CAAA4D,aAAA,CAACnD,YAAY;MACXoD,GAAG,EAAEtC,MAAO;MACZuB,IAAI,EAAEpC,gBAAgB,CAACwC,QAAS;MAChCY,gBAAgB,EAAEtD,gBAAgB,CAACuD,OAAQ;MAC3CC,MAAM,EAAErD,iBAAiB,CAACW,KAAK,CAAE;MACjC2C,SAAS,EAAGpB,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEqB,mBAAmB,EAAE,IAAK;MAC1BC,KAAK,EAAE7C,KAAK,CAAC6C,KAAM;MACnBC,MAAM,EAAExD,iBAAiB;IAAG,EAC5B;EAEN,CAAC;EAED,IAAI,CAACY,aAAa,EAAE;IAClB,OAAOmC,qBAAqB,EAAE;EAChC;EAEA,oBACE3D,KAAA,CAAA4D,aAAA,CAACxD,IAAI;IAACiE,KAAK,EAAE;MAAEjD,MAAM,EAAEI;IAAc;EAAE,GACpCmC,qBAAqB,EAAE,CACnB;AAEX,CAAC"}
|
|
@@ -5,6 +5,7 @@ export const getActivityParams = props => {
|
|
|
5
5
|
return `
|
|
6
6
|
account-id="${props.accountId}"
|
|
7
7
|
customer-token="${props.customerToken}"
|
|
8
|
+
hide-filter-button="${props.hideFilterButton || false}"
|
|
8
9
|
${queryFilterParam}
|
|
9
10
|
style="height: 100%"
|
|
10
11
|
`;
|
|
@@ -17,4 +18,7 @@ export const injectRefreshEventIfNeeded = (currentWeb, requestRefreshEvent) => {
|
|
|
17
18
|
currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
|
|
18
19
|
}
|
|
19
20
|
};
|
|
21
|
+
export const injectFiltersChanged = (currentWeb, query) => {
|
|
22
|
+
currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchActivityFilterChangedEvent('${query}')`);
|
|
23
|
+
};
|
|
20
24
|
//# sourceMappingURL=UNActivityComponent.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebComponentType","DISPATCH_REQUEST_REFRESH","getActivityParams","props","queryFilterParam","queryFilter","accountId","customerToken","getActivityScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","activity","valueOf","injectJavaScript","JSON","stringify"],"sources":["UNActivityComponent.utils.ts"],"sourcesContent":["import { WebComponentType } from './../../webComponent/WebComponent';\nimport type { RequestRefreshEvent } from './../../messages/webMessages/unitMessages';\nimport type { WebView } from 'react-native-webview';\nimport { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type { UNActivityComponentProps } from './UNActivityComponent';\n\nexport const getActivityParams = (props: UNActivityComponentProps) => {\n const queryFilterParam = props.queryFilter ? `query-filter=\"${props.queryFilter}\"` : '';\n return `\n account-id=\"${props.accountId}\"\n customer-token=\"${props.customerToken}\"\n ${queryFilterParam}\n style=\"height: 100%\"\n `;\n};\n\nexport const getActivityScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.activity.valueOf())) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,mCAAmC;AAGpE,SAASC,wBAAwB,QAAQ,iCAAiC;AAG1E,OAAO,MAAMC,iBAAiB,GAAIC,KAA+B,IAAK;EACpE,MAAMC,gBAAgB,GAAGD,KAAK,CAACE,WAAW,GAAI,iBAAgBF,KAAK,CAACE,WAAY,GAAE,GAAG,EAAE;EACvF,OAAQ;AACV,kBAAkBF,KAAK,CAACG,SAAU;AAClC,sBAAsBH,KAAK,CAACI,aAAc;AAC1C,
|
|
1
|
+
{"version":3,"names":["WebComponentType","DISPATCH_REQUEST_REFRESH","getActivityParams","props","queryFilterParam","queryFilter","accountId","customerToken","hideFilterButton","getActivityScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","activity","valueOf","injectJavaScript","JSON","stringify","injectFiltersChanged","query"],"sources":["UNActivityComponent.utils.ts"],"sourcesContent":["import { WebComponentType } from './../../webComponent/WebComponent';\nimport type { RequestRefreshEvent } from './../../messages/webMessages/unitMessages';\nimport type { WebView } from 'react-native-webview';\nimport { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type { UNActivityComponentProps } from './UNActivityComponent';\n\nexport const getActivityParams = (props: UNActivityComponentProps) => {\n const queryFilterParam = props.queryFilter ? `query-filter=\"${props.queryFilter}\"` : '';\n return `\n account-id=\"${props.accountId}\"\n customer-token=\"${props.customerToken}\"\n hide-filter-button=\"${props.hideFilterButton || false}\"\n ${queryFilterParam}\n style=\"height: 100%\"\n `;\n};\n\nexport const getActivityScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.activity.valueOf())) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const injectFiltersChanged = (currentWeb: WebView | null, query: string) => {\n currentWeb?.injectJavaScript(`dispatchActivityFilterChangedEvent('${query}')`);\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,mCAAmC;AAGpE,SAASC,wBAAwB,QAAQ,iCAAiC;AAG1E,OAAO,MAAMC,iBAAiB,GAAIC,KAA+B,IAAK;EACpE,MAAMC,gBAAgB,GAAGD,KAAK,CAACE,WAAW,GAAI,iBAAgBF,KAAK,CAACE,WAAY,GAAE,GAAG,EAAE;EACvF,OAAQ;AACV,kBAAkBF,KAAK,CAACG,SAAU;AAClC,sBAAsBH,KAAK,CAACI,aAAc;AAC1C,0BAA0BJ,KAAK,CAACK,gBAAgB,IAAI,KAAM;AAC1D,MAAMJ,gBAAiB;AACvB;AACA,GAAG;AACH,CAAC;AAED,OAAO,MAAMK,iBAAiB,GAAGA,CAAA,KAAM;EACrC,OAAOR,wBAAwB;AACjC,CAAC;AAED,OAAO,MAAMS,0BAA0B,GAAGA,CAACC,UAA0B,EAAEC,mBAA+C,KAAK;EACzH,IAAIA,mBAAmB,IAAIA,mBAAmB,CAACC,YAAY,CAACC,QAAQ,CAACd,gBAAgB,CAACe,QAAQ,CAACC,OAAO,EAAE,CAAC,EAAE;IACzGL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,yBAAwBC,IAAI,CAACC,SAAS,CAACP,mBAAmB,CAAE,IAAG,CAAC;EAChG;AACF,CAAC;AAED,OAAO,MAAMQ,oBAAoB,GAAGA,CAACT,UAA0B,EAAEU,KAAa,KAAK;EACjFV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEM,gBAAgB,CAAE,uCAAsCI,KAAM,IAAG,CAAC;AAChF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","WebComponent","WebComponentType","PresentationMode","getBookPaymentParams","getBookPaymentScript","PageMessage","View","UnitMessage","PaymentMessage","RESPONSE_KEYS","UNBookPaymentComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","handleUnitOnLoad","response","onLoad","errors","account","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","onPaymentCreated","data","UNIT_ON_LOAD","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 { UNOnLoadResponse, UNBookPaymentData, UNError, UNAccountData, UNOnLoadResponseData } 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';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\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: UNOnLoadResponse<UNAccountData>) => 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 handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response) {\n // AccountOnLoadResponse;\n props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<UNAccountData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n 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 handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n }\n };\n\n const 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;AAE3E,SAASC,aAAa,QAAiC,0CAA0C;AAajG,OAAO,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EAC5E,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACe,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhB,QAAQ,CAAmBG,gBAAgB,CAACc,OAAO,CAAC;EAEpG,MAAMC,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAACP,KAAK,CAACQ,MAAM,EAAE;MACjB;IACF;IAEA,IAAIV,aAAa,CAACW,MAAM,IAAIF,QAAQ,EAAE;MACpCP,KAAK,CAACQ,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIT,aAAa,CAACY,OAAO,IAAIH,QAAQ,EAAE;MACrC;MACAP,KAAK,CAACQ,MAAM,CAACD,QAAQ,CAACT,aAAa,CAACY,OAAO,CAAC,CAAwC;MACpF;IACF;IAEAC,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;
|
|
1
|
+
{"version":3,"names":["React","useState","WebComponent","WebComponentType","PresentationMode","getBookPaymentParams","getBookPaymentScript","PageMessage","View","UnitMessage","PaymentMessage","RESPONSE_KEYS","UNBookPaymentComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","handleUnitOnLoad","response","onLoad","errors","account","console","error","handleWebViewMessage","message","details","type","PAYMENT_CREATED","onPaymentCreated","data","UNIT_ON_LOAD","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 { UNOnLoadResponse, UNBookPaymentData, UNError, UNAccountData, UNOnLoadResponseData } 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';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\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: UNOnLoadResponse<UNAccountData>) => 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 handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response) {\n // AccountOnLoadResponse;\n props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<UNAccountData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n 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 handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n }\n };\n\n const 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;AAE3E,SAASC,aAAa,QAAiC,0CAA0C;AAajG,OAAO,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EAC5E,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAS,CAAC,CAAC;EAC/C,MAAM,CAACe,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhB,QAAQ,CAAmBG,gBAAgB,CAACc,OAAO,CAAC;EAEpG,MAAMC,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAACP,KAAK,CAACQ,MAAM,EAAE;MACjB;IACF;IAEA,IAAIV,aAAa,CAACW,MAAM,IAAIF,QAAQ,EAAE;MACpCP,KAAK,CAACQ,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAIT,aAAa,CAACY,OAAO,IAAIH,QAAQ,EAAE;MACrC;MACAP,KAAK,CAACQ,MAAM,CAACD,QAAQ,CAACT,aAAa,CAACY,OAAO,CAAC,CAAwC;MACpF;IACF;IAEAC,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED,MAAMC,oBAAoB,GAAIC,OAAuB,IAAK;IACxD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAKnB,cAAc,CAACoB,eAAe;QACjCjB,KAAK,CAACkB,gBAAgB,IAAIlB,KAAK,CAACkB,gBAAgB,CAAEJ,OAAO,CAACC,OAAO,CAAsBI,IAAI,CAAC;QAC5F;MACF,KAAKvB,WAAW,CAACwB,YAAY;QAC3Bd,gBAAgB,CAACQ,OAAO,CAACC,OAAO,CAA4B;QAC5D;MACF,KAAKrB,WAAW,CAAC2B,WAAW;QAAE;UAC5B,MAAMC,aAAa,GAAIR,OAAO,CAACC,OAAO,CAAiBd,MAAM;UAC7DC,SAAS,CAACoB,aAAa,CAAC;UACxB,IAAInB,gBAAgB,KAAKZ,gBAAgB,CAACc,OAAO,IAAIiB,aAAa,KAAK,CAAC,EAAE;YACxElB,mBAAmB,CAACb,gBAAgB,CAACgC,OAAO,CAAC;UAC/C;UACA;QACF;IAAC;EAEL,CAAC;EAED,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;IACrC,oBACErC,KAAA,CAAAsC,aAAA,CAACpC,YAAY;MACX2B,IAAI,EAAE1B,gBAAgB,CAACoC,WAAY;MACnCvB,gBAAgB,EAAEA,gBAAiB;MACnCwB,MAAM,EAAEnC,oBAAoB,CAACQ,KAAK,CAAE;MACpC4B,MAAM,EAAEnC,oBAAoB,EAAG;MAC/BoC,SAAS,EAAGf,OAAuB,IAAKD,oBAAoB,CAACC,OAAO,CAAE;MACtEgB,YAAY,EAAE,KAAM;MACpBC,KAAK,EAAE/B,KAAK,CAAC+B;IAAM,EACnB;EAEN,CAAC;EAED,IAAI5B,gBAAgB,KAAKZ,gBAAgB,CAACc,OAAO,EAAE;IACjD,OAAOmB,wBAAwB,EAAE;EACnC;EAEA,oBACErC,KAAA,CAAAsC,aAAA,CAAC9B,IAAI;IAACqC,KAAK,EAAE;MAAE/B,MAAM,EAAEA;IAAO;EAAE,GAC7BuB,wBAAwB,EAAE,CACtB;AAEX,CAAC"}
|
|
@@ -16,6 +16,7 @@ import { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSh
|
|
|
16
16
|
import { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';
|
|
17
17
|
import { AccountAction } from '../UNAccountComponent/UNAccountComponent';
|
|
18
18
|
import { AccountMessage } from '../../messages/webMessages/accountMessage';
|
|
19
|
+
import { ActivityMessage } from '../../messages/webMessages/activityMessage';
|
|
19
20
|
export let ScrollState;
|
|
20
21
|
(function (ScrollState) {
|
|
21
22
|
ScrollState["onTop"] = "onTop";
|
|
@@ -144,6 +145,9 @@ export const UNBottomSheetComponent = () => {
|
|
|
144
145
|
case AccountMessage.UNIT_ACCOUNT_CHANGED:
|
|
145
146
|
EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, message.details.account);
|
|
146
147
|
break;
|
|
148
|
+
case ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED:
|
|
149
|
+
EventBus.Instance.event(ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, message.details);
|
|
150
|
+
break;
|
|
147
151
|
case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
|
|
148
152
|
handleCloseFlow();
|
|
149
153
|
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","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_ACTIVATED","Instance","event","CARD_STATUS_CHANGED","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, CardActivatedEvent, 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_ACTIVATED:\n EventBus.Instance.event(CardMessage.CARD_ACTIVATED, (message.details as CardActivatedEvent).card);\n break;\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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"}
|
|
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","ActivityMessage","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_ACTIVATED","Instance","event","CARD_STATUS_CHANGED","UNIT_ACCOUNT_CHANGED","UNIT_ACTIVITY_FILTERS_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, CardActivatedEvent, 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';\nimport { ActivityFiltersChangedEvent, ActivityMessage } from '../../messages/webMessages/activityMessage';\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_ACTIVATED:\n EventBus.Instance.event(CardMessage.CARD_ACTIVATED, (message.details as CardActivatedEvent).card);\n break;\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 ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED:\n EventBus.Instance.event(ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, (message.details as ActivityFiltersChangedEvent));\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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useImperativeHandle","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","injectOpenActionsMenuScript","injectRequestCardActionScript","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","RESPONSE_KEYS","UNCardComponent","forwardRef","props","cardRef","height","setHeight","windowWidth","get","width","walletRef","webRef","openActionsMenu","current","openAction","action","cardStatusChanged","card","onStatusChanged","cardActivated","onCardActivated","requestRefresh","data","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","CARD_STATUS_CHANGED","CARD_ACTIVATED","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","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","createElement","style","ref","presentationMode","Default","params","theme","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useImperativeHandle, 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, injectOpenActionsMenuScript, injectRequestCardActionScript } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNOnLoadResponse, UNCardData, UNError, UNCardMenuAction } 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';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\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: UNOnLoadResponse<UNCardData>) => void\n onStatusChanged?: (card: UNCardData) => void;\n onCardActivated?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\nexport interface CardRef {\n openActionsMenu: () => void;\n openAction:(action: UNCardMenuAction) => void;\n}\n\nexport const UNCardComponent = React.forwardRef<CardRef, UNCardComponentProps>(function UNCardComponent (props, cardRef) {\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 useImperativeHandle(cardRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNCardMenuAction) {\n injectRequestCardActionScript(webRef.current, action);\n }\n }));\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const cardActivated = (card: UNCardData) => {\n if (props.onCardActivated) {\n props.onCardActivated(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 const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.card in response) {\n // CardOnLoadResponse\n props.onLoad(response[RESPONSE_KEYS.card] as UNOnLoadResponse<UNCardData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardMessage.CARD_ACTIVATED, action: cardActivated });\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 handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\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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"}
|
|
1
|
+
{"version":3,"names":["React","useImperativeHandle","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","injectOpenActionsMenuScript","injectRequestCardActionScript","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","RESPONSE_KEYS","UNCardComponent","forwardRef","props","cardRef","height","setHeight","windowWidth","get","width","walletRef","webRef","openActionsMenu","current","openAction","action","cardStatusChanged","card","onStatusChanged","cardActivated","onCardActivated","requestRefresh","data","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","CARD_STATUS_CHANGED","CARD_ACTIVATED","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","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","createElement","style","ref","presentationMode","Default","params","theme","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useImperativeHandle, 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, injectOpenActionsMenuScript, injectRequestCardActionScript } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNOnLoadResponse, UNCardData, UNError, UNCardMenuAction } 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';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n\n // ui\n theme?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: UNOnLoadResponse<UNCardData>) => void\n onStatusChanged?: (card: UNCardData) => void;\n onCardActivated?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\nexport interface CardRef {\n openActionsMenu: () => void;\n openAction:(action: UNCardMenuAction) => void;\n}\n\nexport const UNCardComponent = React.forwardRef<CardRef, UNCardComponentProps>(function UNCardComponent (props, cardRef) {\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 useImperativeHandle(cardRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNCardMenuAction) {\n injectRequestCardActionScript(webRef.current, action);\n }\n }));\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const cardActivated = (card: UNCardData) => {\n if (props.onCardActivated) {\n props.onCardActivated(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 const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.card in response) {\n // CardOnLoadResponse\n props.onLoad(response[RESPONSE_KEYS.card] as UNOnLoadResponse<UNCardData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardMessage.CARD_ACTIVATED, action: cardActivated });\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 handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\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":"AAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACpE,SAASC,UAAU,EAAgBC,IAAI,QAAQ,cAAc;AAE7D,SAAsBC,WAAW,QAAQ,wCAAwC;AACjF,SAAqDC,WAAW,QAAQ,yCAAyC;AACjH,OAAOC,QAAQ,MAAM,wBAAwB;AAC7C,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,iCAAiC;AAChF,SAASC,gBAAgB,QAAQ,2BAA2B;AAE5D,SAASC,aAAa,EAAEC,aAAa,EAAEC,0BAA0B,EAAEC,2BAA2B,EAAEC,2BAA2B,EAAEC,6BAA6B,QAAQ,yBAAyB;AAC3L,SAASC,gBAAgB,QAAQ,6BAA6B;AAE9D,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,gBAAgB,QAAQ,yBAAyB;AAG1D,SAASC,qBAAqB,EAA+DC,iBAAiB,QAAwC,2CAA2C;AAEjM,SAASC,aAAa,QAAiC,0CAA0C;AAuBjG,OAAO,MAAMC,eAAe,gBAAGxB,KAAK,CAACyB,UAAU,CAAgC,SAASD,eAAeA,CAAEE,KAAK,EAAEC,OAAO,EAAE;EACvH,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG1B,QAAQ,CAAC,CAAC,CAAC;EACvC,MAAM2B,WAAW,GAAG1B,UAAU,CAAC2B,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK;EAElD,MAAMC,SAAS,GAAG/B,MAAM,CAAkB,IAAI,CAAC;EAC/C;EACA;;EAEA,MAAMgC,MAAM,GAAGhC,MAAM,CAAU,IAAI,CAAC;EAEpCD,mBAAmB,CAAC0B,OAAO,EAAE,OAAO;IAClCQ,eAAeA,CAAA,EAAG;MAChBnB,2BAA2B,CAACkB,MAAM,CAACE,OAAO,CAAC;IAC7C,CAAC;IACDC,UAAUA,CAACC,MAAwB,EAAE;MACnCrB,6BAA6B,CAACiB,MAAM,CAACE,OAAO,EAAEE,MAAM,CAAC;IACvD;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,iBAAiB,GAAIC,IAAgB,IAAK;IAC9C,IAAId,KAAK,CAACe,eAAe,EAAE;MACzBf,KAAK,CAACe,eAAe,CAACD,IAAI,CAAC;IAC7B;EACF,CAAC;EAED,MAAME,aAAa,GAAIF,IAAgB,IAAK;IAC1C,IAAId,KAAK,CAACiB,eAAe,EAAE;MACzBjB,KAAK,CAACiB,eAAe,CAACH,IAAI,CAAC;IAC7B;EACF,CAAC;EAED,MAAMI,cAAc,GAAIC,IAAyB,IAAK;IACpD/B,0BAA0B,CAACoB,MAAM,CAACE,OAAO,EAAES,IAAI,EAAEnB,KAAK,CAACoB,MAAM,CAAC;EAChE,CAAC;EAED,MAAMC,qBAAqB,GAAG,MAAOF,IAAoC,IAAK;IAC5E,IAAIA,IAAI,CAACC,MAAM,KAAKpB,KAAK,CAACoB,MAAM,EAAE;IAClCE,oBAAoB,EAAE;EACxB,CAAC;EAED,MAAMC,oBAAoB,GAAIJ,IAAmC,IAAK;IACpE,IAAIA,IAAI,CAACC,MAAM,KAAKpB,KAAK,CAACoB,MAAM,EAAE;IAClCI,UAAU,EAAE;EACd,CAAC;EAED,MAAMC,gBAAgB,GAAIC,QAAiC,IAAK;IAC9D,IAAI,CAAC1B,KAAK,CAAC2B,MAAM,EAAE;MACjB;IACF;IAEA,IAAI9B,aAAa,CAAC+B,MAAM,IAAIF,QAAQ,EAAE;MACpC1B,KAAK,CAAC2B,MAAM,CAACD,QAAQ,CAAY;MACjC;IACF;IAEA,IAAI7B,aAAa,CAACiB,IAAI,IAAIY,QAAQ,EAAE;MAClC;MACA1B,KAAK,CAAC2B,MAAM,CAACD,QAAQ,CAAC7B,aAAa,CAACiB,IAAI,CAAC,CAAiC;MAC1E;IACF;IAEAe,OAAO,CAACC,KAAK,CAAC,yCAAyC,CAAC;IACxD;EACF,CAAC;EAED7C,gBAAgB,CAAC;IAAE8C,WAAW,EAAElD,WAAW,CAACmD,oBAAoB;IAAEpB,MAAM,EAAEM;EAAe,CAAC,CAAC;EAC3FjC,gBAAgB,CAAC;IAAE8C,WAAW,EAAEtC,WAAW,CAACwC,mBAAmB;IAAErB,MAAM,EAAEC;EAAkB,CAAC,CAAC;EAC7F5B,gBAAgB,CAAC;IAAE8C,WAAW,EAAEtC,WAAW,CAACyC,cAAc;IAAEtB,MAAM,EAAEI;EAAc,CAAC,CAAC;EACpF/B,gBAAgB,CAAC;IAAE8C,WAAW,EAAEnC,iBAAiB,CAACuC,4BAA4B;IAAEvB,MAAM,EAAES;EAAsB,CAAC,CAAC;EAChHpC,gBAAgB,CAAC;IAAE8C,WAAW,EAAEnC,iBAAiB,CAACwC,6BAA6B;IAAExB,MAAM,EAAEW;EAAqB,CAAC,CAAC;EAEhH,MAAMc,aAAa,GAAIC,OAAuB,IAAK;IACjD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACC,OAAO,EAAE;IAElC,QAAQD,OAAO,CAACE,IAAI;MAClB,KAAK3D,WAAW,CAAC4D,sBAAsB;QAAE;UACvC,MAAMC,KAA0B,GAAG;YACjCC,aAAa,EAAE3D,gBAAgB,CAAC8B,IAAI;YACpC8B,mBAAmB,EAAE5C,KAAK,CAACoB,MAAM;YACjCyB,qBAAqB,EAAEP,OAAO,CAACC;UACjC,CAAC;UACDzD,QAAQ,CAACgE,QAAQ,CAACJ,KAAK,CAAC7D,WAAW,CAAC4D,sBAAsB,EAAEC,KAAK,CAAC;UAClE;QACF;MACA,KAAK9D,WAAW,CAACmE,WAAW;QAC1B5C,SAAS,CAAEmC,OAAO,CAACC,OAAO,CAAiBrC,MAAM,CAAC;QAClD;MACF,KAAKrB,WAAW,CAACmE,YAAY;QAC3BvB,gBAAgB,CAACa,OAAO,CAACC,OAAO,CAA4B;QAC5D;IAAM;EAEZ,CAAC;EAED,MAAMf,UAAU,GAAG,MAAAA,CAAA,KAAY;IAE7B,IAAI;MAEF,MAAMyB,cAAc,GAAG,MAAMvD,gBAAgB,CAACM,KAAK,CAACkD,aAAa,EAAElD,KAAK,CAACoB,MAAM,EAAEpB,KAAK,CAACmD,sBAAsB,CAAiB;MAE9H,IAAI,CAACF,cAAc,EAAE;MAErB1C,SAAS,CAACG,OAAO,GAAGuC,cAAc;MAElC,MAAMG,YAA0C,GAAG;QAAEC,MAAM,EAAEJ,cAAc,CAACI;MAAO,CAAC;MACpFvE,QAAQ,CAACgE,QAAQ,CAACJ,KAAK,CAAC9C,iBAAiB,CAAC0D,gCAAgC,EAAEF,YAAY,CAAC;IAC3F,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAACA,KAAK,CAAC;IACtB;EACF,CAAC;EAED,MAAMR,oBAAoB,GAAG,MAAAA,CAAA,KAAY;IACvC,IAAI;MACF,MAAMjC,2BAA2B,CAACW,KAAK,CAACmD,sBAAsB,EAAkB5C,SAAS,CAACG,OAAO,CAAC;IACpG,CAAC,CAAC,OAAOoB,KAAK,EAAE;MACd,IAAIA,KAAK,YAAYyB,KAAK,EAAE;QAC1B,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAAC5B,KAAK,CAACQ,OAAO,CAAC;QAC7C,IAAIkB,WAAW,CAACG,IAAI,KAAKhE,qBAAqB,CAACiE,wBAAwB,EAAE;MAC3E;MACA/B,OAAO,CAACgC,GAAG,CAAC/B,KAAK,CAAC;IACpB;EACF,CAAC;EAED,oBACExD,KAAA,CAAAwF,aAAA,CAACnF,IAAI;IAACoF,KAAK,EAAE;MAAE7D;IAAO;EAAE,gBACtB5B,KAAA,CAAAwF,aAAA,CAAC/E,YAAY;IACXiF,GAAG,EAAExD,MAAO;IACZgC,IAAI,EAAExD,gBAAgB,CAAC8B,IAAK;IAC5BmD,gBAAgB,EAAEzE,gBAAgB,CAAC0E,OAAQ;IAC3CC,MAAM,EAAEjF,aAAa,CAACc,KAAK,CAAE;IAC7BoE,KAAK,EAAEpE,KAAK,CAACoE,KAAM;IACnBC,MAAM,EAAElF,aAAa,EAAG;IACxBmF,SAAS,EAAEhC,OAAO,IAAID,aAAa,CAACC,OAAO,CAAE;IAC7ChC,KAAK,EAAEF,WAAY;IACnBmE,YAAY,EAAE;EAAM,EACpB,CACG;AAEX,CAAC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { View, NativeModules, Platform } from 'react-native';
|
|
3
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
4
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
5
|
+
import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
6
|
+
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
7
|
+
import { getCheckDepositParams, getCheckDepositScript } from './UNCheckDepositComponent.utils';
|
|
8
|
+
import { CheckMessage } from '../../messages/webMessages/checkMessage';
|
|
9
|
+
import { RESPONSE_KEYS } from '../../messages/webMessages/onLoadMessage';
|
|
10
|
+
const {
|
|
11
|
+
Camera
|
|
12
|
+
} = NativeModules;
|
|
13
|
+
export const UNCheckDepositComponent = props => {
|
|
14
|
+
const [height, setHeight] = useState(0);
|
|
15
|
+
const [presentationMode, setPresentationMode] = useState(PresentationMode.Inherit);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const requestCameraAccess = async () => {
|
|
18
|
+
try {
|
|
19
|
+
await Camera.requestAccess();
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error(error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
if (Platform.OS == 'ios') {
|
|
26
|
+
requestCameraAccess();
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
const handleUnitOnLoad = response => {
|
|
30
|
+
if (!props.onLoad) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (RESPONSE_KEYS.errors in response) {
|
|
34
|
+
props.onLoad(response);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (RESPONSE_KEYS.account in response) {
|
|
38
|
+
// AccountOnLoadResponse;
|
|
39
|
+
props.onLoad(response[RESPONSE_KEYS.account]);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
console.error('On Load Error: unexpected response type');
|
|
43
|
+
return;
|
|
44
|
+
};
|
|
45
|
+
const handleWebViewMessage = message => {
|
|
46
|
+
if (!message || !message.details) return;
|
|
47
|
+
switch (message.type) {
|
|
48
|
+
case CheckMessage.CHECK_DEPOSIT_CREATED:
|
|
49
|
+
props.onDepositCreated && props.onDepositCreated(message.details);
|
|
50
|
+
break;
|
|
51
|
+
case CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST:
|
|
52
|
+
props.onRestartRequest && props.onRestartRequest(message.details);
|
|
53
|
+
break;
|
|
54
|
+
case UnitMessage.UNIT_ON_LOAD:
|
|
55
|
+
handleUnitOnLoad(message.details);
|
|
56
|
+
break;
|
|
57
|
+
case PageMessage.PAGE_HEIGHT:
|
|
58
|
+
{
|
|
59
|
+
const currentHeight = message.details.height;
|
|
60
|
+
setHeight(currentHeight);
|
|
61
|
+
if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {
|
|
62
|
+
setPresentationMode(PresentationMode.Default);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const renderBookPaymentWebView = () => {
|
|
69
|
+
return /*#__PURE__*/React.createElement(WebComponent, {
|
|
70
|
+
type: WebComponentType.checkDeposit,
|
|
71
|
+
presentationMode: presentationMode,
|
|
72
|
+
params: getCheckDepositParams(props),
|
|
73
|
+
script: getCheckDepositScript(),
|
|
74
|
+
onMessage: message => handleWebViewMessage(message),
|
|
75
|
+
theme: props.theme,
|
|
76
|
+
isScrollable: true
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
if (presentationMode === PresentationMode.Inherit) {
|
|
80
|
+
return renderBookPaymentWebView();
|
|
81
|
+
}
|
|
82
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
83
|
+
style: {
|
|
84
|
+
height: height
|
|
85
|
+
}
|
|
86
|
+
}, renderBookPaymentWebView());
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=UNCheckDepositComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","NativeModules","Platform","WebComponent","WebComponentType","PresentationMode","PageMessage","UnitMessage","getCheckDepositParams","getCheckDepositScript","CheckMessage","RESPONSE_KEYS","Camera","UNCheckDepositComponent","props","height","setHeight","presentationMode","setPresentationMode","Inherit","requestCameraAccess","requestAccess","error","console","OS","handleUnitOnLoad","response","onLoad","errors","account","handleWebViewMessage","message","details","type","CHECK_DEPOSIT_CREATED","onDepositCreated","CHECK_DEPOSIT_RESTART_REQUEST","onRestartRequest","UNIT_ON_LOAD","PAGE_HEIGHT","currentHeight","Default","renderBookPaymentWebView","createElement","checkDeposit","params","script","onMessage","theme","isScrollable","style"],"sources":["UNCheckDepositComponent.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { View, NativeModules, Platform } from 'react-native';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { getCheckDepositParams, getCheckDepositScript } from './UNCheckDepositComponent.utils';\nimport { CheckMessage } from '../../messages/webMessages/checkMessage';\nimport type { UNCheckDepositData } from '../../sharedTypes/checkDeposit.types';\nimport type { UNAccountData, UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../sharedTypes';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\n\nconst { Camera } = NativeModules;\n\nexport interface UNCheckDepositComponentProps {\n accountId: string;\n fee: number;\n customerToken: string;\n theme?: string;\n onLoad?: (response: UNOnLoadResponse<UNAccountData>) => void;\n onDepositCreated?: (checkData: UNCheckDepositData) => void\n onRestartRequest?: (checkData: UNCheckDepositData) => void\n}\n\nexport const UNCheckDepositComponent = (props: UNCheckDepositComponentProps) => {\n const [height, setHeight] = useState<number>(0);\n const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);\n\n useEffect(() => {\n const requestCameraAccess = async () => {\n try {\n await Camera.requestAccess();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n console.error(error);\n }\n };\n\n if (Platform.OS == 'ios') {\n requestCameraAccess();\n }\n }, []);\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.account in response) {\n // AccountOnLoadResponse;\n props.onLoad(response[RESPONSE_KEYS.account] as UNOnLoadResponseData<UNAccountData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n const handleWebViewMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case CheckMessage.CHECK_DEPOSIT_CREATED:\n props.onDepositCreated && props.onDepositCreated(message.details as UNCheckDepositData);\n break;\n case CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST:\n props.onRestartRequest && props.onRestartRequest(message.details as UNCheckDepositData);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n case PageMessage.PAGE_HEIGHT: {\n const currentHeight = (message.details as HeightEvent).height;\n setHeight(currentHeight);\n if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {\n setPresentationMode(PresentationMode.Default);\n }\n break;\n }\n }\n };\n\n const renderBookPaymentWebView = () => {\n return (\n <WebComponent\n type={WebComponentType.checkDeposit}\n presentationMode={presentationMode}\n params={getCheckDepositParams(props)}\n script={getCheckDepositScript()}\n onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}\n theme={props.theme}\n isScrollable={true}\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":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CheckMessage } from '../../messages/webMessages/checkMessage';
|
|
2
|
+
export const getCheckDepositParams = props => {
|
|
3
|
+
return `
|
|
4
|
+
account-id="${props.accountId}"
|
|
5
|
+
fee="${props.fee}"
|
|
6
|
+
customer-token="${props.customerToken}"
|
|
7
|
+
`;
|
|
8
|
+
};
|
|
9
|
+
const CHECK_DEPOSIT_LISTENERS = {
|
|
10
|
+
paymentCreated: `
|
|
11
|
+
window.addEventListener("${CheckMessage.CHECK_DEPOSIT_CREATED}", (e) => {
|
|
12
|
+
const response = e.detail
|
|
13
|
+
response.then((data) => {
|
|
14
|
+
postMessageToSDK({ type: "${CheckMessage.CHECK_DEPOSIT_CREATED}", details: data.data })
|
|
15
|
+
}).catch((e) => {
|
|
16
|
+
console.log(e)
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
`,
|
|
20
|
+
restartRequest: `
|
|
21
|
+
window.addEventListener("${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}", (e) => {
|
|
22
|
+
const response = e.detail
|
|
23
|
+
response.then((data) => {
|
|
24
|
+
postMessageToSDK({ type: "${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}", details: data.data })
|
|
25
|
+
}).catch((e) => {
|
|
26
|
+
console.log(e)
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
`
|
|
30
|
+
};
|
|
31
|
+
export const getCheckDepositScript = () => {
|
|
32
|
+
return `
|
|
33
|
+
${CHECK_DEPOSIT_LISTENERS.paymentCreated}
|
|
34
|
+
${CHECK_DEPOSIT_LISTENERS.restartRequest}
|
|
35
|
+
`;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=UNCheckDepositComponent.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CheckMessage","getCheckDepositParams","props","accountId","fee","customerToken","CHECK_DEPOSIT_LISTENERS","paymentCreated","CHECK_DEPOSIT_CREATED","restartRequest","CHECK_DEPOSIT_RESTART_REQUEST","getCheckDepositScript"],"sources":["UNCheckDepositComponent.utils.ts"],"sourcesContent":["import { CheckMessage } from '../../messages/webMessages/checkMessage';\nimport type { UNCheckDepositComponentProps } from './UNCheckDepositComponent';\n\nexport const getCheckDepositParams = (props: UNCheckDepositComponentProps) => {\n return `\n account-id=\"${props.accountId}\"\n fee=\"${props.fee}\"\n customer-token=\"${props.customerToken}\"\n `;\n};\n\nconst CHECK_DEPOSIT_LISTENERS = {\n paymentCreated: `\n window.addEventListener(\"${CheckMessage.CHECK_DEPOSIT_CREATED}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${CheckMessage.CHECK_DEPOSIT_CREATED}\", details: data.data })\n }).catch((e) => {\n console.log(e)\n })\n });\n `,\n restartRequest: `\n window.addEventListener(\"${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"${CheckMessage.CHECK_DEPOSIT_RESTART_REQUEST}\", details: data.data })\n }).catch((e) => {\n console.log(e)\n })\n });\n `\n};\n\nexport const getCheckDepositScript = () => {\n return `\n ${CHECK_DEPOSIT_LISTENERS.paymentCreated}\n ${CHECK_DEPOSIT_LISTENERS.restartRequest}\n `;\n};\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yCAAyC;AAGtE,OAAO,MAAMC,qBAAqB,GAAIC,KAAmC,IAAK;EAC5E,OAAQ;AACV,kBAAkBA,KAAK,CAACC,SAAU;AAClC,WAAWD,KAAK,CAACE,GAAI;AACrB,sBAAsBF,KAAK,CAACG,aAAc;AAC1C,GAAG;AACH,CAAC;AAED,MAAMC,uBAAuB,GAAG;EAC9BC,cAAc,EAAG;AACnB,+BAA+BP,YAAY,CAACQ,qBAAsB;AAClE;AACA;AACA,sCAAsCR,YAAY,CAACQ,qBAAsB;AACzE;AACA;AACA;AACA;AACA,GAAG;EACDC,cAAc,EAAG;AACnB,+BAA+BT,YAAY,CAACU,6BAA8B;AAC1E;AACA;AACA,sCAAsCV,YAAY,CAACU,6BAA8B;AACjF;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzC,OAAQ;AACV,MAAML,uBAAuB,CAACC,cAAe;AAC7C,MAAMD,uBAAuB,CAACG,cAAe;AAC7C,GAAG;AACH,CAAC"}
|
|
@@ -3,6 +3,7 @@ export * from './UNBottomSheetComponent/UNBottomSheetComponent';
|
|
|
3
3
|
export * from './UNBookPaymentComponent/UNBookPaymentComponent';
|
|
4
4
|
export * from './UNActivityComponent/UNActivityComponent';
|
|
5
5
|
export * from './UNAccountComponent/UNAccountComponent';
|
|
6
|
+
export * from './UNCheckDepositComponent/UNCheckDepositComponent';
|
|
6
7
|
export * from './UNACHDebitComponent/UNACHDebitComponent';
|
|
7
8
|
export * from './UNACHCreditComponent/UNACHCreditComponent';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\nexport * from './UNAccountComponent/UNAccountComponent';\nexport * from './UNACHDebitComponent/UNACHDebitComponent';\nexport * from './UNACHCreditComponent/UNACHCreditComponent';\n"],"mappings":"AAAA,cAAc,mCAAmC;AACjD,cAAc,iDAAiD;AAC/D,cAAc,iDAAiD;AAC/D,cAAc,2CAA2C;AACzD,cAAc,yCAAyC;AACvD,cAAc,2CAA2C;AACzD,cAAc,6CAA6C"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\nexport * from './UNAccountComponent/UNAccountComponent';\nexport * from './UNCheckDepositComponent/UNCheckDepositComponent';\nexport * from './UNACHDebitComponent/UNACHDebitComponent';\nexport * from './UNACHCreditComponent/UNACHCreditComponent';\n"],"mappings":"AAAA,cAAc,mCAAmC;AACjD,cAAc,iDAAiD;AAC/D,cAAc,iDAAiD;AAC/D,cAAc,2CAA2C;AACzD,cAAc,yCAAyC;AACvD,cAAc,mDAAmD;AACjE,cAAc,2CAA2C;AACzD,cAAc,6CAA6C"}
|
|
@@ -16,7 +16,10 @@ export const useListenerToBus = listener => {
|
|
|
16
16
|
|
|
17
17
|
// Call to action when event is changed. (To be updated with the current props).
|
|
18
18
|
useEffect(() => {
|
|
19
|
-
eventData
|
|
19
|
+
if (eventData == null || eventData == undefined) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
listener.action(eventData);
|
|
20
23
|
}, [eventData]);
|
|
21
24
|
};
|
|
22
25
|
//# sourceMappingURL=listenerToBus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","EventBus","useListenerToBus","listener","eventData","setEventData","callback","Instance","addListener","busEventKey","removeListener","action"],"sources":["listenerToBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react';\nimport EventBus, { BusEventKey } from '../helpers/EventBus';\n\ntype Listener = {\n busEventKey: BusEventKey,\n action: (data: any) => void\n}\n\nexport const useListenerToBus = (listener: Listener) => {\n const [eventData, setEventData] = useState<any>();\n const callback = (eventData: any) => setEventData(eventData);\n\n useEffect(() => {\n // listen to callback\n EventBus.Instance.addListener(listener.busEventKey, callback);\n\n // Remove listener on UnMount.\n return (() => {\n EventBus.Instance.removeListener(callback);\n });\n }, []);\n\n // Call to action when event is changed. (To be updated with the current props).\n useEffect(() => {\n eventData
|
|
1
|
+
{"version":3,"names":["useEffect","useState","EventBus","useListenerToBus","listener","eventData","setEventData","callback","Instance","addListener","busEventKey","removeListener","undefined","action"],"sources":["listenerToBus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react';\nimport EventBus, { BusEventKey } from '../helpers/EventBus';\n\ntype Listener = {\n busEventKey: BusEventKey,\n action: (data: any) => void\n}\n\nexport const useListenerToBus = (listener: Listener) => {\n const [eventData, setEventData] = useState<any>();\n const callback = (eventData: any) => setEventData(eventData);\n\n useEffect(() => {\n // listen to callback\n EventBus.Instance.addListener(listener.busEventKey, callback);\n\n // Remove listener on UnMount.\n return (() => {\n EventBus.Instance.removeListener(callback);\n });\n }, []);\n\n // Call to action when event is changed. (To be updated with the current props).\n useEffect(() => {\n if (eventData == null || eventData == undefined) {\n return;\n }\n listener.action(eventData);\n }, [eventData]);\n};\n"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,OAAOC,QAAQ,MAAuB,qBAAqB;AAO3D,OAAO,MAAMC,gBAAgB,GAAIC,QAAkB,IAAK;EACtD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,EAAO;EACjD,MAAMM,QAAQ,GAAIF,SAAc,IAAKC,YAAY,CAACD,SAAS,CAAC;EAE5DL,SAAS,CAAC,MAAM;IACd;IACAE,QAAQ,CAACM,QAAQ,CAACC,WAAW,CAACL,QAAQ,CAACM,WAAW,EAAEH,QAAQ,CAAC;;IAE7D;IACA,OAAQ,MAAM;MACZL,QAAQ,CAACM,QAAQ,CAACG,cAAc,CAACJ,QAAQ,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAP,SAAS,CAAC,MAAM;IACd,IAAIK,SAAS,IAAI,IAAI,IAAIA,SAAS,IAAIO,SAAS,EAAE;MAC/C;IACF;IACAR,QAAQ,CAACS,MAAM,CAACR,SAAS,CAAC;EAC5B,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ActivityMessage"],"sources":["activityMessage.ts"],"sourcesContent":["export enum ActivityMessage {\n UNIT_ACTIVITY_FILTERS_CHANGED = 'unitActivityFiltersChanged'\n}\n\nexport type ActivityFiltersChangedEvent = string\n\nexport type ActivityEvent =\n | ActivityFiltersChangedEvent\n"],"mappings":"AAAA,WAAYA,eAAe;AAE1B,WAFWA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,KAAfA,eAAe"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export let CheckMessage;
|
|
2
|
+
(function (CheckMessage) {
|
|
3
|
+
CheckMessage["CHECK_DEPOSIT_CREATED"] = "unitCheckDepositCreated";
|
|
4
|
+
CheckMessage["CHECK_DEPOSIT_RESTART_REQUEST"] = "unitCheckDepositRestartRequest";
|
|
5
|
+
})(CheckMessage || (CheckMessage = {}));
|
|
6
|
+
//# sourceMappingURL=checkMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CheckMessage"],"sources":["checkMessage.ts"],"sourcesContent":["import type { UNCheckDepositData } from '../../sharedTypes/checkDeposit.types';\n\nexport enum CheckMessage {\n // check deposit\n CHECK_DEPOSIT_CREATED = 'unitCheckDepositCreated',\n CHECK_DEPOSIT_RESTART_REQUEST = 'unitCheckDepositRestartRequest'\n}\n\nexport type CheckDepositCreatedEvent = UNCheckDepositData\nexport type CheckDepositRestartRequestEvent = UNCheckDepositData\n\nexport type CheckEvent =\n| CheckDepositCreatedEvent\n| CheckDepositRestartRequestEvent\n"],"mappings":"AAEA,WAAYA,YAAY;AAIvB,WAJWA,YAAY;EAAZA,YAAY;EAAZA,YAAY;AAAA,GAAZA,YAAY,KAAZA,YAAY"}
|
|
@@ -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';\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
|
+
{"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';\nimport type { CheckEvent, CheckMessage } from './checkMessage';\nimport type { ActivityEvent, ActivityMessage } from './activityMessage';\n\nexport type WebViewMessageType =\n | PageMessage\n | CardMessage\n | UnitMessage\n | PaymentMessage\n | AccountMessage\n | CheckMessage\n | ActivityMessage\n\ntype WebViewEvent =\n | PageEvent\n | UnitEvent\n | CardEvent\n | BookPaymentEvent\n | PaymentMessage\n | ACHEvent\n | AccountEvent\n | CheckEvent\n | ActivityEvent\n\nexport interface WebViewMessage {\n type: WebViewMessageType,\n details?: WebViewEvent\n}\n"],"mappings":""}
|
|
@@ -3,6 +3,7 @@ import { CardMessage } from '../../messages/webMessages/cardMessage';
|
|
|
3
3
|
import { PageMessage } from '../../messages/webMessages/pageMessage';
|
|
4
4
|
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
5
5
|
import { AccountMessage } from '../../messages/webMessages/accountMessage';
|
|
6
|
+
import { ActivityMessage } from '../../messages/webMessages/activityMessage';
|
|
6
7
|
export const POST_MESSAGE_TO_SDK = `
|
|
7
8
|
const postMessageToSDK = (message) => {
|
|
8
9
|
if ('ReactNativeWebView' in window) {
|
|
@@ -99,6 +100,11 @@ export const LISTENERS = {
|
|
|
99
100
|
console.log(e)
|
|
100
101
|
})
|
|
101
102
|
});
|
|
103
|
+
`,
|
|
104
|
+
unitActivityFiltersChanged: `
|
|
105
|
+
window.addEventListener("${ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED}", (e) => {
|
|
106
|
+
postMessageToSDK({ type: "${ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED}", details: e.detail })
|
|
107
|
+
});
|
|
102
108
|
`
|
|
103
109
|
};
|
|
104
110
|
export const DISPATCH_RENDERING_EVENT = `
|
|
@@ -113,6 +119,12 @@ export const DISPATCH_REQUEST_REFRESH = `
|
|
|
113
119
|
window.dispatchEvent(event)
|
|
114
120
|
}
|
|
115
121
|
`;
|
|
122
|
+
export const DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT = `
|
|
123
|
+
const dispatchActivityFilterChangedEvent = (details) => {
|
|
124
|
+
const event = new CustomEvent("${ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED}",{ detail: details });
|
|
125
|
+
window.dispatchEvent(event);
|
|
126
|
+
}
|
|
127
|
+
`;
|
|
116
128
|
export const DISPATCH_PLAID_RESPONSE = `
|
|
117
129
|
const dispatchPlaidEvent = (details) => {
|
|
118
130
|
const event = new CustomEvent("${UnitMessage.UNIT_PLAID_RESPONSE}",{ detail: details })
|
|
@@ -129,4 +141,9 @@ export const DISPATCH_REQUEST_CARD_ACTION = `
|
|
|
129
141
|
document.querySelector("unit-elements-card").dispatchEvent(new CustomEvent("unitRequestCardAction", {detail: {action: action}}))
|
|
130
142
|
}
|
|
131
143
|
`;
|
|
144
|
+
export const DISPATCH_REQUEST_ACCOUNT_ACTION = `
|
|
145
|
+
const dispatchRequestAccountAction = (action) => {
|
|
146
|
+
document.querySelector("unit-elements-account").dispatchEvent(new CustomEvent("unitRequestAccountAction", {detail: {action: action}}))
|
|
147
|
+
}
|
|
148
|
+
`;
|
|
132
149
|
//# sourceMappingURL=bodyScript.js.map
|