@deuna/react-native-sdk 1.0.2 → 1.0.4

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.
Files changed (115) hide show
  1. package/README.md +21 -0
  2. package/lib/module/DeunaSDK.js +96 -75
  3. package/lib/module/DeunaSDK.js.map +1 -1
  4. package/lib/module/components/DeunaWidget.js +54 -26
  5. package/lib/module/components/DeunaWidget.js.map +1 -1
  6. package/lib/module/components/ExternalUrlWebView.js +56 -0
  7. package/lib/module/components/ExternalUrlWebView.js.map +1 -0
  8. package/lib/module/controllers/BaseWebViewController.js +21 -20
  9. package/lib/module/controllers/BaseWebViewController.js.map +1 -1
  10. package/lib/module/controllers/ElementsWidgetController.js +5 -5
  11. package/lib/module/controllers/ElementsWidgetController.js.map +1 -1
  12. package/lib/module/controllers/{OpenInNewTabController.js → ExternalUrlController.js} +4 -4
  13. package/lib/module/controllers/ExternalUrlController.js.map +1 -0
  14. package/lib/module/controllers/PaymentWidgetController.js +5 -4
  15. package/lib/module/controllers/PaymentWidgetController.js.map +1 -1
  16. package/lib/module/helpers/Completer.js +2 -2
  17. package/lib/module/helpers/Completer.js.map +1 -1
  18. package/lib/module/helpers/CrossPlatformBrowser.js +51 -0
  19. package/lib/module/helpers/CrossPlatformBrowser.js.map +1 -0
  20. package/lib/module/helpers/ExternalUrlHelper.js +96 -0
  21. package/lib/module/helpers/ExternalUrlHelper.js.map +1 -0
  22. package/lib/module/helpers/SubmitStrategy.js +44 -0
  23. package/lib/module/helpers/SubmitStrategy.js.map +1 -0
  24. package/lib/module/helpers/ViewManager.js +32 -0
  25. package/lib/module/helpers/ViewManager.js.map +1 -0
  26. package/lib/module/helpers/{getController.js → buildDeunaWidgetController.js} +12 -4
  27. package/lib/module/helpers/buildDeunaWidgetController.js.map +1 -0
  28. package/lib/module/helpers/getSubmitStrategy.js +32 -0
  29. package/lib/module/helpers/getSubmitStrategy.js.map +1 -0
  30. package/lib/module/interfaces/constants.js +2 -0
  31. package/lib/module/interfaces/constants.js.map +1 -1
  32. package/lib/module/interfaces/types.js.map +1 -1
  33. package/lib/module/types/helpers/buildElementsLink.js +3 -1
  34. package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
  35. package/lib/module/types/helpers/buildPaymentLink.js +3 -1
  36. package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
  37. package/lib/module/types/helpers/buildVoucherLink.js +3 -1
  38. package/lib/module/types/helpers/buildVoucherLink.js.map +1 -1
  39. package/lib/module/types/helpers/constants.js +4 -0
  40. package/lib/module/types/helpers/constants.js.map +1 -0
  41. package/lib/module/types/helpers/urlConfig.js +1 -1
  42. package/lib/module/types/helpers/urlConfig.js.map +1 -1
  43. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +14 -13
  44. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
  45. package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts.map +1 -1
  46. package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts +7 -0
  47. package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts.map +1 -0
  48. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +7 -6
  49. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
  50. package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts +3 -1
  51. package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts.map +1 -1
  52. package/lib/typescript/deuna-sdk-react-native/src/controllers/{OpenInNewTabController.d.ts → ExternalUrlController.d.ts} +2 -2
  53. package/lib/typescript/deuna-sdk-react-native/src/controllers/ExternalUrlController.d.ts.map +1 -0
  54. package/lib/typescript/deuna-sdk-react-native/src/controllers/PaymentWidgetController.d.ts +3 -2
  55. package/lib/typescript/deuna-sdk-react-native/src/controllers/PaymentWidgetController.d.ts.map +1 -1
  56. package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts +25 -0
  57. package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts.map +1 -0
  58. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts +48 -0
  59. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts.map +1 -0
  60. package/lib/typescript/deuna-sdk-react-native/src/helpers/SubmitStrategy.d.ts +23 -0
  61. package/lib/typescript/deuna-sdk-react-native/src/helpers/SubmitStrategy.d.ts.map +1 -0
  62. package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts +19 -0
  63. package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts.map +1 -0
  64. package/lib/typescript/deuna-sdk-react-native/src/helpers/{getController.d.ts → buildDeunaWidgetController.d.ts} +2 -2
  65. package/lib/typescript/deuna-sdk-react-native/src/helpers/buildDeunaWidgetController.d.ts.map +1 -0
  66. package/lib/typescript/deuna-sdk-react-native/src/helpers/getSubmitStrategy.d.ts +4 -0
  67. package/lib/typescript/deuna-sdk-react-native/src/helpers/getSubmitStrategy.d.ts.map +1 -0
  68. package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +2 -0
  69. package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -1
  70. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts +6 -0
  71. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts.map +1 -1
  72. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -1
  73. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -1
  74. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts.map +1 -1
  75. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts +2 -0
  76. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts.map +1 -0
  77. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts +1 -0
  78. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts.map +1 -1
  79. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts +8 -0
  80. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts.map +1 -1
  81. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +1 -0
  82. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -1
  83. package/package.json +7 -5
  84. package/src/DeunaSDK.ts +115 -83
  85. package/src/components/DeunaWidget.tsx +75 -35
  86. package/src/components/ExternalUrlWebView.tsx +65 -0
  87. package/src/controllers/BaseWebViewController.ts +28 -27
  88. package/src/controllers/ElementsWidgetController.ts +8 -6
  89. package/src/controllers/{OpenInNewTabController.ts → ExternalUrlController.ts} +3 -3
  90. package/src/controllers/PaymentWidgetController.ts +12 -5
  91. package/src/helpers/Completer.ts +2 -2
  92. package/src/helpers/CrossPlatformBrowser.ts +49 -0
  93. package/src/helpers/ExternalUrlHelper.ts +118 -0
  94. package/src/helpers/SubmitStrategy.ts +67 -0
  95. package/src/helpers/ViewManager.ts +45 -0
  96. package/src/helpers/{getController.ts → buildDeunaWidgetController.ts} +11 -4
  97. package/src/helpers/getSubmitStrategy.ts +42 -0
  98. package/src/interfaces/constants.ts +5 -1
  99. package/src/interfaces/types.ts +8 -0
  100. package/src/types/helpers/buildElementsLink.ts +4 -1
  101. package/src/types/helpers/buildPaymentLink.ts +2 -0
  102. package/src/types/helpers/buildVoucherLink.ts +2 -0
  103. package/src/types/helpers/constants.ts +1 -0
  104. package/src/types/helpers/urlConfig.ts +3 -1
  105. package/src/types/interfaces/callbacks.ts +10 -1
  106. package/src/types/interfaces/initWidgetBase.ts +1 -0
  107. package/lib/module/components/NewTabWebView.js +0 -56
  108. package/lib/module/components/NewTabWebView.js.map +0 -1
  109. package/lib/module/controllers/OpenInNewTabController.js.map +0 -1
  110. package/lib/module/helpers/getController.js.map +0 -1
  111. package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts +0 -7
  112. package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts.map +0 -1
  113. package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map +0 -1
  114. package/lib/typescript/deuna-sdk-react-native/src/helpers/getController.d.ts.map +0 -1
  115. package/src/components/NewTabWebView.tsx +0 -64
