react-native-webview-bootpay 13.8.41 → 13.13.4-4.alpha.1

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 (101) hide show
  1. package/README.md +53 -69
  2. package/android/build.gradle +1 -11
  3. package/android/gradle.properties +5 -47
  4. package/android/src/main/AndroidManifest.xml +9 -5
  5. package/android/src/main/AndroidManifestNew.xml +97 -0
  6. package/android/src/main/java/kr/co/bootpay/webview/BPCWebChromeClient.java +57 -11
  7. package/android/src/main/java/kr/co/bootpay/webview/BPCWebView.java +101 -68
  8. package/android/src/main/java/kr/co/bootpay/webview/BPCWebViewClient.java +70 -56
  9. package/android/src/main/java/kr/co/bootpay/webview/BPCWebViewManagerImpl.kt +119 -65
  10. package/android/src/main/java/kr/co/bootpay/webview/BPCWebViewMessagingModule.kt +9 -0
  11. package/android/src/main/java/kr/co/bootpay/webview/BPCWebViewModuleImpl.java +1 -1
  12. package/android/src/main/java/kr/co/bootpay/webview/BootpayUrlHelper.java +91 -75
  13. package/android/src/newarch/{com/reactnativecommunity → kr/co/bootpay}/webview/BPCWebViewManager.java +118 -109
  14. package/android/src/newarch/{com/reactnativecommunity → kr/co/bootpay}/webview/BPCWebViewModule.java +1 -1
  15. package/android/src/{main/java → oldarch}/kr/co/bootpay/webview/BPCWebViewManager.java +63 -58
  16. package/android/src/{main/java → oldarch}/kr/co/bootpay/webview/BPCWebViewModule.java +1 -1
  17. package/apple/BPCWebView.mm +21 -12
  18. package/apple/BPCWebViewImpl.h +10 -0
  19. package/apple/BPCWebViewImpl.m +267 -205
  20. package/apple/BPCWebViewManager.mm +5 -24
  21. package/apple/BPCWebViewModule.h +23 -0
  22. package/apple/BPCWebViewModule.mm +34 -0
  23. package/apple/RCTConvert+WKDataDetectorTypes.h +11 -0
  24. package/apple/RCTConvert+WKDataDetectorTypes.m +27 -0
  25. package/index.d.ts +54 -48
  26. package/ios/RNCWebView.xcodeproj/project.pbxproj +24 -24
  27. package/ios/RNCWebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  28. package/ios/RNCWebView.xcodeproj/project.xcworkspace/xcuserdata/taesupyoon.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  29. package/ios/RNCWebView.xcodeproj/xcuserdata/taesupyoon.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  30. package/lib/BPCWebViewNativeComponent.d.ts +24 -25
  31. package/lib/BPCWebViewNativeComponent.js +1 -1
  32. package/lib/{NativeBPCWebView.d.ts → NativeBPCWebViewModule.d.ts} +2 -5
  33. package/lib/{NativeBPCWebView.js → NativeBPCWebViewModule.js} +1 -1
  34. package/lib/WebView.android.d.ts +0 -1
  35. package/lib/WebView.android.js +1 -1
  36. package/lib/WebView.d.ts +0 -1
  37. package/lib/WebView.ios.d.ts +0 -1
  38. package/lib/WebView.ios.js +1 -1
  39. package/lib/WebView.js +1 -1
  40. package/lib/WebView.macos.d.ts +0 -1
  41. package/lib/WebView.macos.js +1 -1
  42. package/lib/WebView.styles.d.ts +37 -11
  43. package/lib/WebView.styles.js +1 -1
  44. package/lib/WebView.windows.d.ts +0 -1
  45. package/lib/WebView.windows.js +1 -1
  46. package/lib/WebViewNativeComponent.macos.d.ts +1 -2
  47. package/lib/WebViewNativeComponent.windows.d.ts +1 -2
  48. package/lib/WebViewShared.d.ts +0 -1
  49. package/lib/WebViewShared.js +1 -1
  50. package/lib/WebViewTypes.d.ts +51 -3
  51. package/lib/WebViewTypes.js +1 -1
  52. package/lib/index.d.ts +0 -1
  53. package/macos/RNCWebView.xcodeproj/project.pbxproj +36 -36
  54. package/package.json +12 -11
  55. package/react-native-webview-bootpay.podspec +2 -2
  56. package/react-native.config.js +1 -5
  57. package/src/BPCWebViewNativeComponent.ts +143 -79
  58. package/src/NativeBPCWebViewModule.ts +13 -0
  59. package/src/WebView.android.tsx +295 -190
  60. package/src/WebView.ios.tsx +253 -186
  61. package/src/WebView.macos.tsx +220 -152
  62. package/src/WebView.styles.ts +9 -12
  63. package/src/WebView.tsx +14 -7
  64. package/src/WebView.windows.tsx +180 -126
  65. package/src/WebViewNativeComponent.macos.ts +4 -5
  66. package/src/WebViewNativeComponent.windows.ts +6 -8
  67. package/src/WebViewShared.tsx +139 -91
  68. package/src/WebViewTypes.ts +80 -35
  69. package/src/__tests__/WebViewShared-test.js +170 -55
  70. package/windows/ReactNativeWebView/ReactNativeWebView.vcxproj +8 -17
  71. package/windows/ReactNativeWebView/ReactPackageProvider.cpp +5 -1
  72. package/windows/ReactNativeWebView/ReactWebView.cpp +73 -6
  73. package/windows/ReactNativeWebView/ReactWebView.h +11 -1
  74. package/windows/ReactNativeWebView/ReactWebView.idl +12 -3
  75. package/windows/ReactNativeWebView/ReactWebView2.cpp +294 -129
  76. package/windows/ReactNativeWebView/ReactWebView2.h +42 -5
  77. package/windows/ReactNativeWebView/ReactWebView2Manager.cpp +60 -34
  78. package/windows/ReactNativeWebView/ReactWebView2Manager.h +4 -4
  79. package/windows/ReactNativeWebView/ReactWebViewHelpers.cpp +70 -0
  80. package/windows/ReactNativeWebView/ReactWebViewHelpers.h +16 -0
  81. package/windows/ReactNativeWebView/ReactWebViewManager.cpp +22 -3
  82. package/windows/ReactNativeWebView/ReactWebViewManager.h +6 -1
  83. package/windows/ReactNativeWebView/pch.h +11 -7
  84. package/windows/ReactNativeWebView.sln +14 -14
  85. package/ios/main.jsbundle +0 -457
  86. package/lib/BPCWebViewNativeComponent.d.ts.map +0 -1
  87. package/lib/NativeBPCWebView.d.ts.map +0 -1
  88. package/lib/WebView.android.d.ts.map +0 -1
  89. package/lib/WebView.d.ts.map +0 -1
  90. package/lib/WebView.ios.d.ts.map +0 -1
  91. package/lib/WebView.macos.d.ts.map +0 -1
  92. package/lib/WebView.styles.d.ts.map +0 -1
  93. package/lib/WebView.windows.d.ts.map +0 -1
  94. package/lib/WebViewNativeComponent.macos.d.ts.map +0 -1
  95. package/lib/WebViewNativeComponent.windows.d.ts.map +0 -1
  96. package/lib/WebViewShared.d.ts.map +0 -1
  97. package/lib/WebViewTypes.d.ts.map +0 -1
  98. package/lib/index.d.ts.map +0 -1
  99. package/src/NativeBPCWebView.ts +0 -14
  100. package/windows/ReactNativeWebView/packages.config +0 -5
  101. /package/android/src/main/java/kr/co/bootpay/webview/{BPCWebviewWrapper.kt → BPCWebViewWrapper.kt} +0 -0
