react-native-unit-components 1.0.2 → 1.0.3
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 +75 -6
- package/android/src/main/AndroidManifest.xml +12 -1
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
- package/android/src/main/java/com/unitreactnativecomponents/sharepdf/UNSharePDF.kt +75 -0
- package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +2 -2
- package/android/src/main/res/layout/un_view_google_push_provisioning.xml +1 -13
- package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +1 -1
- package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +1 -1
- package/android/src/main/res/xml/file_paths.xml +4 -0
- package/ios/UnitReactNativeComponentsViewManager.m +0 -1
- package/ios/UnitReactNativeComponentsViewManager.swift +6 -2
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +103 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +47 -0
- package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -4
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +19 -1
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +22 -10
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +4 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +3 -3
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +114 -46
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +4 -8
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +95 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +31 -0
- package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +64 -7
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +57 -8
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +20 -0
- package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +44 -0
- package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
- package/lib/commonjs/components/index.js +13 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +32 -12
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +1 -1
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/commonjs/helpers/EventBus.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/cardMessage.js +36 -0
- package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -0
- package/lib/commonjs/messages/nativeMessages/index.js +0 -8
- package/lib/commonjs/messages/nativeMessages/index.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js +14 -0
- package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js +1 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/commonjs/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
- package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -0
- package/lib/commonjs/scripts/html/bodyScript.js +22 -5
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
- package/lib/commonjs/sharedTypes/index.js +13 -0
- package/lib/commonjs/sharedTypes/index.js.map +1 -1
- package/lib/commonjs/sharedTypes/onLoadResponse.types.js +6 -0
- package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/wallet.types.js +22 -0
- package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -0
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js +5 -3
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +12 -2
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.js +20 -8
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/WebComponent.utils.js +41 -0
- package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -0
- package/lib/commonjs/webComponent/html.js +9 -1
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js +74 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +26 -0
- package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +28 -6
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +21 -10
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +111 -46
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +5 -9
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +68 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +21 -0
- package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.js +64 -9
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +48 -7
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js +10 -0
- package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +29 -0
- package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.js +30 -13
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -2
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
- package/lib/module/helpers/EventBus.js.map +1 -1
- package/lib/module/messages/nativeMessages/cardMessage.js +27 -0
- package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -0
- package/lib/module/messages/nativeMessages/index.js +1 -6
- package/lib/module/messages/nativeMessages/index.js.map +1 -1
- package/lib/module/messages/nativeMessages/sdkMessage.js +7 -0
- package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -0
- package/lib/module/messages/webMessages/unitMessages.js +1 -0
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
- package/lib/module/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
- package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -0
- package/lib/module/scripts/html/bodyScript.js +19 -3
- package/lib/module/scripts/html/bodyScript.js.map +1 -1
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
- package/lib/module/sharedTypes/card.types.js.map +1 -1
- package/lib/module/sharedTypes/index.js +1 -0
- package/lib/module/sharedTypes/index.js.map +1 -1
- package/lib/module/sharedTypes/onLoadResponse.types.js +2 -0
- package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -0
- package/lib/module/sharedTypes/wallet.types.js +14 -0
- package/lib/module/sharedTypes/wallet.types.js.map +1 -0
- package/lib/module/unitSdkManager/UnitSdk.api.js +4 -3
- package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
- package/lib/module/unitSdkManager/UnitSdkManager.js +12 -2
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
- package/lib/module/webComponent/WebComponent.js +18 -7
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/WebComponent.utils.js +27 -0
- package/lib/module/webComponent/WebComponent.utils.js.map +1 -0
- package/lib/module/webComponent/html.js +9 -2
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +12 -0
- package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +7 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +4 -0
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -1
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -1
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +9 -2
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +2 -1
- package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.d.ts +6 -0
- package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.d.ts +17 -0
- package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
- package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +9 -1
- package/lib/typescript/components/UNCardComponent/networking/common/UNNetworkConstants.d.ts +8 -0
- package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +1 -0
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/helpers/EventBus.d.ts +3 -3
- package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +28 -0
- package/lib/typescript/messages/nativeMessages/index.d.ts +7 -3
- package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +8 -0
- package/lib/typescript/messages/webMessages/unitMessages.d.ts +16 -6
- package/lib/typescript/scripts/html/bodyScript.d.ts +4 -1
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -3
- package/lib/typescript/sharedTypes/card.types.d.ts +6 -6
- package/lib/typescript/sharedTypes/index.d.ts +1 -0
- package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +18 -0
- package/lib/typescript/sharedTypes/wallet.types.d.ts +14 -0
- package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +3 -0
- package/lib/typescript/webComponent/WebComponent.d.ts +2 -1
- package/lib/typescript/webComponent/WebComponent.utils.d.ts +2 -0
- package/package.json +2 -1
- package/src/components/UNAccountComponent/UNAccountComponent.tsx +82 -0
- package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +30 -0
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +28 -5
- package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +14 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +18 -10
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -1
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +120 -44
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +7 -10
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.ts +21 -0
- package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +74 -0
- package/src/components/UNCardComponent/UNCardComponent.tsx +67 -13
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +47 -7
- package/src/components/UNCardComponent/networking/common/UNNetworkConstants.ts +11 -0
- package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +34 -0
- package/src/components/index.ts +1 -0
- package/src/helpers/BottomSheet/BottomSheet.styles.ts +2 -2
- package/src/helpers/BottomSheet/BottomSheet.tsx +28 -12
- package/src/helpers/EventBus.ts +3 -3
- package/src/messages/nativeMessages/cardMessage.ts +37 -0
- package/src/messages/nativeMessages/index.ts +14 -3
- package/src/messages/nativeMessages/sdkMessage.ts +11 -0
- package/src/messages/webMessages/unitMessages.ts +20 -7
- package/src/scripts/html/bodyScript.ts +21 -4
- package/src/sharedTypes/bookPayment.types.ts +3 -3
- package/src/sharedTypes/card.types.ts +6 -6
- package/src/sharedTypes/index.ts +1 -0
- package/src/sharedTypes/onLoadResponse.types.ts +27 -0
- package/src/sharedTypes/wallet.types.ts +17 -0
- package/src/unitSdkManager/UnitSdk.api.ts +3 -2
- package/src/unitSdkManager/UnitSdkManager.ts +11 -2
- package/src/webComponent/WebComponent.tsx +21 -10
- package/src/webComponent/WebComponent.utils.ts +26 -0
- package/src/webComponent/html.ts +9 -2
- package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
- package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
- /package/lib/typescript/nativeComponent/{UNNativeAddToWalletButton.d.ts → UnitAddToWalletButton.d.ts} +0 -0
- /package/src/nativeComponent/{UNNativeAddToWalletButton.tsx → UnitAddToWalletButton.tsx} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getStylesObject = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
|
|
10
|
+
const getStylesObject = () => {
|
|
11
|
+
return _reactNative.StyleSheet.create({
|
|
12
|
+
addToWalletButton: {
|
|
13
|
+
position: 'absolute',
|
|
14
|
+
height: _reactNative.Platform.OS === 'ios' ? 48 : 55,
|
|
15
|
+
bottom: 32,
|
|
16
|
+
left: 0,
|
|
17
|
+
right: 0,
|
|
18
|
+
marginHorizontal: 24
|
|
19
|
+
},
|
|
20
|
+
loader: {
|
|
21
|
+
position: 'absolute',
|
|
22
|
+
top: 0,
|
|
23
|
+
bottom: 0,
|
|
24
|
+
left: 0,
|
|
25
|
+
right: 0
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.getStylesObject = getStylesObject;
|
|
31
|
+
//# sourceMappingURL=UNAddToWalletBottomSheetItem.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getStylesObject","StyleSheet","create","addToWalletButton","position","height","Platform","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;;AAEO,MAAMA,eAAe,GAAG,MAAM;EACnC,OAAOC,uBAAA,CAAWC,MAAX,CAAkB;IACvBC,iBAAiB,EAAE;MACjBC,QAAQ,EAAE,UADO;MAEjBC,MAAM,EAAEC,qBAAA,CAASC,EAAT,KAAgB,KAAhB,GAAwB,EAAxB,GAA6B,EAFpB;MAGjBC,MAAM,EAAE,EAHS;MAIjBC,IAAI,EAAE,CAJW;MAKjBC,KAAK,EAAE,CALU;MAMjBC,gBAAgB,EAAE;IAND,CADI;IASvBC,MAAM,EAAE;MACNR,QAAQ,EAAE,UADJ;MAENS,GAAG,EAAE,CAFC;MAGNL,MAAM,EAAE,CAHF;MAINC,IAAI,EAAE,CAJA;MAKNC,KAAK,EAAE;IALD;EATe,CAAlB,CAAP;AAiBD,CAlBM"}
|
|
@@ -25,6 +25,8 @@ var _bodyHtml = require("../../scripts/html/bodyHtml");
|
|
|
25
25
|
|
|
26
26
|
var _cardMessage = require("../../messages/webMessages/cardMessage");
|
|
27
27
|
|
|
28
|
+
var _cardMessage2 = require("../../messages/nativeMessages/cardMessage");
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -33,10 +35,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
33
35
|
|
|
34
36
|
const UNCardComponent = props => {
|
|
35
37
|
const [height, setHeight] = (0, _react.useState)(0);
|
|
36
|
-
const [requestRefreshEvent, setRequestRefreshEvent] = (0, _react.useState)(null);
|
|
37
38
|
|
|
38
39
|
const windowWidth = _reactNative.Dimensions.get('window').width;
|
|
39
40
|
|
|
41
|
+
const walletRef = (0, _react.useRef)(null);
|
|
40
42
|
const webRef = (0, _react.useRef)(null);
|
|
41
43
|
|
|
42
44
|
const cardStatusChanged = card => {
|
|
@@ -46,7 +48,17 @@ const UNCardComponent = props => {
|
|
|
46
48
|
};
|
|
47
49
|
|
|
48
50
|
const requestRefresh = data => {
|
|
49
|
-
|
|
51
|
+
(0, _UNCardComponent.injectRefreshEventIfNeeded)(webRef.current, data, props.cardId);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const startPushProvisioning = async data => {
|
|
55
|
+
if (data.cardId !== props.cardId) return;
|
|
56
|
+
onAddToWalletClicked();
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const getAddToWalletStatus = data => {
|
|
60
|
+
if (data.cardId !== props.cardId) return;
|
|
61
|
+
getWallets();
|
|
50
62
|
};
|
|
51
63
|
|
|
52
64
|
(0, _listenerToBus.useListenerToBus)([{
|
|
@@ -55,21 +67,66 @@ const UNCardComponent = props => {
|
|
|
55
67
|
}, {
|
|
56
68
|
busEventKey: _unitMessages.UnitMessage.UNIT_REQUEST_REFRESH,
|
|
57
69
|
action: requestRefresh
|
|
70
|
+
}, {
|
|
71
|
+
busEventKey: _cardMessage2.CardNativeMessage.CARD_START_PUSH_PROVISIONING,
|
|
72
|
+
action: startPushProvisioning
|
|
73
|
+
}, {
|
|
74
|
+
busEventKey: _cardMessage2.CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS,
|
|
75
|
+
action: getAddToWalletStatus
|
|
58
76
|
}]);
|
|
59
|
-
(0, _react.useEffect)(() => {
|
|
60
|
-
(0, _UNCardComponent.injectRefreshEventIfNeeded)(webRef.current, requestRefreshEvent, props.cardId);
|
|
61
|
-
}, [requestRefreshEvent]);
|
|
62
77
|
|
|
63
78
|
const handleMessage = message => {
|
|
79
|
+
if (!message || !message.details) return;
|
|
80
|
+
|
|
64
81
|
switch (message.type) {
|
|
65
82
|
case _unitMessages.UnitMessage.UNIT_REQUEST_RENDERING:
|
|
66
|
-
|
|
83
|
+
{
|
|
84
|
+
const event = {
|
|
85
|
+
componentName: _WebComponent.WebComponentType.card,
|
|
86
|
+
componentResourceId: props.cardId,
|
|
87
|
+
requestRenderingEvent: message.details
|
|
88
|
+
};
|
|
67
89
|
|
|
68
|
-
|
|
90
|
+
_EventBus.default.Instance.event(_unitMessages.UnitMessage.UNIT_REQUEST_RENDERING, event);
|
|
91
|
+
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
69
94
|
|
|
70
95
|
case _pageMessage.PageMessage.PAGE_HEIGHT:
|
|
71
96
|
setHeight(message.details.height);
|
|
72
97
|
break;
|
|
98
|
+
|
|
99
|
+
case _unitMessages.UnitMessage.UNIT_ON_LOAD:
|
|
100
|
+
props.onLoad && props.onLoad(message.details);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const getWallets = async () => {
|
|
106
|
+
try {
|
|
107
|
+
const walletResponse = await (0, _UNCardComponent.launchGetWallets)(props.customerToken, props.cardId, props.pushProvisioningModule);
|
|
108
|
+
if (!walletResponse) return;
|
|
109
|
+
walletRef.current = walletResponse;
|
|
110
|
+
const walletStatus = {
|
|
111
|
+
status: walletResponse.status
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
_EventBus.default.Instance.event(_cardMessage2.CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
console.error(error);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const onAddToWalletClicked = async () => {
|
|
121
|
+
try {
|
|
122
|
+
await (0, _UNCardComponent.launchStartCardProvisioning)(props.pushProvisioningModule, walletRef.current);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
if (error instanceof Error) {
|
|
125
|
+
const parsedError = JSON.parse(error.message);
|
|
126
|
+
if (parsedError.code === _cardMessage2.CardAddToWalletErrors.closedNativeWalletScreen) return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
console.log(error);
|
|
73
130
|
}
|
|
74
131
|
};
|
|
75
132
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UNCardComponent","props","height","setHeight","useState","
|
|
1
|
+
{"version":3,"names":["UNCardComponent","props","height","setHeight","useState","windowWidth","Dimensions","get","width","walletRef","useRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","injectRefreshEventIfNeeded","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","useListenerToBus","busEventKey","CardMessage","CARD_STATUS_CHANGED","action","UnitMessage","UNIT_REQUEST_REFRESH","CardNativeMessage","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","WebComponentType","componentResourceId","requestRenderingEvent","EventBus","Instance","PageMessage","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","launchGetWallets","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","launchStartCardProvisioning","Error","parsedError","JSON","parse","code","CardAddToWalletErrors","closedNativeWalletScreen","log","PresentationMode","Default","getCardParams","theme","getCardScript"],"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":"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"}
|
|
@@ -3,28 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.injectRefreshEventIfNeeded = exports.getCardScript = exports.getCardParams = void 0;
|
|
6
|
+
exports.launchStartCardProvisioning = exports.launchGetWallets = exports.injectRefreshEventIfNeeded = exports.getCardScript = exports.getCardParams = void 0;
|
|
7
|
+
|
|
8
|
+
var _bodyScript = require("./../../scripts/html/bodyScript");
|
|
7
9
|
|
|
8
10
|
var _WebComponent = require("../../webComponent/WebComponent");
|
|
9
11
|
|
|
10
|
-
var
|
|
12
|
+
var _UNWalletPayloadRequest = require("./networking/requests/UNWalletPayloadRequest");
|
|
13
|
+
|
|
14
|
+
var _wallet = require("../../../src/sharedTypes/wallet.types");
|
|
11
15
|
|
|
12
16
|
const getCardParams = props => {
|
|
13
17
|
return `
|
|
14
18
|
card-id="${props.cardId}"
|
|
15
19
|
customer-token="${props.customerToken}"
|
|
20
|
+
enable-mobile-wallet="${!!props.pushProvisioningModule}"
|
|
16
21
|
`;
|
|
17
22
|
};
|
|
18
23
|
|
|
19
24
|
exports.getCardParams = getCardParams;
|
|
20
25
|
|
|
21
26
|
const getCardScript = () => {
|
|
22
|
-
return
|
|
23
|
-
const dispatchRefreshEvent = (details) => {
|
|
24
|
-
const event = new CustomEvent("${_unitMessages.UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
|
|
25
|
-
window.dispatchEvent(event)
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
27
|
+
return _bodyScript.DISPATCH_REQUEST_REFRESH;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
exports.getCardScript = getCardScript;
|
|
@@ -36,4 +36,53 @@ const injectRefreshEventIfNeeded = (currentWeb, requestRefreshEvent, cardId) =>
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
exports.injectRefreshEventIfNeeded = injectRefreshEventIfNeeded;
|
|
39
|
+
|
|
40
|
+
const launchGetWallets = async (customerToken, cardId, pushProvisioningModule) => {
|
|
41
|
+
try {
|
|
42
|
+
const encryptedPayload = await (0, _UNWalletPayloadRequest.getMobileWalletPayload)(customerToken, cardId);
|
|
43
|
+
if (!encryptedPayload) return null;
|
|
44
|
+
const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({
|
|
45
|
+
encPayload: encryptedPayload
|
|
46
|
+
}));
|
|
47
|
+
const parsedWalletsResponse = JSON.parse(walletsResponse);
|
|
48
|
+
const wallets = parsedWalletsResponse.wallets;
|
|
49
|
+
if (!wallets) return null;
|
|
50
|
+
|
|
51
|
+
if (wallets[0].code === _wallet.UNWalletCode.Apple) {
|
|
52
|
+
return {
|
|
53
|
+
name: _wallet.UNWalletName.Apple,
|
|
54
|
+
code: _wallet.UNWalletCode.Apple,
|
|
55
|
+
status: wallets[0].status
|
|
56
|
+
};
|
|
57
|
+
} else {
|
|
58
|
+
const googleWallet = wallets.filter(wallet => {
|
|
59
|
+
return wallet.name === _wallet.UNWalletName.Google;
|
|
60
|
+
});
|
|
61
|
+
if (!googleWallet) return;
|
|
62
|
+
return {
|
|
63
|
+
name: _wallet.UNWalletName.Google,
|
|
64
|
+
code: _wallet.UNWalletCode.Google,
|
|
65
|
+
status: googleWallet[0].status
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
} catch (error) {
|
|
69
|
+
return Promise.reject(error);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
exports.launchGetWallets = launchGetWallets;
|
|
74
|
+
|
|
75
|
+
const launchStartCardProvisioning = async (pushProvisioningModule, wallet) => {
|
|
76
|
+
try {
|
|
77
|
+
const response = await pushProvisioningModule.launchStartCardProvisioning(JSON.stringify({
|
|
78
|
+
walletCode: wallet === null || wallet === void 0 ? void 0 : wallet.code,
|
|
79
|
+
walletName: wallet === null || wallet === void 0 ? void 0 : wallet.name
|
|
80
|
+
}));
|
|
81
|
+
return response;
|
|
82
|
+
} catch (error) {
|
|
83
|
+
return Promise.reject(error);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
exports.launchStartCardProvisioning = launchStartCardProvisioning;
|
|
39
88
|
//# sourceMappingURL=UNCardComponent.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getCardParams","props","cardId","customerToken","
|
|
1
|
+
{"version":3,"names":["getCardParams","props","cardId","customerToken","pushProvisioningModule","getCardScript","DISPATCH_REQUEST_REFRESH","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","WebComponentType","card","valueOf","resourceId","injectJavaScript","JSON","stringify","launchGetWallets","encryptedPayload","getMobileWalletPayload","walletsResponse","encPayload","parsedWalletsResponse","parse","wallets","code","UNWalletCode","Apple","name","UNWalletName","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';\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 encryptedPayload = await getMobileWalletPayload(customerToken, cardId);\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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UNIT_SECURE_URL = exports.APIHeaders = void 0;
|
|
7
|
+
|
|
8
|
+
var _UnitSdkManager = require("../../../../unitSdkManager/UnitSdkManager");
|
|
9
|
+
|
|
10
|
+
const APIHeaders = {
|
|
11
|
+
AUTHORIZATION: 'Authorization',
|
|
12
|
+
CONTENT_TYPE: 'application/vnd.api+json'
|
|
13
|
+
};
|
|
14
|
+
exports.APIHeaders = APIHeaders;
|
|
15
|
+
const UNIT_SECURE_URL = {
|
|
16
|
+
[_UnitSdkManager.UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',
|
|
17
|
+
[_UnitSdkManager.UNEnvironment.production]: 'https://secure.api.unit.co'
|
|
18
|
+
};
|
|
19
|
+
exports.UNIT_SECURE_URL = UNIT_SECURE_URL;
|
|
20
|
+
//# sourceMappingURL=UNNetworkConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["APIHeaders","AUTHORIZATION","CONTENT_TYPE","UNIT_SECURE_URL","UNEnvironment","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;;AAEO,MAAMA,UAAU,GAAG;EACxBC,aAAa,EAAE,eADS;EAExBC,YAAY,EAAE;AAFU,CAAnB;;AAKA,MAAMC,eAAe,GAAG;EAC7B,CAACC,6BAAA,CAAcC,OAAf,GAAyB,8BADI;EAE7B,CAACD,6BAAA,CAAcE,UAAf,GAA4B;AAFC,CAAxB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getMobileWalletPayload = void 0;
|
|
7
|
+
|
|
8
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
9
|
+
|
|
10
|
+
var _UNNetworkConstants = require("../common/UNNetworkConstants");
|
|
11
|
+
|
|
12
|
+
var _reactNativeUnitComponents = require("react-native-unit-components");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
const env = _reactNativeUnitComponents.UnitSDK.getEnv();
|
|
17
|
+
|
|
18
|
+
const getMobileWalletPayload = async (customerToken, cardId) => {
|
|
19
|
+
const headers = {
|
|
20
|
+
'Content-Type': _UNNetworkConstants.APIHeaders.CONTENT_TYPE,
|
|
21
|
+
'Authorization': `Bearer ${customerToken}`
|
|
22
|
+
};
|
|
23
|
+
const data = {
|
|
24
|
+
data: {
|
|
25
|
+
attributes: {
|
|
26
|
+
signedNonce: _reactNativeUnitComponents.UnitSDK.getSignedNonce()
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const baseURL = `${_UNNetworkConstants.UNIT_SECURE_URL[env]}/cards/${cardId}/mobile-wallet-payload`;
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
const response = await _axios.default.post(baseURL, data, {
|
|
34
|
+
headers: headers
|
|
35
|
+
});
|
|
36
|
+
const encryptedPayload = response.data.data.attributes.payload;
|
|
37
|
+
return encryptedPayload;
|
|
38
|
+
} catch (error) {
|
|
39
|
+
return Promise.reject(error);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.getMobileWalletPayload = getMobileWalletPayload;
|
|
44
|
+
//# sourceMappingURL=UNWalletPayloadRequest.js.map
|
package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["env","UnitSDK","getEnv","getMobileWalletPayload","customerToken","cardId","headers","APIHeaders","CONTENT_TYPE","data","attributes","signedNonce","getSignedNonce","baseURL","UNIT_SECURE_URL","response","axios","post","encryptedPayload","payload","error","Promise","reject"],"sources":["UNWalletPayloadRequest.ts"],"sourcesContent":["import axios from 'axios';\nimport { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';\nimport { UNEnvironment, UnitSDK } from 'react-native-unit-components';\n\nconst env = UnitSDK.getEnv();\n\nexport const getMobileWalletPayload = async (customerToken: string, cardId: string) => {\n const headers = {\n 'Content-Type': APIHeaders.CONTENT_TYPE,\n 'Authorization': `Bearer ${customerToken}`,\n };\n\n const data = {\n data: {\n attributes: {\n signedNonce: UnitSDK.getSignedNonce(),\n },\n },\n };\n\n const baseURL = `${UNIT_SECURE_URL[env as keyof typeof UNEnvironment]}/cards/${cardId}/mobile-wallet-payload`;\n try {\n const response = await axios.post(\n baseURL,\n data,\n {\n headers: headers,\n });\n const encryptedPayload = response.data.data.attributes.payload;\n return encryptedPayload;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,GAAG,GAAGC,kCAAA,CAAQC,MAAR,EAAZ;;AAEO,MAAMC,sBAAsB,GAAG,OAAOC,aAAP,EAA8BC,MAA9B,KAAiD;EACrF,MAAMC,OAAO,GAAG;IACd,gBAAgBC,8BAAA,CAAWC,YADb;IAEd,iBAAkB,UAASJ,aAAc;EAF3B,CAAhB;EAKA,MAAMK,IAAI,GAAG;IACXA,IAAI,EAAE;MACJC,UAAU,EAAE;QACVC,WAAW,EAAEV,kCAAA,CAAQW,cAAR;MADH;IADR;EADK,CAAb;EAQA,MAAMC,OAAO,GAAI,GAAEC,mCAAA,CAAgBd,GAAhB,CAAmD,UAASK,MAAO,wBAAtF;;EACA,IAAI;IACF,MAAMU,QAAQ,GAAG,MAAMC,cAAA,CAAMC,IAAN,CACrBJ,OADqB,EAErBJ,IAFqB,EAGrB;MACEH,OAAO,EAAEA;IADX,CAHqB,CAAvB;IAMA,MAAMY,gBAAgB,GAAGH,QAAQ,CAACN,IAAT,CAAcA,IAAd,CAAmBC,UAAnB,CAA8BS,OAAvD;IACA,OAAOD,gBAAP;EACD,CATD,CASE,OAAOE,KAAP,EAAc;IACd,OAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;EACD;AACF,CA3BM"}
|
|
@@ -55,4 +55,17 @@ Object.keys(_UNActivityComponent).forEach(function (key) {
|
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
});
|
|
58
|
+
|
|
59
|
+
var _UNAccountComponent = require("./UNAccountComponent/UNAccountComponent");
|
|
60
|
+
|
|
61
|
+
Object.keys(_UNAccountComponent).forEach(function (key) {
|
|
62
|
+
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (key in exports && exports[key] === _UNAccountComponent[key]) return;
|
|
64
|
+
Object.defineProperty(exports, key, {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function () {
|
|
67
|
+
return _UNAccountComponent[key];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
58
71
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\nexport * from './UNAccountComponent/UNAccountComponent';\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -17,6 +17,8 @@ var _UNBottomSheetComponent = require("../../components/UNBottomSheetComponent/U
|
|
|
17
17
|
|
|
18
18
|
var _BottomSheet = require("./BottomSheet.styles");
|
|
19
19
|
|
|
20
|
+
var _useAppStateListener = require("../../hooks/useAppStateListener");
|
|
21
|
+
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
23
|
|
|
22
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -33,6 +35,7 @@ const BottomSheet = props => {
|
|
|
33
35
|
const [contentHeight, setContentHeight] = (0, _react.useState)(undefined);
|
|
34
36
|
const [currentHeight, setCurrentHeight] = (0, _react.useState)(props.sliderMaxHeight);
|
|
35
37
|
const [dy, setDy] = (0, _react.useState)(0);
|
|
38
|
+
const isAppActive = (0, _useAppStateListener.useAppStateListener)();
|
|
36
39
|
|
|
37
40
|
const _parentPanResponder = _reactNative.PanResponder.create({
|
|
38
41
|
onMoveShouldSetPanResponderCapture: (_, gestureState) => {
|
|
@@ -63,6 +66,13 @@ const BottomSheet = props => {
|
|
|
63
66
|
}
|
|
64
67
|
});
|
|
65
68
|
|
|
69
|
+
(0, _react.useEffect)(() => {
|
|
70
|
+
if (!isAppActive && isPanelOpened) {
|
|
71
|
+
setContentHeight(0);
|
|
72
|
+
|
|
73
|
+
_dismiss(false);
|
|
74
|
+
}
|
|
75
|
+
}, [isAppActive]);
|
|
66
76
|
(0, _react.useEffect)(() => {
|
|
67
77
|
if (props.isOpen && !isPanelOpened) {
|
|
68
78
|
fadeIn();
|
|
@@ -84,23 +94,31 @@ const BottomSheet = props => {
|
|
|
84
94
|
}, []);
|
|
85
95
|
|
|
86
96
|
const fadeIn = () => {
|
|
97
|
+
setIsPanelOpened(true);
|
|
98
|
+
|
|
87
99
|
_reactNative.Animated.timing(fadeAnim, {
|
|
88
100
|
toValue: 0.3,
|
|
89
101
|
duration: 500,
|
|
90
102
|
useNativeDriver: false
|
|
91
|
-
}).start(
|
|
92
|
-
setIsPanelOpened(true);
|
|
93
|
-
});
|
|
103
|
+
}).start();
|
|
94
104
|
};
|
|
95
105
|
|
|
96
|
-
const fadeOut = ()
|
|
106
|
+
const fadeOut = function () {
|
|
107
|
+
let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
108
|
+
|
|
109
|
+
/*
|
|
110
|
+
withTimeout - most of the time we declare 'Close' after the animation is end.
|
|
111
|
+
In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)
|
|
112
|
+
*/
|
|
113
|
+
setIsPanelOpened(false);
|
|
114
|
+
!withTimeout && props.onClose();
|
|
115
|
+
|
|
97
116
|
_reactNative.Animated.timing(fadeAnim, {
|
|
98
117
|
toValue: 0,
|
|
99
118
|
duration: 500,
|
|
100
119
|
useNativeDriver: false
|
|
101
120
|
}).start(() => {
|
|
102
|
-
|
|
103
|
-
props.onClose();
|
|
121
|
+
withTimeout && props.onClose();
|
|
104
122
|
});
|
|
105
123
|
};
|
|
106
124
|
|
|
@@ -117,6 +135,7 @@ const BottomSheet = props => {
|
|
|
117
135
|
const {
|
|
118
136
|
animationDuration
|
|
119
137
|
} = props;
|
|
138
|
+
props.onOpen();
|
|
120
139
|
|
|
121
140
|
if (contentHeight && currentHeight > sliderMaxHeight - contentHeight) {
|
|
122
141
|
setToContentHeight(contentHeight);
|
|
@@ -152,7 +171,8 @@ const BottomSheet = props => {
|
|
|
152
171
|
setToContentHeight(newContentHeight);
|
|
153
172
|
};
|
|
154
173
|
|
|
155
|
-
const _dismiss = ()
|
|
174
|
+
const _dismiss = function () {
|
|
175
|
+
let withTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
156
176
|
const {
|
|
157
177
|
animationDuration
|
|
158
178
|
} = props;
|
|
@@ -166,7 +186,7 @@ const BottomSheet = props => {
|
|
|
166
186
|
null;
|
|
167
187
|
});
|
|
168
188
|
|
|
169
|
-
fadeOut();
|
|
189
|
+
fadeOut(withTimeout);
|
|
170
190
|
};
|
|
171
191
|
|
|
172
192
|
const {
|
|
@@ -176,7 +196,7 @@ const BottomSheet = props => {
|
|
|
176
196
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
177
197
|
style: styles.outsideContainer,
|
|
178
198
|
activeOpacity: 1,
|
|
179
|
-
onPress: _dismiss
|
|
199
|
+
onPress: () => _dismiss()
|
|
180
200
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
|
|
181
201
|
style: styles.animation
|
|
182
202
|
})), /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({}, _parentPanResponder.panHandlers, {
|
|
@@ -191,7 +211,7 @@ const BottomSheet = props => {
|
|
|
191
211
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
192
212
|
activeOpacity: 1,
|
|
193
213
|
style: styles.closeButton,
|
|
194
|
-
onPress: _dismiss
|
|
214
|
+
onPress: () => _dismiss()
|
|
195
215
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
196
216
|
source: _images.CloseIcon
|
|
197
217
|
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
@@ -201,7 +221,7 @@ const BottomSheet = props => {
|
|
|
201
221
|
style: {
|
|
202
222
|
height: props.height
|
|
203
223
|
},
|
|
204
|
-
keyboardVerticalOffset: props.height * (1 - _UNBottomSheetComponent.
|
|
224
|
+
keyboardVerticalOffset: props.height * (1 - _UNBottomSheetComponent.BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)
|
|
205
225
|
}, children)))));
|
|
206
226
|
};
|
|
207
227
|
|
|
@@ -218,7 +238,7 @@ BottomSheet.propTypes = {
|
|
|
218
238
|
BottomSheet.defaultProps = {
|
|
219
239
|
children: /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
220
240
|
isOpen: true,
|
|
221
|
-
sliderMaxHeight: _reactNative.Dimensions.get('window').height * _UNBottomSheetComponent.
|
|
241
|
+
sliderMaxHeight: _reactNative.Dimensions.get('window').height * _UNBottomSheetComponent.BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,
|
|
222
242
|
animationDuration: 200,
|
|
223
243
|
onOpen: () => null,
|
|
224
244
|
onClose: () => null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BottomSheet","props","panelHeightValue","useRef","Animated","Value","sliderMaxHeight","current","fadeAnim","styles","getStylesObject","isPanelOpened","setIsPanelOpened","useState","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","_parentPanResponder","PanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","useEffect","fadeIn","_dismiss","BackHandler","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","onClose","animationDuration","easing","Easing","quad","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","CloseIcon","BOTTOM_SHEET_MAX_PRECANTAGE_SIZE","propTypes","PropTypes","oneOfType","node","bool","number","func","onOpen","defaultProps","Dimensions","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start(() => { setIsPanelOpened(true); });\n };\n\n const fadeOut = () => {\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n setIsPanelOpened(false);\n props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = () => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut();\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={_dismiss}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={_dismiss}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["BottomSheet","props","panelHeightValue","useRef","Animated","Value","sliderMaxHeight","current","fadeAnim","styles","getStylesObject","isPanelOpened","setIsPanelOpened","useState","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","isAppActive","useAppStateListener","_parentPanResponder","PanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","shouldEnableBottomSheetScroll","Math","abs","onPanResponderMove","handleWebViewScroll","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","useEffect","_dismiss","fadeIn","BackHandler","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","withTimeout","onClose","animationDuration","easing","Easing","quad","onOpen","_setSize","newContentHeight","nativeEvent","layout","height","children","outsideContainer","animation","panHandlers","container","transform","translateY","outerContent","closeButton","CloseIcon","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","propTypes","PropTypes","oneOfType","node","bool","number","func","defaultProps","Dimensions","get"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n Image,\n KeyboardAvoidingView,\n LayoutChangeEvent,\n PanResponder,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport { CloseIcon } from '../../assets/images';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';\nimport { getStylesObject } from './BottomSheet.styles';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n height: number,\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n handleWebViewScroll: () => void\n shouldEnableBottomSheetScroll: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n const styles = getStylesObject(fadeAnim);\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen);\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined);\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight);\n\n const [dy, setDy] = useState(0);\n\n const isAppActive = useAppStateListener();\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return props.shouldEnableBottomSheetScroll && Math.abs(gestureState.dy) > 10;\n },\n onPanResponderMove(_, gestureState) {\n if (props.shouldEnableBottomSheetScroll && gestureState.dy < 5) {\n props.handleWebViewScroll();\n }\n if (currentHeight + gestureState.dy < 0) return;\n if (!props.expandToMaxHeightEnabled && contentHeight && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight) return;\n panelHeightValue.setValue(currentHeight + gestureState.dy);\n setDy(gestureState.dy);\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse();\n } else if (!props.expandToMaxHeightEnabled) {\n contentHeight && setToContentHeight(contentHeight);\n } else if (dy < 0) {\n expand();\n } else {\n expand();\n }\n }\n });\n\n useEffect(() => {\n if (!isAppActive && isPanelOpened) {\n setContentHeight(0);\n _dismiss(false);\n }\n }, [isAppActive]);\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn();\n } else if (isPanelOpened) {\n setContentHeight(0);\n _dismiss();\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value));\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id);\n });\n }, []);\n\n const fadeIn = () => {\n setIsPanelOpened(true);\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start();\n };\n\n const fadeOut = (withTimeout = true) => {\n /*\n withTimeout - most of the time we declare 'Close' after the animation is end.\n In a case that the app is not active we do it without timeout. (Otherwise a race condition may occur.)\n */\n setIsPanelOpened(false);\n !withTimeout && props.onClose();\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n withTimeout && props.onClose();\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight,\n useNativeDriver: false,\n }).start();\n };\n\n const expand = () => {\n const { animationDuration } = props;\n props.onOpen();\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n setToContentHeight(contentHeight);\n return;\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start();\n };\n\n const collapse = () => {\n if (contentHeight && currentHeight > (sliderMaxHeight - contentHeight)) {\n _dismiss();\n return;\n }\n\n contentHeight && setToContentHeight(contentHeight);\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n const newContentHeight = e.nativeEvent.layout.height;\n\n setContentHeight(newContentHeight);\n setToContentHeight(newContentHeight);\n };\n\n const _dismiss = (withTimeout = true) => {\n const { animationDuration } = props;\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n null;\n });\n fadeOut(withTimeout);\n };\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={styles.outsideContainer} activeOpacity={1}\n onPress={() => _dismiss()}\n >\n <Animated.View\n style={styles.animation}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity\n activeOpacity={1}\n style={styles.closeButton}\n onPress={() => _dismiss()}\n >\n <Image source={CloseIcon} />\n </TouchableOpacity>\n\n <View\n onLayout={_setSize}\n >\n <KeyboardAvoidingView\n behavior=\"padding\"\n style={{ height: props.height }}\n keyboardVerticalOffset={props.height * (1 - BOTTOM_SHEET_MAX_PERCENTAGE_SIZE)}\n >\n {children}\n </KeyboardAvoidingView>\n </View>\n </View>\n </Animated.View>\n </>\n );\n};\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nexport default BottomSheet;\n"],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ const getStylesObject = fadeAnim => {
|
|
|
29
29
|
container: {
|
|
30
30
|
position: 'relative',
|
|
31
31
|
flex: 1,
|
|
32
|
-
marginTop: _reactNative.Dimensions.get('window').height * (1 - _UNBottomSheetComponent.
|
|
32
|
+
marginTop: _reactNative.Dimensions.get('window').height * (1 - _UNBottomSheetComponent.BOTTOM_SHEET_MAX_PERCENTAGE_SIZE),
|
|
33
33
|
shadowColor: _variables.VARIABLES.COLORS.BLACK,
|
|
34
34
|
shadowOffset: {
|
|
35
35
|
width: 0,
|