package/README.md CHANGED
@@ -8,6 +8,27 @@ React Native SDK
8
8
  For detailed installation and usage instructions, please refer to our official documentation at [DEUNA React Native SDK Documentation](https://docs.deuna.com/reference/react-native-sdk).
9
9
 
10
10
 
11
+
12
+ ### Running the Example App
13
+
14
+ 1. Install dependencies:
15
+ ```bash
16
+ yarn install
17
+ ```
18
+
19
+ 2. Run the example app:
20
+
21
+ For iOS:
22
+ ```bash
23
+ yarn example:ios
24
+ ```
25
+
26
+ For Android:
27
+ ```bash
28
+ yarn example:android
29
+ ```
30
+
31
+
11
32
  ## License
12
33
 
13
34
  MIT
@@ -2,34 +2,25 @@
2
2
 
3
3
  import { BaseDeuna } from "./types/index.js";
4
4
  import { PaymentWidgetController } from "./controllers/PaymentWidgetController.js";
5
- import { OpenInNewTabController } from "./controllers/OpenInNewTabController.js";
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";
10
+ import { getSubmitStrategy } from "./helpers/getSubmitStrategy.js";
11
+ import { WebViewManager } from "./helpers/ViewManager.js";
12
+ import { ExternalUrlBrowser, ExternalUrlHelper } from "./helpers/ExternalUrlHelper.js";
13
13
  export class DeunaSDK extends BaseDeuna {
14
- constructor(config) {
14
+ constructor(config, onDestroyed) {
15
15
  super();
16
16
  this.config = config;
17
+ this.onDestroyed = onDestroyed;
17
18
  }
18
- mode = null;
19
19
  listeners = new Set();
20
- webViewController = null;
21
- newTabWebViewController = null;
20
+ deunaWidgetManager = new WebViewManager();
21
+ externalUrlHelper = new ExternalUrlHelper();
22
22
  deviceFingerprintController = null;
23
- modalDismissPromise = null;
24
- newTabModalDismissPromise = null;
25
- get safeWebViewController() {
26
- if (!this.webViewController) {
27
- const errorMessage = 'A variant of the init method must be called first. Please call initPaymentWidget, initVoucherWidget, or another init method before using this functionality.';
28
- console.error(errorMessage);
29
- throw new Error(errorMessage);
30
- }
31
- return this.webViewController;
32
- }
23
+ submitStrategy = null;
33
24
 
34
25
  /**
35
26
  * Generates a device fingerprint, creates a invisible webview to get the device fingerprint
@@ -61,12 +52,11 @@ export class DeunaSDK extends BaseDeuna {
61
52
  controller,
62
53
  mode
63
54
  } = params;
64
- this.mode = mode ?? Mode.MODAL;
65
- if (this.mode === Mode.MODAL && Platform.OS === 'ios') {
66
- this.modalDismissPromise = new Completer();
67
- }
68
- this.webViewController = controller;
69
- this.webViewController.delegate = this.buildDelegate();
55
+ this.deunaWidgetManager.initialize({
56
+ controller,
57
+ mode: mode ?? Mode.MODAL,
58
+ delegate: this.buildDelegate()
59
+ });
70
60
  this.notifyListeners();
71
61
  };
72
62
 
@@ -77,7 +67,7 @@ export class DeunaSDK extends BaseDeuna {
77
67
  */
78
68
  async initPaymentWidget(props) {
79
69
  this.setWidgetController({
80
- controller: getWidgetController(this.config, {
70
+ controller: buildDeunaWidgetController(this.config, {
81
71
  widget: 'payment',
82
72
  ...props
83
73
  }),
@@ -92,7 +82,7 @@ export class DeunaSDK extends BaseDeuna {
92
82
  */
93
83
  async initElements(props) {
94
84
  this.setWidgetController({
95
- controller: getWidgetController(this.config, {
85
+ controller: buildDeunaWidgetController(this.config, {
96
86
  widget: 'elements',
97
87
  ...props
98
88
  }),
@@ -107,7 +97,7 @@ export class DeunaSDK extends BaseDeuna {
107
97
  */
108
98
  async initNextAction(props) {
109
99
  this.setWidgetController({
110
- controller: getWidgetController(this.config, {
100
+ controller: buildDeunaWidgetController(this.config, {
111
101
  widget: 'nextAction',
112
102
  ...props
113
103
  }),
@@ -122,7 +112,7 @@ export class DeunaSDK extends BaseDeuna {
122
112
  */
123
113
  async initVoucherWidget(props) {
124
114
  this.setWidgetController({
125
- controller: getWidgetController(this.config, {
115
+ controller: buildDeunaWidgetController(this.config, {
126
116
  widget: 'voucher',
127
117
  ...props
128
118
  }),
@@ -130,49 +120,66 @@ export class DeunaSDK extends BaseDeuna {
130
120
  });
131
121
  }
132
122
  isValid = async () => {
133
- return this.safeWebViewController.isValid();
123
+ return this.deunaWidgetManager.controller.isValid();
134
124
  };
135
125
  submit = async () => {
136
- return this.safeWebViewController.submit();
126
+ this.getStateFn = () => this.getWidgetState();
127
+ const submitStrategy = await getSubmitStrategy(this);
128
+ if (!submitStrategy) {
129
+ return this.deunaWidgetManager.controller.submit();
130
+ }
131
+ this.submitStrategy = submitStrategy;
132
+ this.notifyListeners();
133
+ return this.submitStrategy.submit();
137
134
  };
138
135
  setCustomStyle = async style => {
139
- return this.safeWebViewController.setCustomStyle(style);
136
+ return this.deunaWidgetManager.controller.setCustomStyle(style);
140
137
  };
141
138
  refetchOrder = async () => {
142
- return this.safeWebViewController.refetchOrder();
139
+ return this.deunaWidgetManager.controller.refetchOrder();
143
140
  };
144
141
  getWidgetState = async () => {
145
- return this.safeWebViewController.getWidgetState();
142
+ return this.deunaWidgetManager.controller.getWidgetState();
146
143
  };
147
144
 
148
145
  /**
149
146
  * Closes the DEUNA widget and releases the resources
150
147
  */
151
148
  close = async () => {
152
- if (this.webViewController instanceof PaymentWidgetController) {
153
- this.webViewController.callbacks.onClosed?.(this.webViewController.closedAction);
154
- } else if (this.webViewController instanceof ElementsWidgetController) {
155
- this.webViewController.callbacks.onClosed?.(this.webViewController.closedAction);
149
+ if (!this.deunaWidgetManager.isInitialized) {
150
+ return;
156
151
  }
157
- this.onCloseNewTab();
158
- await this.newTabModalDismissPromise?.wait;
159
- this.newTabWebViewController?.dispose();
160
- this.webViewController?.dispose();
161
- // reset all prop
162
- this.newTabWebViewController = null;
163
- this.webViewController = null;
164
- this.mode = null;
165
- this.notifyListeners();
152
+ try {
153
+ let onClosedCallback;
154
+ const closedAction = this.deunaWidgetManager.controller.closedAction;
155
+ if (this.deunaWidgetManager.controller instanceof PaymentWidgetController) {
156
+ onClosedCallback = this.deunaWidgetManager.controller.callbacks.onClosed;
157
+ } else if (this.deunaWidgetManager.controller instanceof ElementsWidgetController) {
158
+ onClosedCallback = this.deunaWidgetManager.controller.callbacks.onClosed;
159
+ }
166
160
 
167
- // if the widget was shown in modal mode, wait for the modal to be dismissed
168
- await this.modalDismissPromise?.wait;
169
- this.modalDismissPromise = null;
170
- };
171
- onModalDismissed = () => {
172
- this.modalDismissPromise?.complete();
173
- };
174
- onNewTabDismissed = () => {
175
- this.newTabModalDismissPromise?.complete();
161
+ // If the external url was opened in a Safari View Controller or a Custom Chrome Tab
162
+ // we need to wait until the browser is dismissed
163
+ await this.externalUrlHelper.waitForClose();
164
+
165
+ // Destroy the main webview and dismiss the modal
166
+ this.deunaWidgetManager.destroy();
167
+
168
+ // Close the submit strategy if it exists
169
+ await this.submitStrategy?.deunaSDK.close();
170
+ this.submitStrategy = null;
171
+
172
+ // Notify listeners that the widget has been closed
173
+ this.notifyListeners();
174
+
175
+ // Notify the user that the widget has been closed
176
+ this.onDestroyed?.();
177
+
178
+ // Notify the widget that the user has closed the widget
179
+ onClosedCallback?.(closedAction);
180
+ } catch (error) {
181
+ console.error('Error closing the widget', error);
182
+ }
176
183
  };
177
184
  addListener = listener => {
178
185
  this.listeners.add(listener);
@@ -184,20 +191,22 @@ export class DeunaSDK extends BaseDeuna {
184
191
  this.listeners.forEach(listener => listener());
185
192
  };
186
193
  notifyDownloadFile = url => {
187
- if (this.safeWebViewController instanceof PaymentWidgetController) {
188
- this.safeWebViewController.callbacks.onDownloadFile?.({
194
+ if (this.deunaWidgetManager.controller instanceof PaymentWidgetController) {
195
+ this.deunaWidgetManager.controller.callbacks.onDownloadFile?.({
189
196
  type: DownloadType.URL,
190
197
  data: url
191
198
  });
192
199
  }
193
200
  };
194
- onCloseNewTab = () => {
195
- if (this.webViewController) {
196
- this.webViewController.redirectUrl = null;
201
+
202
+ /**
203
+ * Closes the external URL Webview
204
+ */
205
+ onCloseExternalUrl = async () => {
206
+ if (this.externalUrlHelper.externalUrlWebViewController) {
207
+ await this.externalUrlHelper.closeWebView();
208
+ this.notifyListeners();
197
209
  }
198
- this.newTabWebViewController?.dispose();
199
- this.newTabWebViewController = null;
200
- this.notifyListeners();
201
210
  };
202
211
 
203
212
  /**
@@ -208,21 +217,33 @@ export class DeunaSDK extends BaseDeuna {
208
217
  */
209
218
  buildDelegate = () => {
210
219
  return {
211
- onOpenInNewTab: url => {
212
- this.newTabWebViewController = new OpenInNewTabController(url);
213
- if (Platform.OS === 'ios') {
214
- this.newTabModalDismissPromise = new Completer();
220
+ onOpenExternalUrl: url => {
221
+ try {
222
+ const host = new URL(url).host;
223
+ let browser = ExternalUrlBrowser.WEB_VIEW;
224
+ // Check if the URL is from a domain that must be opened in a cross platform browser (SafariView or Chrome Custom Tab)
225
+ for (const domain of DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER) {
226
+ if (host.includes(domain)) {
227
+ browser = ExternalUrlBrowser.CROSS_PLATFORM_BROWSER;
228
+ break;
229
+ }
230
+ }
231
+ this.externalUrlHelper.openUrl({
232
+ url,
233
+ browser,
234
+ delegate: {
235
+ onCloseExternalUrl: this.onCloseExternalUrl,
236
+ onFileDownload: this.notifyDownloadFile
237
+ }
238
+ });
239
+ this.notifyListeners();
240
+ } catch (error) {
241
+ console.error('Error opening external URL', error);
215
242
  }
216
- this.newTabWebViewController.delegate = {
217
- onFileDownload: this.notifyDownloadFile,
218
- onNewTabWindowClose: this.onCloseNewTab
219
- };
220
- this.notifyListeners();
221
243
  },
244
+ onCloseExternalUrl: this.onCloseExternalUrl,
222
245
  onCloseButtonPressed: this.close,
223
246
  // Close the payment widget when the user presses the close button
224
- onCloseSubWebView: this.onCloseNewTab,
225
- // Close the new tab web view when the DEUNA widget emits an error event or when the purchase is successful
226
247
  onFileDownload: this.notifyDownloadFile // Notify the user when a request to download a file is made
227
248
  };
228
249
  };
@@ -1 +1 @@
1
- {"version":3,"names":["BaseDeuna","PaymentWidgetController","OpenInNewTabController","getWidgetController","Completer","ElementsWidgetController","DownloadType","Mode","Platform","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DeunaSDK","constructor","config","mode","listeners","Set","webViewController","newTabWebViewController","deviceFingerprintController","modalDismissPromise","newTabModalDismissPromise","safeWebViewController","errorMessage","console","error","Error","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","MODAL","OS","delegate","buildDelegate","initPaymentWidget","props","widget","initElements","initNextAction","initVoucherWidget","isValid","submit","setCustomStyle","style","refetchOrder","getWidgetState","close","callbacks","onClosed","closedAction","onCloseNewTab","wait","onModalDismissed","complete","onNewTabDismissed","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","type","URL","data","redirectUrl","onOpenInNewTab","onFileDownload","onNewTabWindowClose","onCloseButtonPressed","onCloseSubWebView"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":";;AAAA,SACEA,SAAS,QAiBJ,kBAAS;AAMhB,SAASC,uBAAuB,QAAQ,0CAAuC;AAC/E,SAASC,sBAAsB,QAAQ,yCAAsC;AAC7E,SAASC,mBAAmB,QAAQ,4BAAyB;AAC7D,SAASC,SAAS,QAAQ,wBAAqB;AAC/C,SAASC,wBAAwB,QAAQ,2CAAwC;AACjF,SAASC,YAAY,EAAEC,IAAI,QAAwB,uBAAoB;AACvE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,2BAA2B,QAAQ,8CAA2C;AACvF,SAASC,sBAAsB,QAAQ,2BAAwB;AAE/D,OAAO,MAAMC,QAAQ,SAASX,SAAS,CAAC;EACtCY,WAAWA,CAAkBC,MAAwB,EAAE;IACrD,KAAK,CAAC,CAAC;IAAC,KADmBA,MAAwB,GAAxBA,MAAwB;EAErD;EAEAC,IAAI,GAAgB,IAAI;EAShBC,SAAS,GAAoB,IAAIC,GAAG,CAAC,CAAC;EAC9CC,iBAAiB,GAAkC,IAAI;EACvDC,uBAAuB,GAAiC,IAAI;EAC5DC,2BAA2B,GAAuC,IAAI;EAEtEC,mBAAmB,GAA2B,IAAI;EAClDC,yBAAyB,GAA2B,IAAI;EAExD,IAAYC,qBAAqBA,CAAA,EAA2B;IAC1D,IAAI,CAAC,IAAI,CAACL,iBAAiB,EAAE;MAC3B,MAAMM,YAAY,GAChB,8JAA8J;MAChKC,OAAO,CAACC,KAAK,CAACF,YAAY,CAAC;MAC3B,MAAM,IAAIG,KAAK,CAACH,YAAY,CAAC;IAC/B;IACA,OAAO,IAAI,CAACN,iBAAiB;EAC/B;;EAEA;AACF;AACA;AACA;AACA;EACEU,YAAY,GAAG,MAAOC,MAA4B,IAAsB;IACtE,IAAI,CAACT,2BAA2B,GAAG,IAAIV,2BAA2B,CAChE,IAAI,CAACI,MAAM,CAACgB,YAAY,EACxB,IAAI,CAAChB,MAAM,CAACiB,WAAW,IAAI,YAC7B,CAAC;IACD,IAAI,CAACX,2BAA2B,CAACY,GAAG,GAAGrB,sBAAsB;IAC7D,IAAI,CAACsB,eAAe,CAAC,CAAC;IAEtB,MAAMC,iBAAiB,GACrB,MAAM,IAAI,CAACd,2BAA2B,CAACe,yBAAyB,CAC9DN,MAAM,IAAI,CAAC,CACb,CAAC;IACH,IAAI,CAACT,2BAA2B,EAAEgB,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAChB,2BAA2B,GAAG,IAAI;IACvC,IAAI,CAACa,eAAe,CAAC,CAAC;IACtB,OAAOC,iBAAiB,IAAI,EAAE;EAChC,CAAC;EAED,OAAOG,UAAUA,CAACvB,MAAwB,EAAY;IACpD,OAAO,IAAIF,QAAQ,CAACE,MAAM,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACUwB,mBAAmB,GAAIT,MAG9B,IAAW;IACV,MAAM;MAAEU,UAAU;MAAExB;IAAK,CAAC,GAAGc,MAAM;IACnC,IAAI,CAACd,IAAI,GAAGA,IAAI,IAAIP,IAAI,CAACgC,KAAK;IAC9B,IAAI,IAAI,CAACzB,IAAI,KAAKP,IAAI,CAACgC,KAAK,IAAI/B,QAAQ,CAACgC,EAAE,KAAK,KAAK,EAAE;MACrD,IAAI,CAACpB,mBAAmB,GAAG,IAAIhB,SAAS,CAAO,CAAC;IAClD;IACA,IAAI,CAACa,iBAAiB,GAAGqB,UAAU;IACnC,IAAI,CAACrB,iBAAiB,CAACwB,QAAQ,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;IACtD,IAAI,CAACV,eAAe,CAAC,CAAC;EACxB,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMW,iBAAiBA,CACrBC,KAGC,EACD;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAEnC,mBAAmB,CAAC,IAAI,CAACU,MAAM,EAAE;QAC3CgC,MAAM,EAAE,SAAS;QACjB,GAAGD;MACL,CAAC,CAAC;MACF9B,IAAI,EAAE8B,KAAK,CAAC9B;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMgC,YAAYA,CAChBF,KAAqE,EACrE;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAEnC,mBAAmB,CAAC,IAAI,CAACU,MAAM,EAAE;QAC3CgC,MAAM,EAAE,UAAU;QAClB,GAAGD;MACL,CAAC,CAAC;MACF9B,IAAI,EAAE8B,KAAK,CAAC9B;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMiC,cAAcA,CAACH,KAAkD,EAAE;IACvE,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAEnC,mBAAmB,CAAC,IAAI,CAACU,MAAM,EAAE;QAC3CgC,MAAM,EAAE,YAAY;QACpB,GAAGD;MACL,CAAC,CAAC;MACF9B,IAAI,EAAE8B,KAAK,CAAC9B;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMkC,iBAAiBA,CACrBJ,KAGC,EACD;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAEnC,mBAAmB,CAAC,IAAI,CAACU,MAAM,EAAE;QAC3CgC,MAAM,EAAE,SAAS;QACjB,GAAGD;MACL,CAAC,CAAC;MACF9B,IAAI,EAAE8B,KAAK,CAAC9B;IACd,CAAC,CAAC;EACJ;EAEAmC,OAAO,GAAG,MAAAA,CAAA,KAA8B;IACtC,OAAO,IAAI,CAAC3B,qBAAqB,CAAC2B,OAAO,CAAC,CAAC;EAC7C,CAAC;EAEDC,MAAM,GAAG,MAAAA,CAAA,KAAmC;IAC1C,OAAO,IAAI,CAAC5B,qBAAqB,CAAC4B,MAAM,CAAC,CAAC;EAC5C,CAAC;EAEDC,cAAc,GAAG,MAAOC,KAA4B,IAAoB;IACtE,OAAO,IAAI,CAAC9B,qBAAqB,CAAC6B,cAAc,CAACC,KAAK,CAAC;EACzD,CAAC;EAEDC,YAAY,GAAG,MAAAA,CAAA,KAAkC;IAC/C,OAAO,IAAI,CAAC/B,qBAAqB,CAAC+B,YAAY,CAAC,CAAC;EAClD,CAAC;EAEDC,cAAc,GAAG,MAAAA,CAAA,KAA4B;IAC3C,OAAO,IAAI,CAAChC,qBAAqB,CAACgC,cAAc,CAAC,CAAC;EACpD,CAAC;;EAED;AACF;AACA;EACEC,KAAK,GAAG,MAAAA,CAAA,KAA2B;IACjC,IAAI,IAAI,CAACtC,iBAAiB,YAAYhB,uBAAuB,EAAE;MAC7D,IAAI,CAACgB,iBAAiB,CAACuC,SAAS,CAACC,QAAQ,GACvC,IAAI,CAACxC,iBAAiB,CAACyC,YACzB,CAAC;IACH,CAAC,MAAM,IAAI,IAAI,CAACzC,iBAAiB,YAAYZ,wBAAwB,EAAE;MACrE,IAAI,CAACY,iBAAiB,CAACuC,SAAS,CAACC,QAAQ,GACvC,IAAI,CAACxC,iBAAiB,CAACyC,YACzB,CAAC;IACH;IACA,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,MAAM,IAAI,CAACtC,yBAAyB,EAAEuC,IAAI;IAC1C,IAAI,CAAC1C,uBAAuB,EAAEiB,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAClB,iBAAiB,EAAEkB,OAAO,CAAC,CAAC;IACjC;IACA,IAAI,CAACjB,uBAAuB,GAAG,IAAI;IACnC,IAAI,CAACD,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAACH,IAAI,GAAG,IAAI;IAChB,IAAI,CAACkB,eAAe,CAAC,CAAC;;IAEtB;IACA,MAAM,IAAI,CAACZ,mBAAmB,EAAEwC,IAAI;IACpC,IAAI,CAACxC,mBAAmB,GAAG,IAAI;EACjC,CAAC;EAEDyC,gBAAgB,GAAGA,CAAA,KAAM;IACvB,IAAI,CAACzC,mBAAmB,EAAE0C,QAAQ,CAAC,CAAC;EACtC,CAAC;EAEDC,iBAAiB,GAAGA,CAAA,KAAM;IACxB,IAAI,CAAC1C,yBAAyB,EAAEyC,QAAQ,CAAC,CAAC;EAC5C,CAAC;EAEDE,WAAW,GAAIC,QAAoB,IAAK;IACtC,IAAI,CAAClD,SAAS,CAACmD,GAAG,CAACD,QAAQ,CAAC;EAC9B,CAAC;EAEDE,cAAc,GAAIF,QAAoB,IAAK;IACzC,IAAI,CAAClD,SAAS,CAACqD,MAAM,CAACH,QAAQ,CAAC;EACjC,CAAC;EAEDjC,eAAe,GAAGA,CAAA,KAAM;IACtB,IAAI,CAACjB,SAAS,CAACsD,OAAO,CAAEJ,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAClD,CAAC;EAEOK,kBAAkB,GAAIvC,GAAW,IAAK;IAC5C,IAAI,IAAI,CAACT,qBAAqB,YAAYrB,uBAAuB,EAAE;MACjE,IAAI,CAACqB,qBAAqB,CAACkC,SAAS,CAACe,cAAc,GAAG;QACpDC,IAAI,EAAElE,YAAY,CAACmE,GAAG;QACtBC,IAAI,EAAE3C;MACR,CAAC,CAAC;IACJ;EACF,CAAC;EAED4B,aAAa,GAAGA,CAAA,KAAM;IACpB,IAAI,IAAI,CAAC1C,iBAAiB,EAAE;MAC1B,IAAI,CAACA,iBAAiB,CAAC0D,WAAW,GAAG,IAAI;IAC3C;IACA,IAAI,CAACzD,uBAAuB,EAAEiB,OAAO,CAAC,CAAC;IACvC,IAAI,CAACjB,uBAAuB,GAAG,IAAI;IACnC,IAAI,CAACc,eAAe,CAAC,CAAC;EACxB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,aAAa,GAAGA,CAAA,KAAuB;IACrC,OAAO;MACLkC,cAAc,EAAG7C,GAAG,IAAK;QACvB,IAAI,CAACb,uBAAuB,GAAG,IAAIhB,sBAAsB,CAAC6B,GAAG,CAAC;QAC9D,IAAIvB,QAAQ,CAACgC,EAAE,KAAK,KAAK,EAAE;UACzB,IAAI,CAACnB,yBAAyB,GAAG,IAAIjB,SAAS,CAAO,CAAC;QACxD;QACA,IAAI,CAACc,uBAAuB,CAACuB,QAAQ,GAAG;UACtCoC,cAAc,EAAE,IAAI,CAACP,kBAAkB;UACvCQ,mBAAmB,EAAE,IAAI,CAACnB;QAC5B,CAAC;QACD,IAAI,CAAC3B,eAAe,CAAC,CAAC;MACxB,CAAC;MACD+C,oBAAoB,EAAE,IAAI,CAACxB,KAAK;MAAE;MAClCyB,iBAAiB,EAAE,IAAI,CAACrB,aAAa;MAAE;MACvCkB,cAAc,EAAE,IAAI,CAACP,kBAAkB,CAAE;IAC3C,CAAC;EACH,CAAC;AACH","ignoreList":[]}
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","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,16 +3,42 @@
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";
9
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ import { ExternalUrlWebView } from "./ExternalUrlWebView.js";
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export const DeunaWidget = props => {
11
11
  const {
12
12
  instance
13
13
  } = props;
14
14
  const instanceRef = useRef(instance);
15
- const [mode, setMode] = useState(instance.mode);
15
+ const [showPaymentStrategy, setShowPaymentStrategy] = useState(false);
16
+ useEffect(() => {
17
+ instanceRef.current = instance;
18
+ }, [instance]);
19
+ useEffect(() => {
20
+ const listener = () => {
21
+ setShowPaymentStrategy(instanceRef.current.submitStrategy !== null);
22
+ };
23
+ instanceRef.current.addListener(listener);
24
+ return () => {
25
+ instanceRef.current.removeListener(listener);
26
+ };
27
+ }, []);
28
+ return /*#__PURE__*/_jsxs(_Fragment, {
29
+ children: [/*#__PURE__*/_jsx(DeunaWidgetContainer, {
30
+ instance: instanceRef.current
31
+ }, "MainDeunaWidget"), showPaymentStrategy && /*#__PURE__*/_jsx(DeunaWidgetContainer, {
32
+ instance: instanceRef.current.submitStrategy.deunaSDK
33
+ }, "PaymentStrategy")]
34
+ });
35
+ };
36
+ const DeunaWidgetContainer = props => {
37
+ const {
38
+ instance
39
+ } = props;
40
+ const instanceRef = useRef(instance);
41
+ const [isVisible, setIsVisible] = useState(instanceRef.current.deunaWidgetManager.isInitialized);
16
42
  useEffect(() => {
17
43
  instanceRef.current = instance;
18
44
  }, [instance]);
@@ -21,59 +47,61 @@ export const DeunaWidget = props => {
21
47
  // has changed
22
48
  useEffect(() => {
23
49
  const listener = () => {
24
- setMode(instanceRef.current.mode);
50
+ setIsVisible(instanceRef.current.deunaWidgetManager.isInitialized);
25
51
  };
26
52
  instanceRef.current.addListener(listener);
27
53
  return () => {
28
54
  instanceRef.current.removeListener(listener);
29
- instanceRef.current.webViewController?.dispose();
55
+ if (instanceRef.current.deunaWidgetManager.isInitialized) {
56
+ instanceRef.current.deunaWidgetManager.controller?.dispose();
57
+ }
30
58
  };
31
59
  }, []);
32
- const isModal = mode === Mode.MODAL;
33
- const isEmbedded = mode === Mode.EMBEDDED;
34
60
 
35
61
  /**
36
62
  * This function is used to close the widget
37
63
  */
38
64
  const onClose = () => {
39
- const controller = instanceRef.current.webViewController;
65
+ const controller = instanceRef.current.deunaWidgetManager.controller;
40
66
  controller.closedAction = 'userAction';
41
67
  instanceRef.current.close();
42
68
  };
43
69
 
44
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;
45
75
  return /*#__PURE__*/_jsxs(_Fragment, {
46
- children: [/*#__PURE__*/_jsx(Modal, {
76
+ children: [isModal && /*#__PURE__*/_jsx(Modal, {
47
77
  presentationStyle: "pageSheet",
48
78
  animationType: "slide",
49
79
  onRequestClose: onClose,
50
- onDismiss: instanceRef.current.onModalDismissed,
51
- visible: isModal,
52
- children: isModal && /*#__PURE__*/_jsx(SafeAreaView, {
80
+ children: /*#__PURE__*/_jsx(SafeAreaView, {
53
81
  style: styles.container,
54
82
  children: /*#__PURE__*/_jsxs(View, {
55
83
  style: styles.container,
56
84
  children: [/*#__PURE__*/_jsx(DeunaWebView, {
57
- url: instanceRef.current.webViewController?.url ?? '',
58
- onWebView: instanceRef.current.webViewController?.setWebView,
59
- onMessage: instanceRef.current.webViewController?.onMessage,
60
- onLoad: instanceRef.current.webViewController?.onLoad,
61
- onError: instanceRef.current.webViewController?.onError,
62
- onShouldStartLoadWithRequest: instanceRef.current.webViewController?.onShouldStartLoadWithRequest
63
- }), /*#__PURE__*/_jsx(NewTabWebView, {
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, {
64
92
  instance: instanceRef.current
65
93
  })]
66
94
  })
67
95
  })
68
- }), isEmbedded && /*#__PURE__*/_jsx(NewTabWebView, {
96
+ }), isEmbedded && /*#__PURE__*/_jsx(ExternalUrlWebView, {
69
97
  instance: instanceRef.current
70
98
  }), isEmbedded && /*#__PURE__*/_jsx(DeunaWebView, {
71
- url: instanceRef.current.webViewController?.url ?? '',
72
- onWebView: instanceRef.current.webViewController?.setWebView,
73
- onMessage: instanceRef.current.webViewController?.onMessage,
74
- onLoad: instanceRef.current.webViewController?.onLoad,
75
- onError: instanceRef.current.webViewController?.onError,
76
- onShouldStartLoadWithRequest: instanceRef.current.webViewController?.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
77
105
  }), /*#__PURE__*/_jsx(DeviceFingerprintWebView, {
78
106
  instance: instanceRef.current
79
107
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","NewTabWebView","Mode","DeviceFingerprintWebView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DeunaWidget","props","instance","instanceRef","mode","setMode","current","listener","addListener","removeListener","webViewController","dispose","isModal","MODAL","isEmbedded","EMBEDDED","onClose","controller","closedAction","close","children","presentationStyle","animationType","onRequestClose","onDismiss","onModalDismissed","visible","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
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":[]}