@@ -1,6 +1,11 @@
1
1
  import type { HostComponent, ViewProps } from 'react-native';
2
2
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
3
- import {DirectEventHandler,Double, Int32, WithDefault} from 'react-native/Libraries/Types/CodegenTypes';
3
+ import {
4
+ DirectEventHandler,
5
+ Double,
6
+ Int32,
7
+ WithDefault,
8
+ } from 'react-native/Libraries/Types/CodegenTypes';
4
9
  import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
5
10
 
6
11
  export type WebViewNativeEvent = Readonly<{
@@ -10,12 +15,12 @@ export type WebViewNativeEvent = Readonly<{
10
15
  canGoBack: boolean;
11
16
  canGoForward: boolean;
12
17
  lockIdentifier: Double;
13
- }>
18
+ }>;
14
19
  export type WebViewCustomMenuSelectionEvent = Readonly<{
15
20
  label: string;
16
21
  key: string;
17
22
  selectedText: string;
18
- }>
23
+ }>;
19
24
  export type WebViewMessageEvent = Readonly<{
20
25
  url: string;
21
26
  loading: boolean;
@@ -24,10 +29,10 @@ export type WebViewMessageEvent = Readonly<{
24
29
  canGoForward: boolean;
25
30
  lockIdentifier: Double;
26
31
  data: string;
27
- }>
32
+ }>;
28
33
  export type WebViewOpenWindowEvent = Readonly<{
29
34
  targetUrl: string;
30
- }>
35
+ }>;
31
36
  export type WebViewHttpErrorEvent = Readonly<{
32
37
  url: string;
33
38
  loading: boolean;
@@ -37,7 +42,7 @@ export type WebViewHttpErrorEvent = Readonly<{
37
42
  lockIdentifier: Double;
38
43
  description: string;
39
44
  statusCode: Int32;
40
- }>
45
+ }>;
41
46
 
