@exodus/react-native-webview 11.26.1-exodus.32 → 11.26.1-exodus.34

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 (95) hide show
  1. package/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java +24 -7
  2. package/apple/RNCWebView.m +10 -11
  3. package/apple/RNCWebViewManager.m +1 -0
  4. package/lib/WebViewShared.js +1 -1
  5. package/lib/WebViewTypes.d.ts +5 -0
  6. package/package.json +1 -1
  7. package/.all-contributorsrc +0 -185
  8. package/.circleci/config.yml +0 -66
  9. package/.eslintignore +0 -2
  10. package/.eslintrc.js +0 -94
  11. package/.flowconfig +0 -88
  12. package/.flowconfig.android +0 -88
  13. package/.gitattributes +0 -12
  14. package/.github/CODEOWNERS +0 -1
  15. package/.github/ISSUE_TEMPLATE/bug-report.md +0 -42
  16. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -30
  17. package/.github/workflows/android-ci.yml +0 -35
  18. package/.github/workflows/detox.yml +0 -20
  19. package/.github/workflows/ios-ci.yml +0 -31
  20. package/.github/workflows/scripts/install-vs-features.ps1 +0 -108
  21. package/.github/workflows/stale.yml +0 -17
  22. package/.gitignore +0 -62
  23. package/.idea/.gitignore +0 -5
  24. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  25. package/.idea/misc.xml +0 -9
  26. package/.idea/modules.xml +0 -8
  27. package/.idea/react-native-webview.iml +0 -9
  28. package/.idea/vcs.xml +0 -6
  29. package/.idea/workspace.xml +0 -104
  30. package/.prettierrc.js +0 -10
  31. package/.releaserc +0 -15
  32. package/.vscode/settings.json +0 -9
  33. package/babel.config.js +0 -11
  34. package/bin/setup +0 -26
  35. package/docs/Contributing.md +0 -102
  36. package/docs/Custom-Android.md +0 -222
  37. package/docs/Custom-iOS.md +0 -236
  38. package/docs/Debugging.md +0 -101
  39. package/docs/Getting-Started.md +0 -142
  40. package/docs/Guide.md +0 -613
  41. package/docs/Reference.md +0 -1639
  42. package/example/.gitignore +0 -14
  43. package/example/.watchmanconfig +0 -1
  44. package/example/App.tsx +0 -262
  45. package/example/android/build.gradle +0 -15
  46. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  47. package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  48. package/example/android/gradle.properties +0 -34
  49. package/example/android/gradlew +0 -234
  50. package/example/android/gradlew.bat +0 -89
  51. package/example/android/settings.gradle +0 -12
  52. package/example/app.json +0 -20
  53. package/example/assets/test.html +0 -9
  54. package/example/babel.config.js +0 -3
  55. package/example/examples/Alerts.tsx +0 -72
  56. package/example/examples/ApplePay.tsx +0 -23
  57. package/example/examples/Background.tsx +0 -54
  58. package/example/examples/Downloads.tsx +0 -57
  59. package/example/examples/Injection.tsx +0 -161
  60. package/example/examples/LocalPageLoad.tsx +0 -16
  61. package/example/examples/Messaging.tsx +0 -63
  62. package/example/examples/NativeWebpage.tsx +0 -22
  63. package/example/examples/Scrolling.tsx +0 -68
  64. package/example/examples/Uploads.tsx +0 -69
  65. package/example/index.js +0 -9
  66. package/example/ios/Podfile +0 -8
  67. package/example/ios/Podfile.lock +0 -445
  68. package/jest-setups/jest.setup.js +0 -8
  69. package/jest.config.js +0 -184
  70. package/lib/WebView.android.d.ts.map +0 -1
  71. package/lib/WebView.d.ts.map +0 -1
  72. package/lib/WebView.ios.d.ts.map +0 -1
  73. package/lib/WebView.styles.d.ts.map +0 -1
  74. package/lib/WebViewNativeComponent.android.d.ts.map +0 -1
  75. package/lib/WebViewNativeComponent.ios.d.ts.map +0 -1
  76. package/lib/WebViewShared.d.ts.map +0 -1
  77. package/lib/WebViewTypes.d.ts.map +0 -1
  78. package/lib/index.d.ts.map +0 -1
  79. package/lib/validation.d.ts.map +0 -1
  80. package/metro.config.js +0 -57
  81. package/src/WebView.android.tsx +0 -255
  82. package/src/WebView.ios.tsx +0 -230
  83. package/src/WebView.styles.ts +0 -44
  84. package/src/WebView.tsx +0 -18
  85. package/src/WebViewNativeComponent.android.ts +0 -8
  86. package/src/WebViewNativeComponent.ios.ts +0 -8
  87. package/src/WebViewShared.tsx +0 -318
  88. package/src/WebViewTypes.ts +0 -941
  89. package/src/__tests__/WebViewShared-test.js +0 -292
  90. package/src/__tests__/__snapshots__/WebViewShared-test.js.snap +0 -13
  91. package/src/__tests__/validation-test.js +0 -39
  92. package/src/index.ts +0 -4
  93. package/src/validation.ts +0 -13
  94. package/tsconfig.json +0 -24
  95. package/yarn.lock +0 -13397
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebViewTypes.d.ts","sourceRoot":"","sources":["../src/WebViewTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,eAAe,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE1E,QAAA,MAAM,aAAa,kEAOlB,CAAA;AAED,eAAe,aAAa,CAAA"}
package/metro.config.js DELETED
@@ -1,57 +0,0 @@
1
- /**
2
- * Metro configuration for React Native
3
- * https://github.com/facebook/react-native
4
- *
5
- * @format
6
- */
7
-
8
- const path = require('path');
9
-
10
- const exclusionList = (() => {
11
- try {
12
- return require('metro-config/src/defaults/exclusionList');
13
- } catch (_) {
14
- // `blacklist` was renamed to `exclusionList` in 0.60
15
- return require('metro-config/src/defaults/blacklist');
16
- }
17
- })();
18
-
19
- const blockList = exclusionList([
20
- /node_modules\/.*\/node_modules\/react-native\/.*/,
21
-
22
- // Workaround for `EPERM: operation not permitted, lstat '~\midl-MIDLRT-cl.read.1.tlog'`
23
- /.*\.tlog/,
24
-
25
- // This stops "react-native run-windows" from causing the metro server to
26
- // crash if its already running
27
- new RegExp(`${path.join(__dirname, 'windows').replace(/[/\\]+/g, '/')}.*`),
28
-
29
- // Workaround for `EBUSY: resource busy or locked, open '~\msbuild.ProjectImports.zip'`
30
- /.*\.ProjectImports\.zip/,
31
- ]);
32
-
33
- /**
34
- * This config is a bit exotic because our example app is not its own package
35
- * (that would require setting this repo up as a monorepo). We need to tell
36
- * Metro that the root of the project is our `example` folder (`projectRoot`),
37
- * and that it should look for modules in repo root (`watchFolders`) as this is
38
- * where the `node_modules` folder lives. Metro will otherwise fail to resolve
39
- * anything.
40
- */
41
- module.exports = {
42
- projectRoot: path.join(__dirname, 'example'),
43
- watchFolders: [__dirname],
44
- resolver: {
45
- resolverMainFields: ['main-internal', 'browser', 'main'],
46
- blacklistRE: blockList,
47
- blockList,
48
- },
49
- transformer: {
50
- getTransformOptions: async () => ({
51
- transform: {
52
- experimentalImportSupport: false,
53
- inlineRequires: false,
54
- },
55
- }),
56
- },
57
- };
@@ -1,255 +0,0 @@
1
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
2
-
3
- import {
4
- Text,
5
- View,
6
- NativeModules,
7
- } from 'react-native';
8
-
9
- import BatchedBridge from 'react-native/Libraries/BatchedBridge/BatchedBridge';
10
- // @ts-expect-error react-native doesn't have this type
11
- import codegenNativeCommandsUntyped from 'react-native/Libraries/Utilities/codegenNativeCommands';
12
-
13
- import invariant from 'invariant';
14
-
15
- import RNCWebView from "./WebViewNativeComponent.android";
16
- import {
17
- defaultOriginWhitelist,
18
- defaultDeeplinkWhitelist,
19
- defaultRenderError,
20
- defaultRenderLoading,
21
- useWebWiewLogic,
22
- versionPasses,
23
- } from './WebViewShared';
24
- import {
25
- AndroidWebViewProps,
26
- NativeWebViewAndroid,
27
- } from './WebViewTypes';
28
-
29
- import styles from './WebView.styles';
30
- import validateProps from './validation'
31
-
32
- const { getWebViewDefaultUserAgent } = NativeModules.RNCWebViewUtils;
33
-
34
- let userAgentPromise: Promise<string> | undefined
35
-
36
- async function getUserAgent(): Promise<string> {
37
- if (!userAgentPromise) userAgentPromise = getWebViewDefaultUserAgent()
38
- const userAgent = await userAgentPromise
39
- return userAgent || 'unknown'
40
- }
41
-
42
- const codegenNativeCommands = codegenNativeCommandsUntyped as <T extends {}>(options: { supportedCommands: (keyof T)[] }) => T;
43
-
44
- const Commands = codegenNativeCommands({
45
- supportedCommands: ['goBack', 'goForward', 'reload', 'stopLoading', /* 'injectJavaScript', */ 'requestFocus', 'postMessage', 'clearFormData', 'clearCache', 'clearHistory', 'loadUrl'],
46
- });
47
-
48
- /**
49
- * A simple counter to uniquely identify WebView instances. Do not use this for anything else.
50
- */
51
- let uniqueRef = 0;
52
-
53
- /**
54
- * Harcoded default for security.
55
- */
56
- const mediaPlaybackRequiresUserAction = true;
57
- // Android only
58
- const setSupportMultipleWindows = true;
59
- const mixedContentMode = 'never'
60
- const hardMinimumChromeVersion = '100.0' // TODO: determinime a good lower bound
61
-
62
- const WebViewComponent = forwardRef<{}, AndroidWebViewProps>((props, ref) => {
63
- const {
64
- overScrollMode = 'always',
65
- javaScriptEnabled = true,
66
- thirdPartyCookiesEnabled = true,
67
- scalesPageToFit = true,
68
- saveFormDataDisabled = false,
69
- cacheEnabled = true,
70
- androidHardwareAccelerationDisabled = false,
71
- androidLayerType = "none",
72
- originWhitelist = defaultOriginWhitelist,
73
- deeplinkWhitelist = defaultDeeplinkWhitelist,
74
- setBuiltInZoomControls = true,
75
- setDisplayZoomControls = false,
76
- nestedScrollEnabled = false,
77
- startInLoadingState,
78
- onLoadStart,
79
- onError,
80
- onLoad,
81
- onLoadEnd,
82
- onMessage: onMessageProp,
83
- onOpenWindow: onOpenWindowProp,
84
- renderLoading,
85
- renderError,
86
- style,
87
- containerStyle,
88
- source,
89
- onShouldStartLoadWithRequest: onShouldStartLoadWithRequestProp,
90
- validateMeta,
91
- validateData,
92
- minimumChromeVersion,
93
- unsupportedVersionComponent: UnsupportedVersionComponent,
94
- ...otherProps
95
- } = validateProps(props)
96
-
97
- const messagingModuleName = useRef<string>(`WebViewMessageHandler${uniqueRef += 1}`).current;
98
- const webViewRef = useRef<NativeWebViewAndroid | null>(null);
99
-
100
- const onShouldStartLoadWithRequestCallback = useCallback((shouldStart: boolean,
101
- url: string,
102
- lockIdentifier?: number) => {
103
- if (lockIdentifier) {
104
- NativeModules.RNCWebView.onShouldStartLoadWithRequestCallback(shouldStart, lockIdentifier);
105
- } else if (shouldStart) {
106
- Commands.loadUrl(webViewRef.current, url);
107
- }
108
- }, []);
109
-
110
- const { onLoadingStart, onShouldStartLoadWithRequest, onMessage, viewState, setViewState, lastErrorEvent, onLoadingError, onLoadingFinish, onLoadingProgress, onOpenWindow, passesWhitelist } = useWebWiewLogic({
111
- onLoad,
112
- onError,
113
- onLoadEnd,
114
- onLoadStart,
115
- onMessageProp,
116
- onOpenWindowProp,
117
- startInLoadingState,
118
- originWhitelist,
119
- deeplinkWhitelist,
120
- onShouldStartLoadWithRequestProp,
121
- onShouldStartLoadWithRequestCallback,
122
- validateMeta,
123
- validateData,
124
- })
125
-
126
- useImperativeHandle(ref, () => ({
127
- goForward: () => webViewRef.current && Commands.goForward(webViewRef.current),
128
- goBack: () => webViewRef.current && Commands.goBack(webViewRef.current),
129
- reload: () => {
130
- setViewState(
131
- 'LOADING',
132
- );
133
- if (webViewRef.current) {
134
- Commands.reload(webViewRef.current)
135
- }
136
- },
137
- stopLoading: () => webViewRef.current && Commands.stopLoading(webViewRef.current),
138
- postMessage: (data: string) => webViewRef.current && Commands.postMessage(webViewRef.current, data),
139
- // injectJavaScript: (data: string) => Commands.injectJavaScript(webViewRef.current, data),
140
- requestFocus: () => webViewRef.current && Commands.requestFocus(webViewRef.current),
141
- clearFormData: () => webViewRef.current && Commands.clearFormData(webViewRef.current),
142
- clearCache: (includeDiskFiles: boolean) => webViewRef.current && Commands.clearCache(webViewRef.current, includeDiskFiles),
143
- clearHistory: () => webViewRef.current && Commands.clearHistory(webViewRef.current),
144
- }), [setViewState, webViewRef]);
145
-
146
- const directEventCallbacks = useMemo(() => ({
147
- onShouldStartLoadWithRequest,
148
- onMessage,
149
- }), [onMessage, onShouldStartLoadWithRequest]);
150
-
151
- useEffect(() => {
152
- BatchedBridge.registerCallableModule(messagingModuleName, directEventCallbacks);
153
- }, [messagingModuleName, directEventCallbacks])
154
-
155
- const [userAgent, setUserAgent] = useState<string>()
156
-
157
- useEffect(() => {
158
- getUserAgent().then(setUserAgent)
159
- }, [])
160
-
161
- if (!userAgent) return null // stop the rendering until userAgent is known
162
- const version = userAgent.match(/chrome\/((?:[0-9]+\.)+[0-9]+)/i)?.[1]
163
- if (!(versionPasses(version, minimumChromeVersion) && versionPasses(version, hardMinimumChromeVersion))) {
164
- if (UnsupportedVersionComponent) {
165
- return <UnsupportedVersionComponent />
166
- }
167
- return (
168
- <View style={{ alignSelf: 'flex-start' }}>
169
- <Text style={{ color: 'red' }}>
170
- Chrome version is outdated and insecure. Update it to continue.
171
- </Text>
172
- </View>
173
- );
174
- }
175
-
176
- let otherView = null;
177
- if (viewState === 'LOADING') {
178
- otherView = (renderLoading || defaultRenderLoading)();
179
- } else if (viewState === 'ERROR') {
180
- invariant(lastErrorEvent != null, 'lastErrorEvent expected to be non-null');
181
- otherView = (renderError || defaultRenderError)(
182
- lastErrorEvent.domain,
183
- lastErrorEvent.code,
184
- lastErrorEvent.description,
185
- );
186
- } else if (viewState !== 'IDLE') {
187
- console.error(`RNCWebView invalid state encountered: ${viewState}`);
188
- }
189
-
190
- const webViewStyles = [styles.container, styles.webView, style];
191
- const webViewContainerStyle = [styles.container, containerStyle];
192
-
193
- if (typeof source !== "number" && source && 'method' in source) {
194
- if (source.method === 'POST' && source.headers) {
195
- console.warn(
196
- 'WebView: `source.headers` is not supported when using POST.',
197
- );
198
- } else if (source.method === 'GET' && source.body) {
199
- console.warn('WebView: `source.body` is not supported when using GET.');
200
- }
201
- }
202
-
203
- const safeSource = (typeof source === "object" && 'uri' in source && !passesWhitelist(source.uri)) ? { uri: 'about:blank' } : source;
204
-
205
- const NativeWebView = RNCWebView;
206
-
207
- const webView = <NativeWebView
208
- key="webViewKey"
209
- {...otherProps}
210
- messagingEnabled={typeof onMessageProp === 'function'}
211
- messagingModuleName={messagingModuleName}
212
-
213
- onLoadingError={onLoadingError}
214
- onLoadingFinish={onLoadingFinish}
215
- onLoadingProgress={onLoadingProgress}
216
- onLoadingStart={onLoadingStart}
217
- onMessage={onMessage}
218
- onOpenWindow={onOpenWindow}
219
- onShouldStartLoadWithRequest={onShouldStartLoadWithRequest}
220
-
221
- ref={webViewRef}
222
- // TODO: find a better way to type this.
223
- source={safeSource}
224
- style={webViewStyles}
225
- overScrollMode={overScrollMode}
226
- javaScriptEnabled={javaScriptEnabled}
227
- thirdPartyCookiesEnabled={thirdPartyCookiesEnabled}
228
- scalesPageToFit={scalesPageToFit}
229
- saveFormDataDisabled={saveFormDataDisabled}
230
- cacheEnabled={cacheEnabled}
231
- androidHardwareAccelerationDisabled={androidHardwareAccelerationDisabled}
232
- androidLayerType={androidLayerType}
233
- setSupportMultipleWindows={setSupportMultipleWindows}
234
- setBuiltInZoomControls={setBuiltInZoomControls}
235
- setDisplayZoomControls={setDisplayZoomControls}
236
- mixedContentMode={mixedContentMode}
237
- nestedScrollEnabled={nestedScrollEnabled}
238
- mediaPlaybackRequiresUserAction={mediaPlaybackRequiresUserAction}
239
- />
240
-
241
- return (
242
- <View style={webViewContainerStyle}>
243
- {webView}
244
- {otherView}
245
- </View>
246
- );
247
- });
248
-
249
- // native implementation should return "true" only for Android 5+
250
- const isFileUploadSupported: () => Promise<boolean>
251
- = NativeModules.RNCWebView.isFileUploadSupported();
252
-
253
- const WebView = Object.assign(WebViewComponent, {isFileUploadSupported});
254
-
255
- export default WebView;
@@ -1,230 +0,0 @@
1
- import React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';
2
- import {
3
- Text,
4
- View,
5
- NativeModules,
6
- Platform,
7
- } from 'react-native';
8
- import invariant from 'invariant';
9
-
10
- // @ts-expect-error react-native doesn't have this type
11
- import codegenNativeCommandsUntyped from 'react-native/Libraries/Utilities/codegenNativeCommands';
12
- import RNCWebView from "./WebViewNativeComponent.ios";
13
- import {
14
- defaultOriginWhitelist,
15
- defaultDeeplinkWhitelist,
16
- defaultRenderError,
17
- defaultRenderLoading,
18
- useWebWiewLogic,
19
- versionPasses,
20
- } from './WebViewShared';
21
- import {
22
- IOSWebViewProps,
23
- DecelerationRateConstant,
24
- NativeWebViewIOS,
25
- ViewManager,
26
- } from './WebViewTypes';
27
-
28
- import styles from './WebView.styles';
29
- import validateProps from './validation'
30
-
31
- const codegenNativeCommands = codegenNativeCommandsUntyped as <T extends {}>(options: { supportedCommands: (keyof T)[] }) => T;
32
-
33
- const Commands = codegenNativeCommands({
34
- supportedCommands: ['goBack', 'goForward', 'reload', 'stopLoading', /* 'injectJavaScript', */ 'requestFocus', 'postMessage', 'loadUrl'],
35
- });
36
-
37
- const processDecelerationRate = (
38
- decelerationRate: DecelerationRateConstant | number | undefined,
39
- ) => {
40
- let newDecelerationRate = decelerationRate;
41
- if (newDecelerationRate === 'normal') {
42
- newDecelerationRate = 0.998;
43
- } else if (newDecelerationRate === 'fast') {
44
- newDecelerationRate = 0.99;
45
- }
46
- return newDecelerationRate;
47
- };
48
-
49
- const RNCWebViewManager = NativeModules.RNCWebViewManager as ViewManager;
50
-
51
- const useWarnIfChanges = <T extends unknown>(value: T, name: string) => {
52
- const ref = useRef(value);
53
- if (ref.current !== value) {
54
- console.warn(`Changes to property ${name} do nothing after the initial render.`);
55
- ref.current = value;
56
- }
57
- }
58
-
59
- /**
60
- * Harcoded defaults for security.
61
- */
62
- const mediaPlaybackRequiresUserAction = true;
63
- // iOS only configs
64
- const allowsInlineMediaPlayback = true;
65
- const useSharedProcessPool = false;
66
- const sharedCookiesEnabled = false;
67
- const enableApplePay = false;
68
- const dataDetectorTypes = 'none';
69
- const hardMinimumIOSVersion = '12.5.6 <13, 13.6.1 <14, 14.8.1 <15, 15.7.1'
70
-
71
- const WebViewComponent = forwardRef<{}, IOSWebViewProps>((props, ref) => {
72
- const {
73
- javaScriptEnabled = true,
74
- cacheEnabled = true,
75
- originWhitelist = defaultOriginWhitelist,
76
- deeplinkWhitelist = defaultDeeplinkWhitelist,
77
- textInteractionEnabled= true,
78
- injectedJavaScript,
79
- injectedJavaScriptBeforeContentLoaded,
80
- startInLoadingState,
81
- onLoadStart,
82
- onError,
83
- onLoad,
84
- onLoadEnd,
85
- onMessage: onMessageProp,
86
- renderLoading,
87
- renderError,
88
- style,
89
- containerStyle,
90
- source,
91
- incognito,
92
- validateMeta,
93
- validateData,
94
- decelerationRate: decelerationRateProp,
95
- onShouldStartLoadWithRequest: onShouldStartLoadWithRequestProp,
96
- minimumIOSVersion,
97
- unsupportedVersionComponent: UnsupportedVersionComponent,
98
- ...otherProps
99
- } = validateProps(props)
100
-
101
- const webViewRef = useRef<NativeWebViewIOS | null>(null);
102
-
103
- const onShouldStartLoadWithRequestCallback = useCallback((
104
- shouldStart: boolean,
105
- _url: string,
106
- lockIdentifier = 0,
107
- ) => {
108
- const viewManager = RNCWebViewManager;
109
-
110
- viewManager.startLoadWithResult(!!shouldStart, lockIdentifier);
111
- }, []);
112
-
113
- const { onLoadingStart, onShouldStartLoadWithRequest, onMessage, viewState, setViewState, lastErrorEvent, onLoadingError, onLoadingFinish, onLoadingProgress } = useWebWiewLogic({
114
- onLoad,
115
- onError,
116
- onLoadEnd,
117
- onLoadStart,
118
- onMessageProp,
119
- startInLoadingState,
120
- originWhitelist,
121
- deeplinkWhitelist,
122
- onShouldStartLoadWithRequestProp,
123
- onShouldStartLoadWithRequestCallback,
124
- validateMeta,
125
- validateData,
126
- });
127
-
128
- useImperativeHandle(ref, () => ({
129
- goForward: () => webViewRef.current && Commands.goForward(webViewRef.current),
130
- goBack: () => webViewRef.current && Commands.goBack(webViewRef.current),
131
- reload: () => {
132
- setViewState(
133
- 'LOADING',
134
- );
135
- if (webViewRef.current) {
136
- Commands.reload(webViewRef.current)
137
- }
138
- },
139
- stopLoading: () => webViewRef.current && Commands.stopLoading(webViewRef.current),
140
- postMessage: (data: string) => webViewRef.current && Commands.postMessage(webViewRef.current, data),
141
- // injectJavaScript: (data: string) => Commands.injectJavaScript(webViewRef.current, data),
142
- requestFocus: () => webViewRef.current && Commands.requestFocus(webViewRef.current),
143
- }), [setViewState, webViewRef]);
144
-
145
-
146
- useWarnIfChanges(allowsInlineMediaPlayback, 'allowsInlineMediaPlayback');
147
- useWarnIfChanges(incognito, 'incognito');
148
- useWarnIfChanges(mediaPlaybackRequiresUserAction, 'mediaPlaybackRequiresUserAction');
149
- useWarnIfChanges(dataDetectorTypes, 'dataDetectorTypes');
150
-
151
- const version = String(Platform.Version)
152
- if (!(versionPasses(version, minimumIOSVersion) && versionPasses(version, hardMinimumIOSVersion))) {
153
- if (UnsupportedVersionComponent) {
154
- return <UnsupportedVersionComponent />
155
- }
156
- return (
157
- <View style={{ alignSelf: 'flex-start' }}>
158
- <Text style={{ color: 'red' }}>
159
- iOS version is outdated and insecure. Update it to continue.
160
- </Text>
161
- </View>
162
- );
163
- }
164
-
165
- let otherView = null;
166
- if (viewState === 'LOADING') {
167
- otherView = (renderLoading || defaultRenderLoading)();
168
- } else if (viewState === 'ERROR') {
169
- invariant(lastErrorEvent != null, 'lastErrorEvent expected to be non-null');
170
- otherView = (renderError || defaultRenderError)(
171
- lastErrorEvent.domain,
172
- lastErrorEvent.code,
173
- lastErrorEvent.description,
174
- );
175
- } else if (viewState !== 'IDLE') {
176
- console.error(`RNCWebView invalid state encountered: ${viewState}`);
177
- }
178
-
179
- const webViewStyles = [styles.container, styles.webView, style];
180
- const webViewContainerStyle = [styles.container, containerStyle];
181
-
182
- const decelerationRate = processDecelerationRate(decelerationRateProp);
183
-
184
- const NativeWebView = RNCWebView;
185
-
186
- const webView = (
187
- <NativeWebView
188
- key="webViewKey"
189
- {...otherProps}
190
- enableApplePay={enableApplePay}
191
- javaScriptEnabled={javaScriptEnabled}
192
- cacheEnabled={cacheEnabled}
193
- dataDetectorTypes={dataDetectorTypes}
194
- useSharedProcessPool={useSharedProcessPool}
195
- textInteractionEnabled={textInteractionEnabled}
196
- decelerationRate={decelerationRate}
197
- messagingEnabled={typeof onMessageProp === 'function'}
198
- onLoadingError={onLoadingError}
199
- onLoadingFinish={onLoadingFinish}
200
- onLoadingProgress={onLoadingProgress}
201
- onLoadingStart={onLoadingStart}
202
- onMessage={onMessage}
203
- onShouldStartLoadWithRequest={onShouldStartLoadWithRequest}
204
- injectedJavaScript={injectedJavaScript}
205
- injectedJavaScriptBeforeContentLoaded={injectedJavaScriptBeforeContentLoaded}
206
- allowsInlineMediaPlayback={allowsInlineMediaPlayback}
207
- incognito={incognito}
208
- mediaPlaybackRequiresUserAction={mediaPlaybackRequiresUserAction}
209
- ref={webViewRef}
210
- sharedCookiesEnabled={sharedCookiesEnabled}
211
- // TODO: find a better way to type this.
212
- source={source}
213
- style={webViewStyles}
214
- />
215
- );
216
-
217
- return (
218
- <View style={webViewContainerStyle}>
219
- {webView}
220
- {otherView}
221
- </View>
222
- );})
223
-
224
- // no native implementation for iOS, depends only on permissions
225
- const isFileUploadSupported: () => Promise<boolean>
226
- = async () => true;
227
-
228
- const WebView = Object.assign(WebViewComponent, {isFileUploadSupported});
229
-
230
- export default WebView;
@@ -1,44 +0,0 @@
1
- import { StyleSheet, ViewStyle, TextStyle } from 'react-native';
2
-
3
- interface Styles {
4
- container: ViewStyle;
5
- errorText: TextStyle;
6
- errorTextTitle: TextStyle;
7
- loadingOrErrorView: ViewStyle;
8
- webView: ViewStyle;
9
- loadingProgressBar: ViewStyle;
10
- }
11
-
12
- const styles = StyleSheet.create<Styles>({
13
- container: {
14
- flex: 1,
15
- overflow: 'hidden',
16
- },
17
- loadingOrErrorView: {
18
- position: 'absolute',
19
- flex: 1,
20
- justifyContent: 'center',
21
- alignItems: 'center',
22
- height: '100%',
23
- width: '100%',
24
- backgroundColor: 'white'
25
- },
26
- loadingProgressBar: {
27
- height: 20,
28
- },
29
- errorText: {
30
- fontSize: 14,
31
- textAlign: 'center',
32
- marginBottom: 2,
33
- },
34
- errorTextTitle: {
35
- fontSize: 15,
36
- fontWeight: '500',
37
- marginBottom: 10,
38
- },
39
- webView: {
40
- backgroundColor: '#ffffff',
41
- },
42
- });
43
-
44
- export default styles;
package/src/WebView.tsx DELETED
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { Text, View } from 'react-native';
3
- import { IOSWebViewProps, AndroidWebViewProps } from './WebViewTypes';
4
-
5
- export type WebViewProps = IOSWebViewProps & AndroidWebViewProps;
6
-
7
- // This "dummy" WebView is to render something for unsupported platforms,
8
- // like for example Expo SDK "web" platform.
9
- const WebView: React.FunctionComponent<WebViewProps> = () => (
10
- <View style={{ alignSelf: 'flex-start' }}>
11
- <Text style={{ color: 'red' }}>
12
- React Native WebView does not support this platform.
13
- </Text>
14
- </View>
15
- );
16
-
17
- export { WebView };
18
- export default WebView;
@@ -1,8 +0,0 @@
1
- import { requireNativeComponent } from "react-native";
2
- import type { NativeWebViewAndroid } from "./WebViewTypes";
3
-
4
- const RNCWebView: typeof NativeWebViewAndroid = requireNativeComponent(
5
- 'RNCWebView',
6
- );
7
-
8
- export default RNCWebView;
@@ -1,8 +0,0 @@
1
- import { requireNativeComponent } from "react-native";
2
- import type { NativeWebViewIOS } from "./WebViewTypes";
3
-
4
- const RNCWebView: typeof NativeWebViewIOS = requireNativeComponent(
5
- 'RNCWebView',
6
- );
7
-
8
- export default RNCWebView;