@deuna/react-native-sdk 1.0.3 → 1.0.6
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/lib/module/DeunaSDK.js +87 -78
- package/lib/module/DeunaSDK.js.map +1 -1
- package/lib/module/components/DeunaWidget.js +27 -25
- package/lib/module/components/DeunaWidget.js.map +1 -1
- package/lib/module/components/ExternalUrlWebView.js +56 -0
- package/lib/module/components/ExternalUrlWebView.js.map +1 -0
- package/lib/module/controllers/BaseWebViewController.js +59 -23
- package/lib/module/controllers/BaseWebViewController.js.map +1 -1
- package/lib/module/controllers/ElementsWidgetController.js +2 -3
- package/lib/module/controllers/ElementsWidgetController.js.map +1 -1
- package/lib/module/controllers/{OpenInNewTabController.js → ExternalUrlController.js} +4 -4
- package/lib/module/controllers/ExternalUrlController.js.map +1 -0
- package/lib/module/controllers/PaymentWidgetController.js +2 -2
- package/lib/module/controllers/PaymentWidgetController.js.map +1 -1
- package/lib/module/helpers/Completer.js +2 -2
- package/lib/module/helpers/Completer.js.map +1 -1
- package/lib/module/helpers/CrossPlatformBrowser.js +51 -0
- package/lib/module/helpers/CrossPlatformBrowser.js.map +1 -0
- package/lib/module/helpers/ExternalUrlHelper.js +96 -0
- package/lib/module/helpers/ExternalUrlHelper.js.map +1 -0
- package/lib/module/helpers/ViewManager.js +32 -0
- package/lib/module/helpers/ViewManager.js.map +1 -0
- package/lib/module/helpers/{getController.js → buildDeunaWidgetController.js} +20 -10
- package/lib/module/helpers/buildDeunaWidgetController.js.map +1 -0
- package/lib/module/helpers/getSubmitStrategy.js +1 -1
- package/lib/module/helpers/getSubmitStrategy.js.map +1 -1
- package/lib/module/interfaces/constants.js +1 -0
- package/lib/module/interfaces/constants.js.map +1 -1
- package/lib/module/interfaces/types.js.map +1 -1
- package/lib/module/types/base.js.map +1 -1
- package/lib/module/types/envs.js +48 -0
- package/lib/module/types/envs.js.map +1 -0
- package/lib/module/types/fraudProviders.js +4 -0
- package/lib/module/types/fraudProviders.js.map +1 -0
- package/lib/module/types/helpers/buildElementsLink.js +15 -6
- package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
- package/lib/module/types/helpers/buildPaymentLink.js +7 -3
- package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
- package/lib/module/types/helpers/buildVoucherLink.js +3 -1
- package/lib/module/types/helpers/buildVoucherLink.js.map +1 -1
- package/lib/module/types/helpers/constants.js +4 -0
- package/lib/module/types/helpers/constants.js.map +1 -0
- package/lib/module/types/helpers/urlConfig.js +1 -1
- package/lib/module/types/helpers/urlConfig.js.map +1 -1
- package/lib/module/types/utils/addSearchParamWhen.js +8 -0
- package/lib/module/types/utils/addSearchParamWhen.js.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +9 -11
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +9 -7
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/controllers/{OpenInNewTabController.d.ts → ExternalUrlController.d.ts} +2 -2
- package/lib/typescript/deuna-sdk-react-native/src/controllers/ExternalUrlController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts +25 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts +48 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts +19 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/{getController.d.ts → buildDeunaWidgetController.d.ts} +4 -2
- package/lib/typescript/deuna-sdk-react-native/src/helpers/buildDeunaWidgetController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts +4 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts +45 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts +68 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts +15 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts +8 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +2 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts +3 -0
- package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts.map +1 -0
- package/package.json +3 -1
- package/src/DeunaSDK.ts +103 -90
- package/src/components/DeunaWidget.tsx +38 -35
- package/src/components/ExternalUrlWebView.tsx +65 -0
- package/src/controllers/BaseWebViewController.ts +70 -29
- package/src/controllers/ElementsWidgetController.ts +2 -3
- package/src/controllers/{OpenInNewTabController.ts → ExternalUrlController.ts} +3 -3
- package/src/controllers/PaymentWidgetController.ts +2 -2
- package/src/helpers/Completer.ts +2 -2
- package/src/helpers/CrossPlatformBrowser.ts +49 -0
- package/src/helpers/ExternalUrlHelper.ts +118 -0
- package/src/helpers/ViewManager.ts +45 -0
- package/src/helpers/{getController.ts → buildDeunaWidgetController.ts} +41 -12
- package/src/helpers/getSubmitStrategy.ts +1 -1
- package/src/interfaces/constants.ts +2 -0
- package/src/interfaces/types.ts +4 -0
- package/src/types/base.ts +2 -0
- package/src/types/envs.ts +50 -0
- package/src/types/fraudProviders.ts +98 -0
- package/src/types/helpers/buildElementsLink.ts +19 -11
- package/src/types/helpers/buildPaymentLink.ts +7 -2
- package/src/types/helpers/buildVoucherLink.ts +2 -0
- package/src/types/helpers/constants.ts +1 -0
- package/src/types/helpers/urlConfig.ts +3 -1
- package/src/types/interfaces/callbacks.ts +10 -1
- package/src/types/interfaces/initWidgetBase.ts +2 -0
- package/src/types/utils/addSearchParamWhen.ts +11 -0
- package/lib/module/components/NewTabWebView.js +0 -56
- package/lib/module/components/NewTabWebView.js.map +0 -1
- package/lib/module/controllers/OpenInNewTabController.js.map +0 -1
- package/lib/module/helpers/getController.js.map +0 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts +0 -7
- package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts.map +0 -1
- package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map +0 -1
- package/lib/typescript/deuna-sdk-react-native/src/helpers/getController.d.ts.map +0 -1
- package/src/components/NewTabWebView.tsx +0 -64
package/lib/module/DeunaSDK.js
CHANGED
|
@@ -2,37 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import { BaseDeuna } from "./types/index.js";
|
|
4
4
|
import { PaymentWidgetController } from "./controllers/PaymentWidgetController.js";
|
|
5
|
-
import {
|
|
6
|
-
import { getWidgetController } from "./helpers/getController.js";
|
|
7
|
-
import { Completer } from "./helpers/Completer.js";
|
|
5
|
+
import { buildDeunaWidgetController } from "./helpers/buildDeunaWidgetController.js";
|
|
8
6
|
import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
|
|
9
7
|
import { DownloadType, Mode } from "./interfaces/types.js";
|
|
10
|
-
import { Platform } from 'react-native';
|
|
11
8
|
import { DeviceFingerprintController } from "./controllers/DeviceFingerprintController.js";
|
|
12
|
-
import { DEVICE_FINGERPRINT_URL } from "./interfaces/constants.js";
|
|
9
|
+
import { DEVICE_FINGERPRINT_URL, DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER } from "./interfaces/constants.js";
|
|
13
10
|
import { getSubmitStrategy } from "./helpers/getSubmitStrategy.js";
|
|
11
|
+
import { WebViewManager } from "./helpers/ViewManager.js";
|
|
12
|
+
import { ExternalUrlBrowser, ExternalUrlHelper } from "./helpers/ExternalUrlHelper.js";
|
|
14
13
|
export class DeunaSDK extends BaseDeuna {
|
|
15
14
|
constructor(config, onDestroyed) {
|
|
16
15
|
super();
|
|
17
16
|
this.config = config;
|
|
18
17
|
this.onDestroyed = onDestroyed;
|
|
19
18
|
}
|
|
20
|
-
mode = null;
|
|
21
19
|
listeners = new Set();
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
deunaWidgetManager = new WebViewManager();
|
|
21
|
+
externalUrlHelper = new ExternalUrlHelper();
|
|
24
22
|
deviceFingerprintController = null;
|
|
25
23
|
submitStrategy = null;
|
|
26
|
-
modalDismissPromise = null;
|
|
27
|
-
newTabModalDismissPromise = null;
|
|
28
|
-
get safeWebViewController() {
|
|
29
|
-
if (!this.webViewController) {
|
|
30
|
-
const errorMessage = 'A variant of the init method must be called first. Please call initPaymentWidget, initVoucherWidget, or another init method before using this functionality.';
|
|
31
|
-
console.error(errorMessage);
|
|
32
|
-
throw new Error(errorMessage);
|
|
33
|
-
}
|
|
34
|
-
return this.webViewController;
|
|
35
|
-
}
|
|
36
24
|
|
|
37
25
|
/**
|
|
38
26
|
* Generates a device fingerprint, creates a invisible webview to get the device fingerprint
|
|
@@ -64,12 +52,11 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
64
52
|
controller,
|
|
65
53
|
mode
|
|
66
54
|
} = params;
|
|
67
|
-
this.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.webViewController.delegate = this.buildDelegate();
|
|
55
|
+
this.deunaWidgetManager.initialize({
|
|
56
|
+
controller,
|
|
57
|
+
mode: mode ?? Mode.MODAL,
|
|
58
|
+
delegate: this.buildDelegate()
|
|
59
|
+
});
|
|
73
60
|
this.notifyListeners();
|
|
74
61
|
};
|
|
75
62
|
|
|
@@ -80,9 +67,10 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
80
67
|
*/
|
|
81
68
|
async initPaymentWidget(props) {
|
|
82
69
|
this.setWidgetController({
|
|
83
|
-
controller:
|
|
70
|
+
controller: buildDeunaWidgetController(this.config, {
|
|
84
71
|
widget: 'payment',
|
|
85
|
-
...props
|
|
72
|
+
...props,
|
|
73
|
+
sdkInstance: this
|
|
86
74
|
}),
|
|
87
75
|
mode: props.mode
|
|
88
76
|
});
|
|
@@ -95,7 +83,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
95
83
|
*/
|
|
96
84
|
async initElements(props) {
|
|
97
85
|
this.setWidgetController({
|
|
98
|
-
controller:
|
|
86
|
+
controller: buildDeunaWidgetController(this.config, {
|
|
99
87
|
widget: 'elements',
|
|
100
88
|
...props
|
|
101
89
|
}),
|
|
@@ -110,7 +98,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
110
98
|
*/
|
|
111
99
|
async initNextAction(props) {
|
|
112
100
|
this.setWidgetController({
|
|
113
|
-
controller:
|
|
101
|
+
controller: buildDeunaWidgetController(this.config, {
|
|
114
102
|
widget: 'nextAction',
|
|
115
103
|
...props
|
|
116
104
|
}),
|
|
@@ -125,7 +113,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
125
113
|
*/
|
|
126
114
|
async initVoucherWidget(props) {
|
|
127
115
|
this.setWidgetController({
|
|
128
|
-
controller:
|
|
116
|
+
controller: buildDeunaWidgetController(this.config, {
|
|
129
117
|
widget: 'voucher',
|
|
130
118
|
...props
|
|
131
119
|
}),
|
|
@@ -133,59 +121,66 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
133
121
|
});
|
|
134
122
|
}
|
|
135
123
|
isValid = async () => {
|
|
136
|
-
return this.
|
|
124
|
+
return this.deunaWidgetManager.controller.isValid();
|
|
137
125
|
};
|
|
138
126
|
submit = async () => {
|
|
139
127
|
this.getStateFn = () => this.getWidgetState();
|
|
140
128
|
const submitStrategy = await getSubmitStrategy(this);
|
|
141
129
|
if (!submitStrategy) {
|
|
142
|
-
return this.
|
|
130
|
+
return this.deunaWidgetManager.controller.submit();
|
|
143
131
|
}
|
|
144
132
|
this.submitStrategy = submitStrategy;
|
|
145
133
|
this.notifyListeners();
|
|
146
134
|
return this.submitStrategy.submit();
|
|
147
135
|
};
|
|
148
136
|
setCustomStyle = async style => {
|
|
149
|
-
return this.
|
|
137
|
+
return this.deunaWidgetManager.controller.setCustomStyle(style);
|
|
150
138
|
};
|
|
151
139
|
refetchOrder = async () => {
|
|
152
|
-
return this.
|
|
140
|
+
return this.deunaWidgetManager.controller.refetchOrder();
|
|
153
141
|
};
|
|
154
142
|
getWidgetState = async () => {
|
|
155
|
-
return this.
|
|
143
|
+
return this.deunaWidgetManager.controller.getWidgetState();
|
|
156
144
|
};
|
|
157
145
|
|
|
158
146
|
/**
|
|
159
147
|
* Closes the DEUNA widget and releases the resources
|
|
160
148
|
*/
|
|
161
149
|
close = async () => {
|
|
162
|
-
if (this.
|
|
163
|
-
|
|
164
|
-
} else if (this.webViewController instanceof ElementsWidgetController) {
|
|
165
|
-
this.webViewController.callbacks.onClosed?.(this.webViewController.closedAction);
|
|
150
|
+
if (!this.deunaWidgetManager.isInitialized) {
|
|
151
|
+
return;
|
|
166
152
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
await this.submitStrategy?.deunaSDK.close();
|
|
176
|
-
this.submitStrategy = null;
|
|
177
|
-
this.notifyListeners();
|
|
153
|
+
try {
|
|
154
|
+
let onClosedCallback;
|
|
155
|
+
const closedAction = this.deunaWidgetManager.controller.closedAction;
|
|
156
|
+
if (this.deunaWidgetManager.controller instanceof PaymentWidgetController) {
|
|
157
|
+
onClosedCallback = this.deunaWidgetManager.controller.callbacks.onClosed;
|
|
158
|
+
} else if (this.deunaWidgetManager.controller instanceof ElementsWidgetController) {
|
|
159
|
+
onClosedCallback = this.deunaWidgetManager.controller.callbacks.onClosed;
|
|
160
|
+
}
|
|
178
161
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
162
|
+
// If the external url was opened in a Safari View Controller or a Custom Chrome Tab
|
|
163
|
+
// we need to wait until the browser is dismissed
|
|
164
|
+
await this.externalUrlHelper.waitForClose();
|
|
165
|
+
|
|
166
|
+
// Destroy the main webview and dismiss the modal
|
|
167
|
+
this.deunaWidgetManager.destroy();
|
|
168
|
+
|
|
169
|
+
// Close the submit strategy if it exists
|
|
170
|
+
await this.submitStrategy?.deunaSDK.close();
|
|
171
|
+
this.submitStrategy = null;
|
|
172
|
+
|
|
173
|
+
// Notify listeners that the widget has been closed
|
|
174
|
+
this.notifyListeners();
|
|
175
|
+
|
|
176
|
+
// Notify the user that the widget has been closed
|
|
177
|
+
this.onDestroyed?.();
|
|
178
|
+
|
|
179
|
+
// Notify the widget that the user has closed the widget
|
|
180
|
+
onClosedCallback?.(closedAction);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
console.error('Error closing the widget', error);
|
|
183
|
+
}
|
|
189
184
|
};
|
|
190
185
|
addListener = listener => {
|
|
191
186
|
this.listeners.add(listener);
|
|
@@ -197,20 +192,22 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
197
192
|
this.listeners.forEach(listener => listener());
|
|
198
193
|
};
|
|
199
194
|
notifyDownloadFile = url => {
|
|
200
|
-
if (this.
|
|
201
|
-
this.
|
|
195
|
+
if (this.deunaWidgetManager.controller instanceof PaymentWidgetController) {
|
|
196
|
+
this.deunaWidgetManager.controller.callbacks.onDownloadFile?.({
|
|
202
197
|
type: DownloadType.URL,
|
|
203
198
|
data: url
|
|
204
199
|
});
|
|
205
200
|
}
|
|
206
201
|
};
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Closes the external URL Webview
|
|
205
|
+
*/
|
|
206
|
+
onCloseExternalUrl = async () => {
|
|
207
|
+
if (this.externalUrlHelper.externalUrlWebViewController) {
|
|
208
|
+
await this.externalUrlHelper.closeWebView();
|
|
209
|
+
this.notifyListeners();
|
|
210
210
|
}
|
|
211
|
-
this.newTabWebViewController?.dispose();
|
|
212
|
-
this.newTabWebViewController = null;
|
|
213
|
-
this.notifyListeners();
|
|
214
211
|
};
|
|
215
212
|
|
|
216
213
|
/**
|
|
@@ -221,21 +218,33 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
221
218
|
*/
|
|
222
219
|
buildDelegate = () => {
|
|
223
220
|
return {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
onOpenExternalUrl: url => {
|
|
222
|
+
try {
|
|
223
|
+
const host = new URL(url).host;
|
|
224
|
+
let browser = ExternalUrlBrowser.WEB_VIEW;
|
|
225
|
+
// Check if the URL is from a domain that must be opened in a cross platform browser (SafariView or Chrome Custom Tab)
|
|
226
|
+
for (const domain of DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER) {
|
|
227
|
+
if (host.includes(domain)) {
|
|
228
|
+
browser = ExternalUrlBrowser.CROSS_PLATFORM_BROWSER;
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
this.externalUrlHelper.openUrl({
|
|
233
|
+
url,
|
|
234
|
+
browser,
|
|
235
|
+
delegate: {
|
|
236
|
+
onCloseExternalUrl: this.onCloseExternalUrl,
|
|
237
|
+
onFileDownload: this.notifyDownloadFile
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
this.notifyListeners();
|
|
241
|
+
} catch (error) {
|
|
242
|
+
console.error('Error opening external URL', error);
|
|
228
243
|
}
|
|
229
|
-
this.newTabWebViewController.delegate = {
|
|
230
|
-
onFileDownload: this.notifyDownloadFile,
|
|
231
|
-
onNewTabWindowClose: this.onCloseNewTab
|
|
232
|
-
};
|
|
233
|
-
this.notifyListeners();
|
|
234
244
|
},
|
|
245
|
+
onCloseExternalUrl: this.onCloseExternalUrl,
|
|
235
246
|
onCloseButtonPressed: this.close,
|
|
236
247
|
// Close the payment widget when the user presses the close button
|
|
237
|
-
onCloseSubWebView: this.onCloseNewTab,
|
|
238
|
-
// Close the new tab web view when the DEUNA widget emits an error event or when the purchase is successful
|
|
239
248
|
onFileDownload: this.notifyDownloadFile // Notify the user when a request to download a file is made
|
|
240
249
|
};
|
|
241
250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseDeuna","PaymentWidgetController","
|
|
1
|
+
{"version":3,"names":["BaseDeuna","PaymentWidgetController","buildDeunaWidgetController","ElementsWidgetController","DownloadType","Mode","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER","getSubmitStrategy","WebViewManager","ExternalUrlBrowser","ExternalUrlHelper","DeunaSDK","constructor","config","onDestroyed","listeners","Set","deunaWidgetManager","externalUrlHelper","deviceFingerprintController","submitStrategy","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","mode","MODAL","delegate","buildDelegate","initPaymentWidget","props","widget","sdkInstance","initElements","initNextAction","initVoucherWidget","isValid","submit","getStateFn","getWidgetState","setCustomStyle","style","refetchOrder","close","isInitialized","onClosedCallback","closedAction","callbacks","onClosed","waitForClose","destroy","deunaSDK","error","console","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","type","URL","data","onCloseExternalUrl","externalUrlWebViewController","closeWebView","onOpenExternalUrl","host","browser","WEB_VIEW","domain","includes","CROSS_PLATFORM_BROWSER","openUrl","onFileDownload","onCloseButtonPressed"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import { Modal, SafeAreaView, StyleSheet, View } from 'react-native';
|
|
4
4
|
import { useEffect, useRef, useState } from 'react';
|
|
5
5
|
import { DeunaWebView } from "./DeunaWebView.js";
|
|
6
|
-
import { NewTabWebView } from "./NewTabWebView.js";
|
|
7
6
|
import { Mode } from "../interfaces/types.js";
|
|
8
7
|
import { DeviceFingerprintWebView } from "./DeviceFingerprintWebView.js";
|
|
8
|
+
import { ExternalUrlWebView } from "./ExternalUrlWebView.js";
|
|
9
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
export const DeunaWidget = props => {
|
|
11
11
|
const {
|
|
@@ -38,7 +38,7 @@ const DeunaWidgetContainer = props => {
|
|
|
38
38
|
instance
|
|
39
39
|
} = props;
|
|
40
40
|
const instanceRef = useRef(instance);
|
|
41
|
-
const [
|
|
41
|
+
const [isVisible, setIsVisible] = useState(instanceRef.current.deunaWidgetManager.isInitialized);
|
|
42
42
|
useEffect(() => {
|
|
43
43
|
instanceRef.current = instance;
|
|
44
44
|
}, [instance]);
|
|
@@ -47,59 +47,61 @@ const DeunaWidgetContainer = props => {
|
|
|
47
47
|
// has changed
|
|
48
48
|
useEffect(() => {
|
|
49
49
|
const listener = () => {
|
|
50
|
-
|
|
50
|
+
setIsVisible(instanceRef.current.deunaWidgetManager.isInitialized);
|
|
51
51
|
};
|
|
52
52
|
instanceRef.current.addListener(listener);
|
|
53
53
|
return () => {
|
|
54
54
|
instanceRef.current.removeListener(listener);
|
|
55
|
-
instanceRef.current.
|
|
55
|
+
if (instanceRef.current.deunaWidgetManager.isInitialized) {
|
|
56
|
+
instanceRef.current.deunaWidgetManager.controller?.dispose();
|
|
57
|
+
}
|
|
56
58
|
};
|
|
57
59
|
}, []);
|
|
58
|
-
const isModal = mode === Mode.MODAL;
|
|
59
|
-
const isEmbedded = mode === Mode.EMBEDDED;
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
62
|
* This function is used to close the widget
|
|
63
63
|
*/
|
|
64
64
|
const onClose = () => {
|
|
65
|
-
const controller = instanceRef.current.
|
|
65
|
+
const controller = instanceRef.current.deunaWidgetManager.controller;
|
|
66
66
|
controller.closedAction = 'userAction';
|
|
67
67
|
instanceRef.current.close();
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
// render the widget if mode is not null
|
|
71
|
+
const viewManager = instanceRef.current.deunaWidgetManager;
|
|
72
|
+
const controller = viewManager.isInitialized ? viewManager.controller : null;
|
|
73
|
+
const isModal = isVisible && viewManager.mode === Mode.MODAL;
|
|
74
|
+
const isEmbedded = isVisible && viewManager.mode === Mode.EMBEDDED;
|
|
71
75
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
72
|
-
children: [/*#__PURE__*/_jsx(Modal, {
|
|
76
|
+
children: [isModal && /*#__PURE__*/_jsx(Modal, {
|
|
73
77
|
presentationStyle: "pageSheet",
|
|
74
78
|
animationType: "slide",
|
|
75
79
|
onRequestClose: onClose,
|
|
76
|
-
|
|
77
|
-
visible: isModal,
|
|
78
|
-
children: isModal && /*#__PURE__*/_jsx(SafeAreaView, {
|
|
80
|
+
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
79
81
|
style: styles.container,
|
|
80
82
|
children: /*#__PURE__*/_jsxs(View, {
|
|
81
83
|
style: styles.container,
|
|
82
84
|
children: [/*#__PURE__*/_jsx(DeunaWebView, {
|
|
83
|
-
url:
|
|
84
|
-
onWebView:
|
|
85
|
-
onMessage:
|
|
86
|
-
onLoad:
|
|
87
|
-
onError:
|
|
88
|
-
onShouldStartLoadWithRequest:
|
|
89
|
-
}), /*#__PURE__*/_jsx(
|
|
85
|
+
url: controller?.url ?? '',
|
|
86
|
+
onWebView: controller?.setWebView,
|
|
87
|
+
onMessage: controller?.onMessage,
|
|
88
|
+
onLoad: controller?.onLoad,
|
|
89
|
+
onError: controller?.onError,
|
|
90
|
+
onShouldStartLoadWithRequest: controller?.onShouldStartLoadWithRequest
|
|
91
|
+
}), /*#__PURE__*/_jsx(ExternalUrlWebView, {
|
|
90
92
|
instance: instanceRef.current
|
|
91
93
|
})]
|
|
92
94
|
})
|
|
93
95
|
})
|
|
94
|
-
}), isEmbedded && /*#__PURE__*/_jsx(
|
|
96
|
+
}), isEmbedded && /*#__PURE__*/_jsx(ExternalUrlWebView, {
|
|
95
97
|
instance: instanceRef.current
|
|
96
98
|
}), isEmbedded && /*#__PURE__*/_jsx(DeunaWebView, {
|
|
97
|
-
url:
|
|
98
|
-
onWebView:
|
|
99
|
-
onMessage:
|
|
100
|
-
onLoad:
|
|
101
|
-
onError:
|
|
102
|
-
onShouldStartLoadWithRequest:
|
|
99
|
+
url: controller?.url ?? '',
|
|
100
|
+
onWebView: controller?.setWebView,
|
|
101
|
+
onMessage: controller?.onMessage,
|
|
102
|
+
onLoad: controller?.onLoad,
|
|
103
|
+
onError: controller?.onError,
|
|
104
|
+
onShouldStartLoadWithRequest: controller?.onShouldStartLoadWithRequest
|
|
103
105
|
}), /*#__PURE__*/_jsx(DeviceFingerprintWebView, {
|
|
104
106
|
instance: instanceRef.current
|
|
105
107
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","
|
|
1
|
+
{"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","Mode","DeviceFingerprintWebView","ExternalUrlWebView","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DeunaWidget","props","instance","instanceRef","showPaymentStrategy","setShowPaymentStrategy","current","listener","submitStrategy","addListener","removeListener","children","DeunaWidgetContainer","deunaSDK","isVisible","setIsVisible","deunaWidgetManager","isInitialized","controller","dispose","onClose","closedAction","close","viewManager","isModal","mode","MODAL","isEmbedded","EMBEDDED","presentationStyle","animationType","onRequestClose","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Modal, SafeAreaView, StyleSheet } from 'react-native';
|
|
5
|
+
import { DeunaWebView } from "./DeunaWebView.js";
|
|
6
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
export const ExternalUrlWebView = props => {
|
|
8
|
+
const {
|
|
9
|
+
instance
|
|
10
|
+
} = props;
|
|
11
|
+
const instanceRef = useRef(instance);
|
|
12
|
+
const [visible, setVisible] = useState(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
instanceRef.current = instance;
|
|
15
|
+
}, [instance]);
|
|
16
|
+
|
|
17
|
+
// Listen when the DeunaSDK instance configuration
|
|
18
|
+
// has changed
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const ref = instanceRef.current;
|
|
21
|
+
const listener = () => {
|
|
22
|
+
const isVisible = !!ref.externalUrlHelper.externalUrlWebViewController;
|
|
23
|
+
setVisible(isVisible);
|
|
24
|
+
};
|
|
25
|
+
instanceRef.current.addListener(listener);
|
|
26
|
+
return () => {
|
|
27
|
+
ref.removeListener(listener);
|
|
28
|
+
ref.externalUrlHelper.externalUrlWebViewController?.dispose();
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
const externalUrlWebViewController = instanceRef.current.externalUrlHelper.externalUrlWebViewController;
|
|
32
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
33
|
+
children: visible && /*#__PURE__*/_jsx(Modal, {
|
|
34
|
+
presentationStyle: "pageSheet",
|
|
35
|
+
animationType: "slide",
|
|
36
|
+
onRequestClose: instanceRef.current.onCloseExternalUrl,
|
|
37
|
+
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
38
|
+
style: styles.container,
|
|
39
|
+
children: /*#__PURE__*/_jsx(DeunaWebView, {
|
|
40
|
+
url: externalUrlWebViewController?.url ?? '',
|
|
41
|
+
onWebView: externalUrlWebViewController?.setWebView,
|
|
42
|
+
onMessage: externalUrlWebViewController?.onMessage,
|
|
43
|
+
onLoad: externalUrlWebViewController?.onLoad,
|
|
44
|
+
onError: externalUrlWebViewController?.onError,
|
|
45
|
+
onShouldStartLoadWithRequest: externalUrlWebViewController?.onShouldStartLoadWithRequest
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
container: {
|
|
53
|
+
flex: 1
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=ExternalUrlWebView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Modal","SafeAreaView","StyleSheet","DeunaWebView","jsx","_jsx","Fragment","_Fragment","ExternalUrlWebView","props","instance","instanceRef","visible","setVisible","current","ref","listener","isVisible","externalUrlHelper","externalUrlWebViewController","addListener","removeListener","dispose","children","presentationStyle","animationType","onRequestClose","onCloseExternalUrl","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/ExternalUrlWebView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,KAAK,EAAEC,YAAY,EAAEC,UAAU,QAAQ,cAAc;AAC9D,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAM9C,OAAO,MAAMC,kBAAkB,GAAIC,KAA8B,IAAK;EACpE,MAAM;IAAEC;EAAS,CAAC,GAAGD,KAAK;EAC1B,MAAME,WAAW,GAAGb,MAAM,CAAWY,QAAQ,CAAC;EAC9C,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAE7CF,SAAS,CAAC,MAAM;IACdc,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACA;EACAb,SAAS,CAAC,MAAM;IACd,MAAMkB,GAAG,GAAGJ,WAAW,CAACG,OAAO;IAC/B,MAAME,QAAQ,GAAGA,CAAA,KAAM;MACrB,MAAMC,SAAS,GAAG,CAAC,CAACF,GAAG,CAACG,iBAAiB,CAACC,4BAA4B;MACtEN,UAAU,CAACI,SAAS,CAAC;IACvB,CAAC;IAEDN,WAAW,CAACG,OAAO,CAACM,WAAW,CAACJ,QAAQ,CAAC;IAEzC,OAAO,MAAM;MACXD,GAAG,CAACM,cAAc,CAACL,QAAQ,CAAC;MAC5BD,GAAG,CAACG,iBAAiB,CAACC,4BAA4B,EAAEG,OAAO,CAAC,CAAC;IAC/D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMH,4BAA4B,GAChCR,WAAW,CAACG,OAAO,CAACI,iBAAiB,CAACC,4BAA4B;EAEpE,oBACEd,IAAA,CAAAE,SAAA;IAAAgB,QAAA,EACGX,OAAO,iBACNP,IAAA,CAACL,KAAK;MACJwB,iBAAiB,EAAC,WAAW;MAC7BC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAEf,WAAW,CAACG,OAAO,CAACa,kBAAmB;MAAAJ,QAAA,eAEvDlB,IAAA,CAACJ,YAAY;QAAC2B,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAP,QAAA,eACpClB,IAAA,CAACF,YAAY;UACX4B,GAAG,EAAEZ,4BAA4B,EAAEY,GAAG,IAAI,EAAG;UAC7CC,SAAS,EAAEb,4BAA4B,EAAEc,UAAW;UACpDC,SAAS,EAAEf,4BAA4B,EAAEe,SAAU;UACnDC,MAAM,EAAEhB,4BAA4B,EAAEgB,MAAO;UAC7CC,OAAO,EAAEjB,4BAA4B,EAAEiB,OAAQ;UAC/CC,4BAA4B,EAC1BlB,4BAA4B,EAAEkB;QAC/B,CACF;MAAC,CACU;IAAC,CACV;EACR,CACD,CAAC;AAEP,CAAC;AAED,MAAMR,MAAM,GAAG3B,UAAU,CAACoC,MAAM,CAAC;EAAER,SAAS,EAAE;IAAES,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
|