42
47
  export type WebViewErrorEvent = Readonly<{
43
48
  url: string;
@@ -49,9 +54,9 @@ export type WebViewErrorEvent = Readonly<{
49
54
  domain?: string;
50
55
  code: Int32;
51
56
  description: string;
52
- }>
57
+ }>;
53
58
 
54
- export type WebViewNativeProgressEvent = Readonly< {
59
+ export type WebViewNativeProgressEvent = Readonly<{
55
60
  url: string;
56
61
  loading: boolean;
57
62
  title: string;
@@ -59,9 +64,9 @@ export type WebViewNativeProgressEvent = Readonly< {
59
64
  canGoForward: boolean;
60
65
  lockIdentifier: Double;
61
66
  progress: Double;
62
- }>
67
+ }>;
63
68
 
64
- export type WebViewNavigationEvent = Readonly< {
69
+ export type WebViewNavigationEvent = Readonly<{
65
70
  url: string;
66
71
  loading: boolean;
67
72
  title: string;
@@ -76,9 +81,9 @@ export type WebViewNavigationEvent = Readonly< {
76
81
  | 'formresubmit'
77
82
  | 'other';
78
83
  mainDocumentURL?: string;
79
- }>
84
+ }>;
80
85
 
81
- export type ShouldStartLoadRequestEvent = Readonly<{
86
+ export type ShouldStartLoadRequestEvent = Readonly<{
82
87
  url: string;
83
88
  loading: boolean;
84
89
  title: string;
@@ -94,46 +99,46 @@ export type ShouldStartLoadRequestEvent = Readonly<{
94
99
  | 'other';
95
100
  mainDocumentURL?: string;
96
101
  isTopFrame: boolean;
97
- }>
102
+ }>;
98
103
 
99
104
  type ScrollEvent = Readonly<{
100
105
  contentInset: {
101
- bottom: Double,
102
- left: Double,
103
- right: Double,
104
- top: Double,
105
- },
106
+ bottom: Double;
107
+ left: Double;
108
+ right: Double;
109
+ top: Double;
110
+ };
106
111
  contentOffset: {
107
- y: Double,
108
- x: Double,
109
- },
112
+ y: Double;
113
+ x: Double;
114
+ };
110
115
  contentSize: {
111
- height: Double,
112
- width: Double,
113
- },
116
+ height: Double;
117
+ width: Double;
118
+ };
114
119
  layoutMeasurement: {
115
- height: Double,
116
- width: Double,
117
- },
120
+ height: Double;
121
+ width: Double;
122
+ };
118
123
  targetContentOffset?: {
119
- y: Double,
120
- x: Double,
121
- },
124
+ y: Double;
125
+ x: Double;
126
+ };
122
127
  velocity?: {
123
- y: Double,
124
- x: Double,
125
- },
126
- zoomScale?: Double,
127
- responderIgnoreScroll?: boolean,
128
- }>
128
+ y: Double;
129
+ x: Double;
130
+ };
131
+ zoomScale?: Double;
132
+ responderIgnoreScroll?: boolean;
133
+ }>;
129
134
 
130
135
  type WebViewRenderProcessGoneEvent = Readonly<{
131
136
  didCrash: boolean;
132
- }>
137
+ }>;
133
138
 
134
139
  type WebViewDownloadEvent = Readonly<{
135
140
  downloadUrl: string;
136
- }>
141
+ }>;
137
142
 
