react-native-unit-components 1.0.4 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -8
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +6 -1
- package/android/src/main/java/com/unitreactnativecomponents/getapplicationid/UNAppInfoModule.kt +35 -0
- package/lib/commonjs/assets/images/index.js +0 -2
- package/lib/commonjs/assets/images/index.js.map +1 -1
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +64 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +31 -0
- package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +108 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +58 -0
- package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +3 -29
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +0 -11
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +2 -22
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +0 -8
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -23
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -9
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -59
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +0 -3
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +0 -10
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +2 -24
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +0 -3
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +13 -41
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +3 -17
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +0 -2
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +2 -9
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -1
- package/lib/commonjs/components/index.js +22 -10
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +5 -47
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +0 -5
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/commonjs/helpers/EventBus.js +4 -17
- package/lib/commonjs/helpers/EventBus.js.map +1 -1
- package/lib/commonjs/hooks/listenerToBus.js +14 -14
- package/lib/commonjs/hooks/listenerToBus.js.map +1 -1
- package/lib/commonjs/hooks/useAppStateListener.js +1 -6
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -1
- package/lib/commonjs/index.js +0 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/cardMessage.js +0 -5
- package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js +0 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/achCreditMessage.js +6 -0
- package/lib/commonjs/messages/webMessages/achCreditMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js +0 -7
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/cardMessage.js +0 -1
- package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/index.js.map +1 -1
- package/lib/commonjs/messages/webMessages/pageMessage.js +0 -1
- package/lib/commonjs/messages/webMessages/pageMessage.js.map +1 -1
- package/lib/commonjs/messages/webMessages/paymentsMessage.js +12 -0
- package/lib/commonjs/messages/webMessages/paymentsMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js +3 -1
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js +0 -2
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyHtml.js +0 -8
- package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -1
- package/lib/commonjs/scripts/html/bodyScript.js +24 -6
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/achCredit.types.js +6 -0
- package/lib/commonjs/sharedTypes/achCredit.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/index.js +22 -6
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/sharedTypes/payments.types.js +12 -0
- package/lib/commonjs/sharedTypes/payments.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/wallet.types.js +0 -3
- package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -1
- package/lib/commonjs/styles/variables.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js +1 -15
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +3 -20
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +7 -36
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.utils.js +0 -7
- package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -1
- package/lib/commonjs/webComponent/html.js +7 -8
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +55 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js +23 -0
- package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.utils.js.map +1 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +99 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js +48 -0
- package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.utils.js.map +1 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +3 -11
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +2 -9
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -11
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -3
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +4 -35
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +2 -7
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.js +13 -20
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +3 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +1 -2
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -1
- package/lib/module/components/index.js +2 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.js +5 -31
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/module/helpers/EventBus.js +4 -15
- package/lib/module/helpers/EventBus.js.map +1 -1
- package/lib/module/hooks/listenerToBus.js +14 -10
- package/lib/module/hooks/listenerToBus.js.map +1 -1
- package/lib/module/hooks/useAppStateListener.js +0 -2
- package/lib/module/hooks/useAppStateListener.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/messages/nativeMessages/cardMessage.js +0 -5
- package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js +0 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -1
- package/lib/module/messages/webMessages/achCreditMessage.js +2 -0
- package/lib/module/messages/webMessages/achCreditMessage.js.map +1 -0
- package/lib/module/messages/webMessages/bookPaymentMessage.js +1 -5
- package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -1
- package/lib/module/messages/webMessages/cardMessage.js +0 -1
- package/lib/module/messages/webMessages/cardMessage.js.map +1 -1
- package/lib/module/messages/webMessages/index.js.map +1 -1
- package/lib/module/messages/webMessages/pageMessage.js +0 -1
- package/lib/module/messages/webMessages/pageMessage.js.map +1 -1
- package/lib/module/messages/webMessages/paymentsMessage.js +5 -0
- package/lib/module/messages/webMessages/paymentsMessage.js.map +1 -0
- package/lib/module/messages/webMessages/unitMessages.js +3 -1
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -1
- package/lib/module/scripts/html/bodyHtml.js +0 -7
- package/lib/module/scripts/html/bodyHtml.js.map +1 -1
- package/lib/module/scripts/html/bodyScript.js +22 -1
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/achCredit.types.js +2 -0
- package/lib/module/sharedTypes/achCredit.types.js.map +1 -0
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/module/sharedTypes/index.js +2 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/sharedTypes/payments.types.js +5 -0
- package/lib/module/sharedTypes/payments.types.js.map +1 -0
- package/lib/module/sharedTypes/wallet.types.js +0 -3
- package/lib/module/sharedTypes/wallet.types.js.map +1 -1
- package/lib/module/styles/variables.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdk.api.js +1 -6
- package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js +3 -12
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +7 -18
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/WebComponent.utils.js +0 -1
- package/lib/module/webComponent/WebComponent.utils.js.map +1 -1
- package/lib/module/webComponent/html.js +7 -5
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +11 -0
- package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.utils.d.ts +3 -0
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +11 -0
- package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.utils.d.ts +7 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +1 -1
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
- package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +2 -0
- package/lib/typescript/helpers/EventBus.d.ts +1 -1
- package/lib/typescript/hooks/listenerToBus.d.ts +2 -2
- package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +1 -1
- package/lib/typescript/messages/nativeMessages/index.d.ts +2 -2
- package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/achCreditMessage.d.ts +5 -0
- package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +1 -4
- package/lib/typescript/messages/webMessages/cardMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/index.d.ts +5 -3
- package/lib/typescript/messages/webMessages/pageMessage.d.ts +1 -1
- package/lib/typescript/messages/webMessages/paymentsMessage.d.ts +3 -0
- package/lib/typescript/messages/webMessages/unitMessages.d.ts +20 -2
- package/lib/typescript/nativeComponent/UnitAddToWalletButton.d.ts +1 -1
- package/lib/typescript/scripts/html/bodyScript.d.ts +3 -0
- package/lib/typescript/sharedTypes/achCredit.types.d.ts +31 -0
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -4
- package/lib/typescript/sharedTypes/card.types.d.ts +4 -4
- package/lib/typescript/sharedTypes/index.d.ts +2 -0
- package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +3 -3
- package/lib/typescript/sharedTypes/payments.types.d.ts +12 -0
- package/lib/typescript/sharedTypes/types.d.ts +6 -6
- package/lib/typescript/webComponent/WebComponent.d.ts +3 -1
- package/package.json +4 -2
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +73 -0
- package/src/components/UNACHCreditComponent/UNACHCreditComponent.utils.ts +26 -0
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +117 -0
- package/src/components/UNACHDebitComponent/UNACHDebitComponent.utils.ts +48 -0
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +2 -4
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +1 -3
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +3 -2
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -3
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +2 -4
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +1 -3
- package/src/components/UNCardComponent/UNCardComponent.tsx +14 -7
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +3 -0
- package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +1 -1
- package/src/components/index.ts +2 -0
- package/src/helpers/BottomSheet/BottomSheet.tsx +3 -7
- package/src/hooks/listenerToBus.ts +15 -10
- package/src/messages/webMessages/achCreditMessage.ts +8 -0
- package/src/messages/webMessages/bookPaymentMessage.ts +0 -4
- package/src/messages/webMessages/index.ts +7 -2
- package/src/messages/webMessages/paymentsMessage.ts +3 -0
- package/src/messages/webMessages/unitMessages.ts +25 -1
- package/src/scripts/html/bodyScript.ts +23 -1
- package/src/sharedTypes/achCredit.types.ts +32 -0
- package/src/sharedTypes/bookPayment.types.ts +2 -3
- package/src/sharedTypes/index.ts +2 -0
- package/src/sharedTypes/payments.types.ts +14 -0
- package/src/webComponent/WebComponent.tsx +5 -5
- package/src/webComponent/html.ts +7 -5
|
@@ -16,20 +16,16 @@ import { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSh
|
|
|
16
16
|
import { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';
|
|
17
17
|
import { AccountAction } from '../UNAccountComponent/UNAccountComponent';
|
|
18
18
|
export let ScrollState;
|
|
19
|
-
|
|
20
19
|
(function (ScrollState) {
|
|
21
20
|
ScrollState["onTop"] = "onTop";
|
|
22
21
|
ScrollState["unScrollable"] = "unScrollable";
|
|
23
22
|
ScrollState["onlyWebView"] = "webViewScroll";
|
|
24
23
|
ScrollState["onlyBottomSheet"] = "onlyBottomSheet";
|
|
25
24
|
})(ScrollState || (ScrollState = {}));
|
|
26
|
-
|
|
27
25
|
var CustomDialog;
|
|
28
|
-
|
|
29
26
|
(function (CustomDialog) {
|
|
30
27
|
CustomDialog[CustomDialog["addToWallet"] = 0] = "addToWallet";
|
|
31
28
|
})(CustomDialog || (CustomDialog = {}));
|
|
32
|
-
|
|
33
29
|
export const UNBottomSheetComponent = () => {
|
|
34
30
|
const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);
|
|
35
31
|
const [height, setHeight] = useState(0);
|
|
@@ -42,23 +38,19 @@ export const UNBottomSheetComponent = () => {
|
|
|
42
38
|
const isAppActive = useAppStateListener();
|
|
43
39
|
const styles = getStylesObject();
|
|
44
40
|
const webRef = useRef(null);
|
|
45
|
-
|
|
46
41
|
const handleRequestRendering = data => {
|
|
47
42
|
setBottomSheetSlotData(data);
|
|
48
43
|
setIsBottomSheetActive(true);
|
|
49
44
|
setRequestRenderingEvent(data.requestRenderingEvent);
|
|
50
45
|
};
|
|
51
|
-
|
|
52
46
|
const handleCloseFlow = () => {
|
|
53
47
|
setIsBottomSheetActive(false);
|
|
54
48
|
};
|
|
55
|
-
|
|
56
49
|
useEffect(() => {
|
|
57
50
|
setRequestRenderingEvent(bottomSheetSlotData === null || bottomSheetSlotData === void 0 ? void 0 : bottomSheetSlotData.requestRenderingEvent);
|
|
58
51
|
}, [bottomSheetSlotData]);
|
|
59
52
|
useEffect(() => {
|
|
60
53
|
if (!webRef.current) return;
|
|
61
|
-
|
|
62
54
|
if (requestRenderingEvent) {
|
|
63
55
|
renderingBottomSheetRequest(webRef.current, requestRenderingEvent);
|
|
64
56
|
}
|
|
@@ -78,17 +70,16 @@ export const UNBottomSheetComponent = () => {
|
|
|
78
70
|
setNewHeight(newHeightMessage);
|
|
79
71
|
}
|
|
80
72
|
}, [waitForLoadingNewComponent, newHeightMessage]);
|
|
81
|
-
useListenerToBus(
|
|
73
|
+
useListenerToBus({
|
|
82
74
|
busEventKey: UnitMessage.UNIT_REQUEST_RENDERING,
|
|
83
75
|
action: handleRequestRendering
|
|
84
|
-
}
|
|
76
|
+
});
|
|
77
|
+
useListenerToBus({
|
|
85
78
|
busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW,
|
|
86
79
|
action: handleCloseFlow
|
|
87
|
-
}
|
|
88
|
-
|
|
80
|
+
});
|
|
89
81
|
const setNewHeight = message => {
|
|
90
82
|
if (!requestRenderingEvent) return;
|
|
91
|
-
|
|
92
83
|
switch (bottomSheetSlotData === null || bottomSheetSlotData === void 0 ? void 0 : bottomSheetSlotData.componentName) {
|
|
93
84
|
case WebComponentType.account:
|
|
94
85
|
{
|
|
@@ -96,7 +87,6 @@ export const UNBottomSheetComponent = () => {
|
|
|
96
87
|
setScrollState(accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable);
|
|
97
88
|
break;
|
|
98
89
|
}
|
|
99
|
-
|
|
100
90
|
case WebComponentType.card:
|
|
101
91
|
{
|
|
102
92
|
if (customDialog === CustomDialog.addToWallet) {
|
|
@@ -104,14 +94,11 @@ export const UNBottomSheetComponent = () => {
|
|
|
104
94
|
} else {
|
|
105
95
|
setScrollState(ScrollState.onTop);
|
|
106
96
|
}
|
|
107
|
-
|
|
108
97
|
break;
|
|
109
98
|
}
|
|
110
|
-
|
|
111
99
|
default:
|
|
112
100
|
{
|
|
113
101
|
const nativePlace = requestRenderingEvent === null || requestRenderingEvent === void 0 ? void 0 : requestRenderingEvent.data.nativePlace;
|
|
114
|
-
|
|
115
102
|
if (nativePlace == 'overFullScreen') {
|
|
116
103
|
setScrollState(ScrollState.onTop);
|
|
117
104
|
} else {
|
|
@@ -119,9 +106,7 @@ export const UNBottomSheetComponent = () => {
|
|
|
119
106
|
}
|
|
120
107
|
}
|
|
121
108
|
}
|
|
122
|
-
|
|
123
109
|
const nativePlace = requestRenderingEvent === null || requestRenderingEvent === void 0 ? void 0 : requestRenderingEvent.data.nativePlace;
|
|
124
|
-
|
|
125
110
|
if (nativePlace == 'overFullScreen') {
|
|
126
111
|
const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);
|
|
127
112
|
setHeight(bottomSheetNewHeight);
|
|
@@ -129,41 +114,32 @@ export const UNBottomSheetComponent = () => {
|
|
|
129
114
|
setHeight(message.details.height);
|
|
130
115
|
}
|
|
131
116
|
};
|
|
132
|
-
|
|
133
117
|
const onWebMessage = message => {
|
|
134
118
|
switch (message.type) {
|
|
135
119
|
case PageMessage.PAGE_HEIGHT:
|
|
136
120
|
requestRenderingEvent && setNewHeightMessage(message);
|
|
137
121
|
break;
|
|
138
|
-
|
|
139
122
|
case UnitMessage.UNIT_REQUEST_RENDERING:
|
|
140
123
|
{
|
|
141
124
|
var _requestRenderingEven;
|
|
142
|
-
|
|
143
125
|
const requestRendering = message.details;
|
|
144
|
-
|
|
145
126
|
if (requestRendering.data.nativeComponent != (requestRenderingEvent === null || requestRenderingEvent === void 0 ? void 0 : (_requestRenderingEven = requestRenderingEvent.data) === null || _requestRenderingEven === void 0 ? void 0 : _requestRenderingEven.nativeComponent)) {
|
|
146
127
|
if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {
|
|
147
128
|
setCustomDialog(CustomDialog.addToWallet);
|
|
148
129
|
}
|
|
149
|
-
|
|
150
130
|
setHeight(0);
|
|
151
131
|
setRequestRenderingEvent(requestRendering);
|
|
152
132
|
setWaitForLoadingNewComponent(true);
|
|
153
133
|
setTimeout(() => setWaitForLoadingNewComponent(false), 400);
|
|
154
134
|
}
|
|
155
|
-
|
|
156
135
|
break;
|
|
157
136
|
}
|
|
158
|
-
|
|
159
137
|
case CardMessage.CARD_STATUS_CHANGED:
|
|
160
138
|
EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, message.details.card);
|
|
161
139
|
break;
|
|
162
|
-
|
|
163
140
|
case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
|
|
164
141
|
handleCloseFlow();
|
|
165
142
|
break;
|
|
166
|
-
|
|
167
143
|
case UnitMessage.UNIT_REQUEST_OPEN_LINK:
|
|
168
144
|
// eslint-disable-next-line no-case-declarations
|
|
169
145
|
const {
|
|
@@ -173,25 +149,20 @@ export const UNBottomSheetComponent = () => {
|
|
|
173
149
|
break;
|
|
174
150
|
}
|
|
175
151
|
};
|
|
176
|
-
|
|
177
152
|
const onScrollWebView = event => {
|
|
178
153
|
if (scrollState === ScrollState.unScrollable) return;
|
|
179
154
|
const currY = event.nativeEvent.contentOffset.y;
|
|
180
|
-
|
|
181
155
|
if (ScrollState.onTop && currY < 5) {
|
|
182
156
|
setScrollState(ScrollState.onlyBottomSheet);
|
|
183
157
|
}
|
|
184
|
-
|
|
185
158
|
if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {
|
|
186
159
|
setScrollState(ScrollState.onlyWebView);
|
|
187
160
|
}
|
|
188
161
|
};
|
|
189
|
-
|
|
190
162
|
const handleWebViewScroll = () => {
|
|
191
163
|
if (scrollState === ScrollState.unScrollable) return;
|
|
192
164
|
setScrollState(ScrollState.onlyWebView);
|
|
193
165
|
};
|
|
194
|
-
|
|
195
166
|
const renderBottomSheetItem = () => {
|
|
196
167
|
switch (customDialog) {
|
|
197
168
|
case CustomDialog.addToWallet:
|
|
@@ -199,7 +170,6 @@ export const UNBottomSheetComponent = () => {
|
|
|
199
170
|
renderingRequest: requestRenderingEvent,
|
|
200
171
|
cardId: bottomSheetSlotData === null || bottomSheetSlotData === void 0 ? void 0 : bottomSheetSlotData.componentResourceId
|
|
201
172
|
});
|
|
202
|
-
|
|
203
173
|
default:
|
|
204
174
|
return /*#__PURE__*/React.createElement(WebComponent, {
|
|
205
175
|
ref: webRef,
|
|
@@ -212,7 +182,6 @@ export const UNBottomSheetComponent = () => {
|
|
|
212
182
|
});
|
|
213
183
|
}
|
|
214
184
|
};
|
|
215
|
-
|
|
216
185
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
|
|
217
186
|
pointerEvents: isBottomSheetActive ? undefined : 'none',
|
|
218
187
|
style: styles.container
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","ScrollState","CustomDialog","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","bottomSheetSlotData","setBottomSheetSlotData","requestRenderingEvent","setRequestRenderingEvent","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","customDialog","setCustomDialog","isAppActive","styles","webRef","handleRequestRendering","data","handleCloseFlow","current","undefined","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","UNIT_REQUEST_CLOSE_FLOW","message","componentName","account","accountActionType","List","unScrollable","card","addToWallet","nativePlace","bottomSheetNewHeight","get","details","onWebMessage","type","PAGE_HEIGHT","requestRendering","nativeComponent","includes","setTimeout","CARD_STATUS_CHANGED","Instance","event","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","componentResourceId","slot","CoverInjectedHeight","container"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport type BottomSheetSlotData = {\n // The data that rendered by the web view\n componentName?: WebComponentType,\n componentResourceId?: string,\n requestRenderingEvent: RequestRenderingEvent\n}\n\nenum CustomDialog {\n addToWallet\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const handleRequestRendering = (data: BottomSheetSlotData) => {\n setBottomSheetSlotData(data);\n setIsBottomSheetActive(true);\n setRequestRenderingEvent(data.requestRenderingEvent);\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);\n }, [bottomSheetSlotData]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, requestRenderingEvent);\n }\n }, [webRef.current, requestRenderingEvent]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRequestRenderingEvent(undefined);\n setScrollState(ScrollState.onTop);\n setCustomDialog(null);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus([\n { busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering },\n { busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow }\n ]);\n\n const setNewHeight = (message: WebViewMessage) => {\n if (!requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (customDialog === CustomDialog.addToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const requestRendering = (message.details as RequestRenderingEvent);\n if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {\n if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {\n setCustomDialog(CustomDialog.addToWallet);\n }\n\n setHeight(0);\n setRequestRenderingEvent(requestRendering);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n }\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (customDialog) {\n case CustomDialog.addToWallet:\n return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;\n default:\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","ScrollState","CustomDialog","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","bottomSheetSlotData","setBottomSheetSlotData","requestRenderingEvent","setRequestRenderingEvent","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","customDialog","setCustomDialog","isAppActive","styles","webRef","handleRequestRendering","data","handleCloseFlow","current","undefined","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","UNIT_REQUEST_CLOSE_FLOW","message","componentName","account","accountActionType","List","unScrollable","card","addToWallet","nativePlace","bottomSheetNewHeight","get","details","onWebMessage","type","PAGE_HEIGHT","_requestRenderingEven","requestRendering","nativeComponent","includes","setTimeout","CARD_STATUS_CHANGED","Instance","event","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","createElement","renderingRequest","cardId","componentResourceId","ref","slot","presentationMode","CoverInjectedHeight","script","onMessage","isScrollable","handleScroll","Fragment","pointerEvents","style","container","isOpen","onClose","onOpen","shouldEnableBottomSheetScroll"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport type BottomSheetSlotData = {\n // The data that rendered by the web view\n componentName?: WebComponentType,\n componentResourceId?: string,\n requestRenderingEvent: RequestRenderingEvent\n}\n\nenum CustomDialog {\n addToWallet\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const handleRequestRendering = (data: BottomSheetSlotData) => {\n setBottomSheetSlotData(data);\n setIsBottomSheetActive(true);\n setRequestRenderingEvent(data.requestRenderingEvent);\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);\n }, [bottomSheetSlotData]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, requestRenderingEvent);\n }\n }, [webRef.current, requestRenderingEvent]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRequestRenderingEvent(undefined);\n setScrollState(ScrollState.onTop);\n setCustomDialog(null);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering });\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });\n\n const setNewHeight = (message: WebViewMessage) => {\n if (!requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (customDialog === CustomDialog.addToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const requestRendering = (message.details as RequestRenderingEvent);\n if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {\n if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {\n setCustomDialog(CustomDialog.addToWallet);\n }\n\n setHeight(0);\n setRequestRenderingEvent(requestRendering);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n }\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (customDialog) {\n case CustomDialog.addToWallet:\n return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;\n default:\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","getStylesObject","create","container","position","top","bottom","left","right"],"sources":["UNBottomSheetComponent.styles.ts"],"sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const getStylesObject = () => {\n return StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n });\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["StyleSheet","getStylesObject","create","container","position","top","bottom","left","right"],"sources":["UNBottomSheetComponent.styles.ts"],"sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const getStylesObject = () => {\n return StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACnC,OAAOD,UAAU,CAACE,MAAM,CAAC;IACvBC,SAAS,EAAE;MACTC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE;IACT;EACF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LISTENERS","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","getBottomSheetScript","requestRefresh","renderingBottomSheetRequest","currentWebView","renderingRequest","injectJavaScript","JSON","stringify","data","resetHtml","handleHtmlFullHeight","windowHeight","bottomSheetHeight"],"sources":["UNBottomSheetComponent.utils.ts"],"sourcesContent":["import { LISTENERS } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';\nimport type { RequestRenderingEvent } from '../../messages/webMessages/unitMessages';\n\nexport const getBottomSheetScript = () => {\n return LISTENERS.requestRefresh;\n};\n\nexport const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: RequestRenderingEvent) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n dispatchRenderingEvent('${JSON.stringify(renderingRequest.data)}');\n `);\n};\n\nexport const resetHtml = (currentWebView: WebView) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n document.getElementById('webViewContainer').style.height = null;\n `);\n};\n\nexport const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {\n const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;\n currentWebView && currentWebView?.injectJavaScript(`\n document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';\n `);\n\n return bottomSheetHeight;\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["LISTENERS","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","getBottomSheetScript","requestRefresh","renderingBottomSheetRequest","currentWebView","renderingRequest","injectJavaScript","JSON","stringify","data","resetHtml","handleHtmlFullHeight","windowHeight","bottomSheetHeight"],"sources":["UNBottomSheetComponent.utils.ts"],"sourcesContent":["import { LISTENERS } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';\nimport type { RequestRenderingEvent } from '../../messages/webMessages/unitMessages';\n\nexport const getBottomSheetScript = () => {\n return LISTENERS.requestRefresh;\n};\n\nexport const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: RequestRenderingEvent) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n dispatchRenderingEvent('${JSON.stringify(renderingRequest.data)}');\n `);\n};\n\nexport const resetHtml = (currentWebView: WebView) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n document.getElementById('webViewContainer').style.height = null;\n `);\n};\n\nexport const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {\n const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;\n currentWebView && currentWebView?.injectJavaScript(`\n document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';\n `);\n\n return bottomSheetHeight;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,iCAAiC;AAE3D,SAASC,gCAAgC,QAAQ,oCAAoC;AAGrF,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,OAAOF,SAAS,CAACG,cAAc;AACjC,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAACC,cAAuB,EAAEC,gBAAuC,KAAK;EAC/GD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEE,gBAAgB,CAAE;AACpC;AACA,8BAA8BC,IAAI,CAACC,SAAS,CAACH,gBAAgB,CAACI,IAAI,CAAE;AACpE,GAAG,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,SAAS,GAAIN,cAAuB,IAAK;EACpDA,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEE,gBAAgB,CAAE;AACpC;AACA;AACA,GAAG,CAAC;AACJ,CAAC;AAED,OAAO,MAAMK,oBAAoB,GAAGA,CAACP,cAA8B,EAAEQ,YAAoB,KAAK;EAC5F,MAAMC,iBAAiB,GAAGD,YAAY,GAAGZ,gCAAgC;EACzEI,cAAc,KAAIA,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEE,gBAAgB,CAAE;AACtD,kEAAkEO,iBAAkB;AACpF,GAAG,CAAC;EAEF,OAAOA,iBAAiB;AAC1B,CAAC"}
|
package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js
CHANGED
|
@@ -28,23 +28,19 @@ export const UNAddToWalletBottomSheetItem = props => {
|
|
|
28
28
|
if (addToWalletStatus === CardAddToWalletStatus.pending) return;
|
|
29
29
|
const isCardInWallet = addToWalletStatus === CardAddToWalletStatus.addedToWallet;
|
|
30
30
|
webRef.current.injectJavaScript(`window.UnitMobileSDKConfig["isCardInWallet"] = ${isCardInWallet}`);
|
|
31
|
-
|
|
32
31
|
if (renderingRequest) {
|
|
33
32
|
renderingBottomSheetRequest(webRef.current, renderingRequest);
|
|
34
33
|
}
|
|
35
34
|
}, [webRef.current, renderingRequest, addToWalletStatus]);
|
|
36
|
-
|
|
37
35
|
const gotCardWalletStatus = data => {
|
|
38
36
|
if (data != null) {
|
|
39
37
|
setAddToWalletStatus(data.status);
|
|
40
38
|
}
|
|
41
39
|
};
|
|
42
|
-
|
|
43
|
-
useListenerToBus([{
|
|
40
|
+
useListenerToBus({
|
|
44
41
|
busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS,
|
|
45
42
|
action: gotCardWalletStatus
|
|
46
|
-
}
|
|
47
|
-
|
|
43
|
+
});
|
|
48
44
|
const handleAddToWalletClicked = () => {
|
|
49
45
|
if (!cardId) return;
|
|
50
46
|
const startPushProvisioningEvent = {
|
|
@@ -52,7 +48,6 @@ export const UNAddToWalletBottomSheetItem = props => {
|
|
|
52
48
|
};
|
|
53
49
|
EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);
|
|
54
50
|
};
|
|
55
|
-
|
|
56
51
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WebComponent, {
|
|
57
52
|
ref: webRef,
|
|
58
53
|
type: WebComponentType.slot,
|
package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","CardAddToWalletStatus","CardNativeMessage","EventBus","PresentationMode","WebComponent","WebComponentType","renderingBottomSheetRequest","getStylesObject","ActivityIndicator","useListenerToBus","UnitAddToWalletButtonView","UNAddToWalletBottomSheetItem","props","styles","webRef","renderingRequest","cardId","addToWalletStatus","setAddToWalletStatus","pending","event","Instance","CARD_GET_ADD_TO_WALLET_STATUS","current","isCardInWallet","addedToWallet","injectJavaScript","gotCardWalletStatus","data","status","busEventKey","CARD_UPDATE_ADD_TO_WALLET_STATUS","action","handleAddToWalletClicked","startPushProvisioningEvent","CARD_START_PUSH_PROVISIONING","slot","CoverInjectedHeight","loader","readyToProvisioning","addToWalletButton"],"sources":["UNAddToWalletBottomSheetItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { CardAddToWalletStatus, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../../messages/nativeMessages/cardMessage';\nimport EventBus from '../../../helpers/EventBus';\nimport { PresentationMode } from '../../../scripts/html/bodyHtml';\nimport { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';\nimport { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';\nimport { ActivityIndicator } from 'react-native';\nimport { useListenerToBus } from '../../../hooks/listenerToBus';\nimport type { RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';\nimport UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';\n\nexport interface UNAddToWalletBottomSheetItemProps {\n renderingRequest?: RequestRenderingEvent\n cardId?: string\n}\n\nexport const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItemProps) => {\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const { renderingRequest, cardId } = props;\n\n const [addToWalletStatus, setAddToWalletStatus] = useState<CardAddToWalletStatus>(CardAddToWalletStatus.pending);\n\n useEffect(() => {\n if (!cardId) return;\n const event: CardGetAddToWalletStatusEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);\n }, [cardId]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (addToWalletStatus === CardAddToWalletStatus.pending) return;\n\n const isCardInWallet = addToWalletStatus === CardAddToWalletStatus.addedToWallet;\n webRef.current.injectJavaScript(`window.UnitMobileSDKConfig[\"isCardInWallet\"] = ${isCardInWallet}`);\n\n if (renderingRequest) {\n renderingBottomSheetRequest(webRef.current, renderingRequest);\n }\n }, [webRef.current, renderingRequest, addToWalletStatus]);\n\n const gotCardWalletStatus = (data?: CardAddToWalletStatusEvent) => {\n if (data != null) {\n setAddToWalletStatus(data.status);\n }\n };\n\n useListenerToBus(
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","CardAddToWalletStatus","CardNativeMessage","EventBus","PresentationMode","WebComponent","WebComponentType","renderingBottomSheetRequest","getStylesObject","ActivityIndicator","useListenerToBus","UnitAddToWalletButtonView","UNAddToWalletBottomSheetItem","props","styles","webRef","renderingRequest","cardId","addToWalletStatus","setAddToWalletStatus","pending","event","Instance","CARD_GET_ADD_TO_WALLET_STATUS","current","isCardInWallet","addedToWallet","injectJavaScript","gotCardWalletStatus","data","status","busEventKey","CARD_UPDATE_ADD_TO_WALLET_STATUS","action","handleAddToWalletClicked","startPushProvisioningEvent","CARD_START_PUSH_PROVISIONING","createElement","Fragment","ref","type","slot","presentationMode","CoverInjectedHeight","isScrollable","style","loader","readyToProvisioning","addToWalletButton","onAddToWalletClicked"],"sources":["UNAddToWalletBottomSheetItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { CardAddToWalletStatus, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../../messages/nativeMessages/cardMessage';\nimport EventBus from '../../../helpers/EventBus';\nimport { PresentationMode } from '../../../scripts/html/bodyHtml';\nimport { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';\nimport { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';\nimport { ActivityIndicator } from 'react-native';\nimport { useListenerToBus } from '../../../hooks/listenerToBus';\nimport type { RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';\nimport UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';\n\nexport interface UNAddToWalletBottomSheetItemProps {\n renderingRequest?: RequestRenderingEvent\n cardId?: string\n}\n\nexport const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItemProps) => {\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const { renderingRequest, cardId } = props;\n\n const [addToWalletStatus, setAddToWalletStatus] = useState<CardAddToWalletStatus>(CardAddToWalletStatus.pending);\n\n useEffect(() => {\n if (!cardId) return;\n const event: CardGetAddToWalletStatusEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);\n }, [cardId]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (addToWalletStatus === CardAddToWalletStatus.pending) return;\n\n const isCardInWallet = addToWalletStatus === CardAddToWalletStatus.addedToWallet;\n webRef.current.injectJavaScript(`window.UnitMobileSDKConfig[\"isCardInWallet\"] = ${isCardInWallet}`);\n\n if (renderingRequest) {\n renderingBottomSheetRequest(webRef.current, renderingRequest);\n }\n }, [webRef.current, renderingRequest, addToWalletStatus]);\n\n const gotCardWalletStatus = (data?: CardAddToWalletStatusEvent) => {\n if (data != null) {\n setAddToWalletStatus(data.status);\n }\n };\n\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, action: gotCardWalletStatus });\n\n const handleAddToWalletClicked = () => {\n if (!cardId) return;\n const startPushProvisioningEvent: CardStartPushProvisioningEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);\n };\n\n return (\n <>\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n isScrollable={false}\n />\n {addToWalletStatus === CardAddToWalletStatus.pending && <ActivityIndicator style={styles.loader} />}\n {addToWalletStatus === CardAddToWalletStatus.readyToProvisioning && <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","Platform","getStylesObject","create","addToWalletButton","position","height","OS","bottom","left","right","marginHorizontal","loader","top"],"sources":["UNAddToWalletBottomSheetItem.styles.ts"],"sourcesContent":["import { StyleSheet, Platform } from 'react-native';\n\nexport const getStylesObject = () => {\n return StyleSheet.create({\n addToWalletButton: {\n position: 'absolute',\n height: Platform.OS === 'ios' ? 48 : 55,\n bottom: 32,\n left: 0,\n right: 0,\n marginHorizontal: 24\n },\n loader: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n });\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["StyleSheet","Platform","getStylesObject","create","addToWalletButton","position","height","OS","bottom","left","right","marginHorizontal","loader","top"],"sources":["UNAddToWalletBottomSheetItem.styles.ts"],"sourcesContent":["import { StyleSheet, Platform } from 'react-native';\n\nexport const getStylesObject = () => {\n return StyleSheet.create({\n addToWalletButton: {\n position: 'absolute',\n height: Platform.OS === 'ios' ? 48 : 55,\n bottom: 32,\n left: 0,\n right: 0,\n marginHorizontal: 24\n },\n loader: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AAEnD,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACnC,OAAOF,UAAU,CAACG,MAAM,CAAC;IACvBC,iBAAiB,EAAE;MACjBC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAEL,QAAQ,CAACM,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,EAAE;MACvCC,MAAM,EAAE,EAAE;MACVC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,gBAAgB,EAAE;IACpB,CAAC;IACDC,MAAM,EAAE;MACNP,QAAQ,EAAE,UAAU;MACpBQ,GAAG,EAAE,CAAC;MACNL,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE;IACT;EACF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -14,45 +14,44 @@ export const UNCardComponent = props => {
|
|
|
14
14
|
const [height, setHeight] = useState(0);
|
|
15
15
|
const windowWidth = Dimensions.get('window').width;
|
|
16
16
|
const walletRef = useRef(null);
|
|
17
|
-
|
|
17
|
+
// walletRef can be changed to a state. (After the change of the listener hook)
|
|
18
|
+
// TODO: walletState and checks it works. =)
|
|
18
19
|
|
|
20
|
+
const webRef = useRef(null);
|
|
19
21
|
const cardStatusChanged = card => {
|
|
20
22
|
if (props.onStatusChanged) {
|
|
21
23
|
props.onStatusChanged(card);
|
|
22
24
|
}
|
|
23
25
|
};
|
|
24
|
-
|
|
25
26
|
const requestRefresh = data => {
|
|
26
27
|
injectRefreshEventIfNeeded(webRef.current, data, props.cardId);
|
|
27
28
|
};
|
|
28
|
-
|
|
29
29
|
const startPushProvisioning = async data => {
|
|
30
30
|
if (data.cardId !== props.cardId) return;
|
|
31
31
|
onAddToWalletClicked();
|
|
32
32
|
};
|
|
33
|
-
|
|
34
33
|
const getAddToWalletStatus = data => {
|
|
35
34
|
if (data.cardId !== props.cardId) return;
|
|
36
35
|
getWallets();
|
|
37
36
|
};
|
|
38
|
-
|
|
39
|
-
useListenerToBus([{
|
|
40
|
-
busEventKey: CardMessage.CARD_STATUS_CHANGED,
|
|
41
|
-
action: cardStatusChanged
|
|
42
|
-
}, {
|
|
37
|
+
useListenerToBus({
|
|
43
38
|
busEventKey: UnitMessage.UNIT_REQUEST_REFRESH,
|
|
44
39
|
action: requestRefresh
|
|
45
|
-
}
|
|
40
|
+
});
|
|
41
|
+
useListenerToBus({
|
|
42
|
+
busEventKey: CardMessage.CARD_STATUS_CHANGED,
|
|
43
|
+
action: cardStatusChanged
|
|
44
|
+
});
|
|
45
|
+
useListenerToBus({
|
|
46
46
|
busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING,
|
|
47
47
|
action: startPushProvisioning
|
|
48
|
-
}
|
|
48
|
+
});
|
|
49
|
+
useListenerToBus({
|
|
49
50
|
busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS,
|
|
50
51
|
action: getAddToWalletStatus
|
|
51
|
-
}
|
|
52
|
-
|
|
52
|
+
});
|
|
53
53
|
const handleMessage = message => {
|
|
54
54
|
if (!message || !message.details) return;
|
|
55
|
-
|
|
56
55
|
switch (message.type) {
|
|
57
56
|
case UnitMessage.UNIT_REQUEST_RENDERING:
|
|
58
57
|
{
|
|
@@ -64,17 +63,14 @@ export const UNCardComponent = props => {
|
|
|
64
63
|
EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);
|
|
65
64
|
break;
|
|
66
65
|
}
|
|
67
|
-
|
|
68
66
|
case PageMessage.PAGE_HEIGHT:
|
|
69
67
|
setHeight(message.details.height);
|
|
70
68
|
break;
|
|
71
|
-
|
|
72
69
|
case UnitMessage.UNIT_ON_LOAD:
|
|
73
70
|
props.onLoad && props.onLoad(message.details);
|
|
74
71
|
break;
|
|
75
72
|
}
|
|
76
73
|
};
|
|
77
|
-
|
|
78
74
|
const getWallets = async () => {
|
|
79
75
|
try {
|
|
80
76
|
const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule);
|
|
@@ -88,7 +84,6 @@ export const UNCardComponent = props => {
|
|
|
88
84
|
console.error(error);
|
|
89
85
|
}
|
|
90
86
|
};
|
|
91
|
-
|
|
92
87
|
const onAddToWalletClicked = async () => {
|
|
93
88
|
try {
|
|
94
89
|
await launchStartCardProvisioning(props.pushProvisioningModule, walletRef.current);
|
|
@@ -97,11 +92,9 @@ export const UNCardComponent = props => {
|
|
|
97
92
|
const parsedError = JSON.parse(error.message);
|
|
98
93
|
if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;
|
|
99
94
|
}
|
|
100
|
-
|
|
101
95
|
console.log(error);
|
|
102
96
|
}
|
|
103
97
|
};
|
|
104
|
-
|
|
105
98
|
return /*#__PURE__*/React.createElement(View, {
|
|
106
99
|
style: {
|
|
107
100
|
height
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","CARD_STATUS_CHANGED","action","UNIT_REQUEST_REFRESH","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","Default","theme"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { ResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n theme?: string;\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n onLoad?: (response: ResponseUnitOnLoadEvent) => void\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n const walletRef = useRef<UNWallet | null>(null);\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus([\n { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },\n { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },\n { busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning },\n { busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus }\n ]);\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: CardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,MAAhB,EAAwBC,QAAxB,QAAwC,OAAxC;AACA,SAASC,UAAT,EAAmCC,IAAnC,QAA+C,cAA/C;AAEA,SAAsBC,WAAtB,QAAyC,wCAAzC;AACA,SAAqDC,WAArD,QAAwE,yCAAxE;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,SAASC,YAAT,EAAuBC,gBAAvB,QAA+C,iCAA/C;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAEA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,0BAAvC,EAAmEC,2BAAnE,QAAsG,yBAAtG;AACA,SAASC,gBAAT,QAAiC,6BAAjC;AAEA,SAASC,WAAT,QAA4B,wCAA5B;AACA,SAASC,gBAAT,QAAiC,yBAAjC;AAGA,SAASC,qBAAT,EAA2FC,iBAA3F,QAAoJ,2CAApJ;AAWA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAAiC;EAC9D,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBrB,QAAQ,CAAC,CAAD,CAApC;EACA,MAAMsB,WAAW,GAAGrB,UAAU,CAACsB,GAAX,CAAe,QAAf,EAAyBC,KAA7C;EACA,MAAMC,SAAS,GAAG1B,MAAM,CAAkB,IAAlB,CAAxB;EAEA,MAAM2B,MAAM,GAAG3B,MAAM,CAAU,IAAV,CAArB;;EAEA,MAAM4B,iBAAiB,GAAIC,IAAD,IAAsB;IAC9C,IAAIT,KAAK,CAACU,eAAV,EAA2B;MACzBV,KAAK,CAACU,eAAN,CAAsBD,IAAtB;IACD;EACF,CAJD;;EAMA,MAAME,cAAc,GAAIC,IAAD,IAA+B;IACpDpB,0BAA0B,CAACe,MAAM,CAACM,OAAR,EAAiBD,IAAjB,EAAuBZ,KAAK,CAACc,MAA7B,CAA1B;EACD,CAFD;;EAIA,MAAMC,qBAAqB,GAAG,MAAOH,IAAP,IAAgD;IAC5E,IAAIA,IAAI,CAACE,MAAL,KAAgBd,KAAK,CAACc,MAA1B,EAAkC;IAClCE,oBAAoB;EACrB,CAHD;;EAKA,MAAMC,oBAAoB,GAAIL,IAAD,IAAyC;IACpE,IAAIA,IAAI,CAACE,MAAL,KAAgBd,KAAK,CAACc,MAA1B,EAAkC;IAClCI,UAAU;EACX,CAHD;;EAKA7B,gBAAgB,CAAC,CACf;IAAE8B,WAAW,EAAExB,WAAW,CAACyB,mBAA3B;IAAgDC,MAAM,EAAEb;EAAxD,CADe,EAEf;IAAEW,WAAW,EAAElC,WAAW,CAACqC,oBAA3B;IAAiDD,MAAM,EAAEV;EAAzD,CAFe,EAGf;IAAEQ,WAAW,EAAErB,iBAAiB,CAACyB,4BAAjC;IAA+DF,MAAM,EAAEN;EAAvE,CAHe,EAIf;IAAEI,WAAW,EAAErB,iBAAiB,CAAC0B,6BAAjC;IAAgEH,MAAM,EAAEJ;EAAxE,CAJe,CAAD,CAAhB;;EAOA,MAAMQ,aAAa,GAAIC,OAAD,IAA6B;IACjD,IAAI,CAACA,OAAD,IAAY,CAACA,OAAO,CAACC,OAAzB,EAAkC;;IAElC,QAAQD,OAAO,CAACE,IAAhB;MACE,KAAK3C,WAAW,CAAC4C,sBAAjB;QAAyC;UACvC,MAAMC,KAA0B,GAAG;YACjCC,aAAa,EAAE3C,gBAAgB,CAACqB,IADC;YAEjCuB,mBAAmB,EAAEhC,KAAK,CAACc,MAFM;YAGjCmB,qBAAqB,EAAEP,OAAO,CAACC;UAHE,CAAnC;UAKAzC,QAAQ,CAACgD,QAAT,CAAkBJ,KAAlB,CAAwB7C,WAAW,CAAC4C,sBAApC,EAA4DC,KAA5D;UACA;QACD;;MACD,KAAK9C,WAAW,CAACmD,WAAjB;QACEjC,SAAS,CAAEwB,OAAO,CAACC,OAAT,CAAiC1B,MAAlC,CAAT;QACA;;MACF,KAAKhB,WAAW,CAACmD,YAAjB;QACEpC,KAAK,CAACqC,MAAN,IAAgBrC,KAAK,CAACqC,MAAN,CAAaX,OAAO,CAACC,OAArB,CAAhB;QACA;IAfJ;EAiBD,CApBD;;EAsBA,MAAMT,UAAU,GAAG,YAAY;IAE7B,IAAI;MAEF,MAAMoB,cAAc,GAAG,MAAM1C,gBAAgB,CAACI,KAAK,CAACuC,aAAP,EAAsBvC,KAAK,CAACc,MAA5B,EAAoCd,KAAK,CAACwC,sBAA1C,CAA7C;MAEA,IAAI,CAACF,cAAL,EAAqB;MAErBhC,SAAS,CAACO,OAAV,GAAoByB,cAApB;MAEA,MAAMG,YAAwC,GAAG;QAAEC,MAAM,EAAEJ,cAAc,CAACI;MAAzB,CAAjD;MACAxD,QAAQ,CAACgD,QAAT,CAAkBJ,KAAlB,CAAwBhC,iBAAiB,CAAC6C,gCAA1C,EAA4EF,YAA5E;IACD,CAVD,CAUE,OAAOG,KAAP,EAAc;MACdC,OAAO,CAACD,KAAR,CAAcA,KAAd;IACD;EACF,CAfD;;EAiBA,MAAM5B,oBAAoB,GAAG,YAAY;IACvC,IAAI;MACF,MAAMvB,2BAA2B,CAACO,KAAK,CAACwC,sBAAP,EAA+ClC,SAAS,CAACO,OAAzD,CAAjC;IACD,CAFD,CAEE,OAAO+B,KAAP,EAAc;MACd,IAAIA,KAAK,YAAYE,KAArB,EAA4B;QAC1B,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAL,CAAWL,KAAK,CAAClB,OAAjB,CAApB;QACA,IAAIqB,WAAW,CAACG,IAAZ,KAAqBrD,qBAAqB,CAACsD,wBAA/C,EAAyE;MAC1E;;MACDN,OAAO,CAACO,GAAR,CAAYR,KAAZ;IACD;EACF,CAVD;;EAYA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE;MAAE3C;IAAF;EAAb,gBACE,oBAAC,YAAD;IACE,GAAG,EAAEM,MADP;IAEE,IAAI,EAAEnB,gBAAgB,CAACqB,IAFzB;IAGE,gBAAgB,EAAEf,gBAAgB,CAAC2D,OAHrC;IAIE,MAAM,EAAE/D,aAAa,CAACU,KAAD,CAJvB;IAKE,KAAK,EAAEA,KAAK,CAACsD,KALf;IAME,MAAM,EAAE/D,aAAa,EANvB;IAOE,SAAS,EAAEmC,OAAO,IAAID,aAAa,CAACC,OAAD,CAPrC;IAQE,KAAK,EAAEvB,WART;IASE,YAAY,EAAE;EAThB,EADF,CADF;AAeD,CApGM"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","UNIT_REQUEST_REFRESH","action","CARD_STATUS_CHANGED","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","createElement","style","ref","presentationMode","Default","params","theme","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { ResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n theme?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: ResponseUnitOnLoadEvent) => void\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n\n const walletRef = useRef<UNWallet | null>(null);\n // walletRef can be changed to a state. (After the change of the listener hook)\n // TODO: walletState and checks it works. =)\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning });\n useListenerToBus({ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus });\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: CardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export const getCardParams = props => {
|
|
|
8
8
|
card-id="${props.cardId}"
|
|
9
9
|
customer-token="${props.customerToken}"
|
|
10
10
|
enable-mobile-wallet="${!!props.pushProvisioningModule}"
|
|
11
|
+
hide-actions-menu-button="${props.hideActionsMenuButton || false}"
|
|
12
|
+
hide-card-title="${props.hideCardTitle || false}"
|
|
13
|
+
hide-sensitive-data-button="${props.hideSensitiveDataButton || false}"
|
|
11
14
|
`;
|
|
12
15
|
};
|
|
13
16
|
export const getCardScript = () => {
|
|
@@ -30,7 +33,6 @@ export const launchGetWallets = async (customerToken, cardId, pushProvisioningMo
|
|
|
30
33
|
const parsedWalletsResponse = JSON.parse(walletsResponse);
|
|
31
34
|
const wallets = parsedWalletsResponse.wallets;
|
|
32
35
|
if (!wallets) return null;
|
|
33
|
-
|
|
34
36
|
if (wallets[0].code === UNWalletCode.Apple) {
|
|
35
37
|
return {
|
|
36
38
|
name: UNWalletName.Apple,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DISPATCH_REQUEST_REFRESH","WebComponentType","getMobileWalletPayload","UNWalletCode","UNWalletName","UnitSDK","getCardParams","props","cardId","customerToken","pushProvisioningModule","getCardScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify","launchGetWallets","env","getEnv","encryptedPayload","walletsResponse","encPayload","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","error","Promise","reject","launchStartCardProvisioning","response","walletCode","walletName"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { NativeModules } from 'react-native';\nimport { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';\nimport { UNWallet, UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';\nimport type { RequestRefreshEvent } from '../../messages/webMessages/unitMessages';\nimport { UnitSDK } from '../../unitSdkManager/UnitSdkManager';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n enable-mobile-wallet=\"${!!props.pushProvisioningModule}\"\n `;\n};\n\nexport const getCardScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const launchGetWallets = async (customerToken: string, cardId: string, pushProvisioningModule: typeof NativeModules) => {\n try {\n const env = UnitSDK.getEnv();\n if (!env) return null;\n\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId, env);\n if (!encryptedPayload) return null;\n\n const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n return Promise.reject(error);\n }\n\n};\n\nexport const launchStartCardProvisioning = async (pushProvisioningModule: typeof NativeModules, wallet: UNWallet | null) => {\n try {\n const response = await pushProvisioningModule.launchStartCardProvisioning(\n JSON.stringify({\n walletCode: wallet?.code,\n walletName: wallet?.name\n }));\n return response;\n }\n\n catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["DISPATCH_REQUEST_REFRESH","WebComponentType","getMobileWalletPayload","UNWalletCode","UNWalletName","UnitSDK","getCardParams","props","cardId","customerToken","pushProvisioningModule","hideActionsMenuButton","hideCardTitle","hideSensitiveDataButton","getCardScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify","launchGetWallets","env","getEnv","encryptedPayload","walletsResponse","encPayload","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","error","Promise","reject","launchStartCardProvisioning","response","walletCode","walletName"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { NativeModules } from 'react-native';\nimport { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';\nimport { UNWallet, UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';\nimport type { RequestRefreshEvent } from '../../messages/webMessages/unitMessages';\nimport { UnitSDK } from '../../unitSdkManager/UnitSdkManager';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n enable-mobile-wallet=\"${!!props.pushProvisioningModule}\"\n hide-actions-menu-button=\"${props.hideActionsMenuButton || false}\"\n hide-card-title=\"${props.hideCardTitle || false}\"\n hide-sensitive-data-button=\"${props.hideSensitiveDataButton || false}\"\n `;\n};\n\nexport const getCardScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const launchGetWallets = async (customerToken: string, cardId: string, pushProvisioningModule: typeof NativeModules) => {\n try {\n const env = UnitSDK.getEnv();\n if (!env) return null;\n\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId, env);\n if (!encryptedPayload) return null;\n\n const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n return Promise.reject(error);\n }\n\n};\n\nexport const launchStartCardProvisioning = async (pushProvisioningModule: typeof NativeModules, wallet: UNWallet | null) => {\n try {\n const response = await pushProvisioningModule.launchStartCardProvisioning(\n JSON.stringify({\n walletCode: wallet?.code,\n walletName: wallet?.name\n }));\n return response;\n }\n\n catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UNEnvironment","APIHeaders","AUTHORIZATION","CONTENT_TYPE","UNIT_SECURE_URL","sandbox","production"],"sources":["UNNetworkConstants.ts"],"sourcesContent":["import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';\n\nexport const APIHeaders = {\n AUTHORIZATION: 'Authorization',\n CONTENT_TYPE: 'application/vnd.api+json',\n};\n\nexport const UNIT_SECURE_URL = {\n [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',\n [UNEnvironment.production]: 'https://secure.api.unit.co'\n};\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["UNEnvironment","APIHeaders","AUTHORIZATION","CONTENT_TYPE","UNIT_SECURE_URL","sandbox","production"],"sources":["UNNetworkConstants.ts"],"sourcesContent":["import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';\n\nexport const APIHeaders = {\n AUTHORIZATION: 'Authorization',\n CONTENT_TYPE: 'application/vnd.api+json',\n};\n\nexport const UNIT_SECURE_URL = {\n [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',\n [UNEnvironment.production]: 'https://secure.api.unit.co'\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,2CAA2C;AAEzE,OAAO,MAAMC,UAAU,GAAG;EACxBC,aAAa,EAAE,eAAe;EAC9BC,YAAY,EAAE;AAChB,CAAC;AAED,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACJ,aAAa,CAACK,OAAO,GAAG,8BAA8B;EACvD,CAACL,aAAa,CAACM,UAAU,GAAG;AAC9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';
|
|
3
|
-
import { UnitSDK } from '
|
|
3
|
+
import { UnitSDK } from '../../../../unitSdkManager/UnitSdkManager';
|
|
4
4
|
export const getMobileWalletPayload = async (customerToken, cardId, env) => {
|
|
5
5
|
const headers = {
|
|
6
6
|
'Content-Type': APIHeaders.CONTENT_TYPE,
|
|
@@ -14,7 +14,6 @@ export const getMobileWalletPayload = async (customerToken, cardId, env) => {
|
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
const baseURL = `${UNIT_SECURE_URL[env]}/cards/${cardId}/mobile-wallet-payload`;
|
|
17
|
-
|
|
18
17
|
try {
|
|
19
18
|
const response = await axios.post(baseURL, data, {
|
|
20
19
|
headers: headers
|