138
143
  // type MenuItem = Readonly<{label: string, key: string}>;
139
144
 
@@ -143,7 +148,13 @@ export interface NativeProps extends ViewProps {
143
148
  allowsProtectedMedia?: boolean;
144
149
  allowsFullscreenVideo?: boolean;
145
150
  androidLayerType?: WithDefault<'none' | 'software' | 'hardware', 'none'>;
146
- cacheMode?: WithDefault<'LOAD_DEFAULT' | 'LOAD_CACHE_ELSE_NETWORK' | 'LOAD_NO_CACHE' | 'LOAD_CACHE_ONLY', 'LOAD_DEFAULT'>;
151
+ cacheMode?: WithDefault<
152
+ | 'LOAD_DEFAULT'
153
+ | 'LOAD_CACHE_ELSE_NETWORK'
154
+ | 'LOAD_NO_CACHE'
155
+ | 'LOAD_CACHE_ONLY',
156
+ 'LOAD_DEFAULT'
157
+ >;
147
158
  domStorageEnabled?: boolean;
148
159
  downloadingMessage?: string;
149
160
  forceDarkOn?: boolean;
@@ -157,61 +168,84 @@ export interface NativeProps extends ViewProps {
157
168
  onRenderProcessGone?: DirectEventHandler<WebViewRenderProcessGoneEvent>;
158
169
  overScrollMode?: string;
159
170
  saveFormDataDisabled?: boolean;
160
- scalesPageToFit?: boolean;
161
- setBuiltInZoomControls?: boolean;
171
+ scalesPageToFit?: WithDefault<boolean, true>;
172
+ setBuiltInZoomControls?: WithDefault<boolean, true>;
162
173
  setDisplayZoomControls?: boolean;
163
- setSupportMultipleWindows?: boolean;
174
+ setSupportMultipleWindows?: WithDefault<boolean, true>;
164
175
  textZoom?: Int32;
165
- thirdPartyCookiesEnabled?: boolean;
176
+ thirdPartyCookiesEnabled?: WithDefault<boolean, true>;
166
177
  // Workaround to watch if listener if defined
167
178
  hasOnScroll?: boolean;
168
- injectedJavaScriptObject?: string;
169
179
  // !Android only
170
180
 
171
181
  // iOS only
172
182
  allowingReadAccessToURL?: string;
173
183
  allowsBackForwardNavigationGestures?: boolean;
174
184
  allowsInlineMediaPlayback?: boolean;
185
+ allowsPictureInPictureMediaPlayback?: boolean;
175
186
  allowsAirPlayForMediaPlayback?: boolean;
176
- allowsLinkPreview?: boolean;
177
- automaticallyAdjustContentInsets?: boolean;
178
- autoManageStatusBarEnabled?: boolean;
179
- bounces?: boolean;
187
+ allowsLinkPreview?: WithDefault<boolean, true>;
188
+ automaticallyAdjustContentInsets?: WithDefault<boolean, true>;
189
+ autoManageStatusBarEnabled?: WithDefault<boolean, true>;
190
+ bounces?: WithDefault<boolean, true>;
180
191
  contentInset?: Readonly<{
181
192
  top?: Double;
182
193
  left?: Double;
183
194
  bottom?: Double;
184
195
  right?: Double;
185
196
  }>;
186
- contentInsetAdjustmentBehavior?: WithDefault<'never' | 'automatic' | 'scrollableAxes' | 'always', 'never'>;
187
- contentMode?: WithDefault<'recommended' | 'mobile' | 'desktop', 'recommended'>;
197
+ contentInsetAdjustmentBehavior?: WithDefault<
198
+ 'never' | 'automatic' | 'scrollableAxes' | 'always',
199
+ 'never'
200
+ >;
201
+ contentMode?: WithDefault<
202
+ 'recommended' | 'mobile' | 'desktop',
203
+ 'recommended'
204
+ >;
188
205
  dataDetectorTypes?: WithDefault<
189
- // eslint-disable-next-line @typescript-eslint/array-type
190
- ReadonlyArray<'address' | 'link' | 'calendarEvent' | 'trackingNumber' | 'flightNumber' | 'lookupSuggestion' | 'phoneNumber' | 'all' | 'none'>,
206
+ ReadonlyArray<
207
+ | 'address'
208
+ | 'link'
209
+ | 'calendarEvent'
210
+ | 'trackingNumber'
211
+ | 'flightNumber'
212
+ | 'lookupSuggestion'
213
+ | 'phoneNumber'
214
+ | 'all'
215
+ | 'none'
216
+ >,
191
217
  'phoneNumber'
192
218
  >;
193
219
  decelerationRate?: Double;
194
- directionalLockEnabled?: boolean;
220
+ directionalLockEnabled?: WithDefault<boolean, true>;
195
221
  enableApplePay?: boolean;
196
222
  hideKeyboardAccessoryView?: boolean;
197
- keyboardDisplayRequiresUserAction?: boolean;
223
+ keyboardDisplayRequiresUserAction?: WithDefault<boolean, true>;
198
224
  limitsNavigationsToAppBoundDomains?: boolean;
199
- mediaCapturePermissionGrantType?: WithDefault<'prompt' | 'grant' | 'deny' | 'grantIfSameHostElsePrompt' | 'grantIfSameHostElseDeny', 'prompt'>;
225
+ mediaCapturePermissionGrantType?: WithDefault<
226
+ | 'prompt'
227
+ | 'grant'
228
+ | 'deny'
229
+ | 'grantIfSameHostElsePrompt'
230
+ | 'grantIfSameHostElseDeny',
231
+ 'prompt'
232
+ >;
200
233
  pagingEnabled?: boolean;
201
234
  pullToRefreshEnabled?: boolean;
202
- scrollEnabled?: boolean;
235
+ refreshControlLightMode?: boolean;
236
+ scrollEnabled?: WithDefault<boolean, true>;
203
237
  sharedCookiesEnabled?: boolean;
204
- textInteractionEnabled?: boolean;
205
- useSharedProcessPool?: boolean;
238
+ textInteractionEnabled?: WithDefault<boolean, true>;
239
+ useSharedProcessPool?: WithDefault<boolean, true>;
206
240
  onContentProcessDidTerminate?: DirectEventHandler<WebViewNativeEvent>;
207
241
  onCustomMenuSelection?: DirectEventHandler<WebViewCustomMenuSelectionEvent>;
208
242
  onFileDownload?: DirectEventHandler<WebViewDownloadEvent>;
209
- // eslint-disable-next-line @typescript-eslint/array-type
210
- menuItems?: ReadonlyArray<Readonly<{label: string, key: string}>>;
243
+
244
+ menuItems?: ReadonlyArray<Readonly<{ label: string; key: string }>>;
211
245
  suppressMenuItems?: Readonly<string>[];
212
246
  // Workaround to watch if listener if defined
213
247
  hasOnFileDownload?: boolean;
214
- fraudulentWebsiteWarningEnabled?: boolean;
248
+ fraudulentWebsiteWarningEnabled?: WithDefault<boolean, true>;
215
249
  // !iOS only
216
250
 
217
251
  allowFileAccessFromFileURLs?: boolean;
@@ -221,16 +255,19 @@ export interface NativeProps extends ViewProps {
221
255
  username: string;
222
256
  password: string;
223
257
  }>;
224
- cacheEnabled?: boolean;
258
+ cacheEnabled?: WithDefault<boolean, true>;
225
259
  incognito?: boolean;
226
260
  injectedJavaScript?: string;
227
261
  injectedJavaScriptBeforeContentLoaded?: string;
228
- injectedJavaScriptForMainFrameOnly?: boolean;
229
- injectedJavaScriptBeforeContentLoadedForMainFrameOnly?: boolean;
262
+ injectedJavaScriptForMainFrameOnly?: WithDefault<boolean, true>;
263
+ injectedJavaScriptBeforeContentLoadedForMainFrameOnly?: WithDefault<
264
+ boolean,
265
+ true
266
+ >;
230
267
  javaScriptCanOpenWindowsAutomatically?: boolean;
231
- javaScriptEnabled?: boolean;
268
+ javaScriptEnabled?: WithDefault<boolean, true>;
232
269
  webviewDebuggingEnabled?: boolean;
233
- mediaPlaybackRequiresUserAction?: boolean;
270
+ mediaPlaybackRequiresUserAction?: WithDefault<boolean, true>;
234
271
  messagingEnabled: boolean;
235
272
  onLoadingError: DirectEventHandler<WebViewErrorEvent>;
236
273
  onLoadingFinish: DirectEventHandler<WebViewNavigationEvent>;
@@ -242,40 +279,67 @@ export interface NativeProps extends ViewProps {
242
279
  hasOnOpenWindowEvent?: boolean;
243
280
  onScroll?: DirectEventHandler<ScrollEvent>;
244
281
  onShouldStartLoadWithRequest: DirectEventHandler<ShouldStartLoadRequestEvent>;
245
- showsHorizontalScrollIndicator?: boolean;
246
- showsVerticalScrollIndicator?: boolean;
282
+ showsHorizontalScrollIndicator?: WithDefault<boolean, true>;
283
+ showsVerticalScrollIndicator?: WithDefault<boolean, true>;
247
284
  newSource: Readonly<{
248
- uri?: string
285
+ uri?: string;
249
286
  method?: string;
250
287
  body?: string;
251
- // eslint-disable-next-line @typescript-eslint/array-type
252
- headers?: ReadonlyArray<Readonly<{name: string, value: string}>>;
288
+
289
+ headers?: ReadonlyArray<Readonly<{ name: string; value: string }>>;
253
290
  html?: string;
254
291
  baseUrl?: string;
255
292
  }>;
256
293
  userAgent?: string;
294
+ injectedJavaScriptObject?: string;
257
295
  }
258
296
 
259
297
  export interface NativeCommands {
260
- goBack: (viewRef: React.ElementRef<HostComponent<NativeProps>> ) => void;
298
+ goBack: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
261
299
  goForward: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
262
300
  reload: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
263
301
  stopLoading: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
264
- injectJavaScript: (viewRef: React.ElementRef<HostComponent<NativeProps>>, javascript: string) => void;
302
+ injectJavaScript: (
303
+ viewRef: React.ElementRef<HostComponent<NativeProps>>,
304
+ javascript: string
305
+ ) => void;
265
306
  requestFocus: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
266
- postMessage: (viewRef: React.ElementRef<HostComponent<NativeProps>>, data: string) => void;
307
+ postMessage: (
308
+ viewRef: React.ElementRef<HostComponent<NativeProps>>,
309
+ data: string
310
+ ) => void;
267
311
  // Android Only
268
- loadUrl: (viewRef: React.ElementRef<HostComponent<NativeProps>>, url: string) => void;
269
- clearFormData: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
270
- clearCache: (viewRef: React.ElementRef<HostComponent<NativeProps>>, includeDiskFiles: boolean) => void;
312
+ loadUrl: (
313
+ viewRef: React.ElementRef<HostComponent<NativeProps>>,
314
+ url: string
315
+ ) => void;
316
+ clearFormData: (
317
+ viewRef: React.ElementRef<HostComponent<NativeProps>>
318
+ ) => void;
319
+ clearCache: (
320
+ viewRef: React.ElementRef<HostComponent<NativeProps>>,
321
+ includeDiskFiles: boolean
322
+ ) => void;
271
323
  clearHistory: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
272
324
  // !Android Only
273
325
  }
274
326
 
275
327
  export const Commands = codegenNativeCommands<NativeCommands>({
276
- supportedCommands: ['goBack', 'goForward', 'reload', 'stopLoading', 'injectJavaScript', 'requestFocus', 'postMessage', 'loadUrl', 'clearFormData', 'clearCache', 'clearHistory'],
328
+ supportedCommands: [
329
+ 'goBack',
330
+ 'goForward',
331
+ 'reload',
332
+ 'stopLoading',
333
+ 'injectJavaScript',
334
+ 'requestFocus',
335
+ 'postMessage',
336
+ 'loadUrl',
337
+ 'clearFormData',
338
+ 'clearCache',
339
+ 'clearHistory',
340
+ ],
277
341
  });
278
342
 
279
343
  export default codegenNativeComponent<NativeProps>(
280
344
  'BPCWebView'
281
- ) as HostComponent<NativeProps>;
345
+ ) as HostComponent<NativeProps>;
@@ -0,0 +1,13 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+ import { Double } from 'react-native/Libraries/Types/CodegenTypes';
4
+
5
+ export interface Spec extends TurboModule {
6
+ isFileUploadSupported(): Promise<boolean>;
7
+ shouldStartLoadWithLockIdentifier(
8
+ shouldStart: boolean,
9
+ lockIdentifier: Double
10
+ ): void;
11
+ }
12
+
13
+ export default TurboModuleRegistry.getEnforcing<Spec>('BPCWebViewModule');