@office-iss/react-native-win32 0.0.0-canary.298 → 0.0.0-canary.299
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/.flowconfig +5 -3
- package/CHANGELOG.json +28 -1
- package/CHANGELOG.md +16 -6
- package/IntegrationTests/IntegrationTestsApp.js +1 -0
- package/IntegrationTests/LoggingTestModule.js +16 -20
- package/IntegrationTests/TimersTest.js +1 -0
- package/IntegrationTests/WebSocketTest.js +1 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +2 -2
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +9 -11
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +4 -6
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js.flow +5 -0
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/Animation.js +6 -1
- package/Libraries/Animated/components/AnimatedScrollView.js +6 -5
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +2 -4
- package/Libraries/Animated/nodes/AnimatedProps.js +2 -7
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -2
- package/Libraries/Components/Button.js +7 -4
- package/Libraries/Components/Button.win32.js +7 -4
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -2
- package/Libraries/Components/Pressable/Pressable.win32.js +8 -8
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -2
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -2
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -0
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -2
- package/Libraries/Components/ScrollView/ScrollView.d.ts +10 -1
- package/Libraries/Components/ScrollView/ScrollView.js +3 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +5 -0
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -2
- package/Libraries/Components/Switch/Switch.js +2 -1
- package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -2
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -7
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -2
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +2 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +28 -3
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/Touchable/Touchable.js +7 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +7 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +3 -2
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +3 -2
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -2
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -2
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -15
- package/Libraries/Components/View/View.js +17 -18
- package/Libraries/Components/View/View.win32.js +16 -2
- package/Libraries/Components/View/ViewAccessibility.js +0 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +0 -7
- package/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
- package/Libraries/Components/View/ViewPropTypes.js +8 -0
- package/Libraries/Components/View/ViewPropTypes.win32.js +8 -0
- package/Libraries/Core/ExceptionsManager.js +28 -15
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -0
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/Image/Image.android.js +3 -3
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +3 -3
- package/Libraries/Interaction/InteractionManager.js +6 -1
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +14 -0
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.js +5 -6
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/LogBox.js +72 -101
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +19 -2
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +6 -15
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +6 -15
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +6 -15
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/XMLHttpRequest.js +2 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -2
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +0 -10
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +80 -61
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +2 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -12
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +3 -12
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/processAspectRatio.js +2 -0
- package/Libraries/Text/Text.js +4 -6
- package/Libraries/Text/TextAncestor.js +3 -10
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextProps.js +2 -2
- package/Libraries/Text/TextProps.win32.js +2 -2
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypesNamespace.js +1 -0
- package/Libraries/Utilities/HMRClient.js +12 -2
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/Platform.android.js +1 -4
- package/Libraries/Utilities/Platform.ios.js +1 -4
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.win32.js +1 -4
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +4 -2
- package/Libraries/Utilities/codegenNativeComponent.js +3 -3
- package/Libraries/Utilities/createPerformanceLogger.js +32 -0
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/index.js +21 -0
- package/index.win32.js +12 -1
- package/jest/setup.js +1 -0
- package/overrides.json +25 -25
- package/package.json +11 -11
- package/src/private/animated/createAnimatedPropsHook.js +4 -1
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -2
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +43 -23
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +9 -5
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +14 -5
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/webapis/errors/DOMException.js +1 -1
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +12 -7
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +13 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +2 -1
- package/src/private/webapis/performance/Performance.js +164 -61
- package/src/private/webapis/performance/PerformanceEntry.js +20 -16
- package/src/private/webapis/performance/PerformanceObserver.js +31 -27
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +60 -8
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +47 -32
- package/src/private/webapis/performance/specs/NativePerformance.js +13 -1
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +4 -0
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
|
@@ -13,7 +13,6 @@ import type {ExtendedExceptionData} from './Data/parseLogBoxLog';
|
|
|
13
13
|
|
|
14
14
|
import Platform from '../Utilities/Platform';
|
|
15
15
|
import RCTLog from '../Utilities/RCTLog';
|
|
16
|
-
import {hasComponentStack} from './Data/parseLogBoxLog';
|
|
17
16
|
import * as React from 'react';
|
|
18
17
|
|
|
19
18
|
export type {LogData, ExtendedExceptionData, IgnorePattern};
|
|
@@ -28,6 +27,7 @@ interface ILogBox {
|
|
|
28
27
|
ignoreAllLogs(value?: boolean): void;
|
|
29
28
|
clearAllLogs(): void;
|
|
30
29
|
addLog(log: LogData): void;
|
|
30
|
+
addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void;
|
|
31
31
|
addException(error: ExtendedExceptionData): void;
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -36,11 +36,12 @@ interface ILogBox {
|
|
|
36
36
|
*/
|
|
37
37
|
if (__DEV__) {
|
|
38
38
|
const LogBoxData = require('./Data/LogBoxData');
|
|
39
|
-
const {
|
|
39
|
+
const {
|
|
40
|
+
parseLogBoxLog,
|
|
41
|
+
parseComponentStack,
|
|
42
|
+
} = require('./Data/parseLogBoxLog');
|
|
40
43
|
|
|
41
|
-
let originalConsoleError;
|
|
42
44
|
let originalConsoleWarn;
|
|
43
|
-
let consoleErrorImpl;
|
|
44
45
|
let consoleWarnImpl: (...args: Array<mixed>) => void;
|
|
45
46
|
|
|
46
47
|
let isLogBoxInstalled: boolean = false;
|
|
@@ -70,22 +71,20 @@ if (__DEV__) {
|
|
|
70
71
|
// IMPORTANT: we only overwrite `console.error` and `console.warn` once.
|
|
71
72
|
// When we uninstall we keep the same reference and only change its
|
|
72
73
|
// internal implementation
|
|
73
|
-
const isFirstInstall =
|
|
74
|
+
const isFirstInstall = originalConsoleWarn == null;
|
|
74
75
|
if (isFirstInstall) {
|
|
75
|
-
|
|
76
|
+
// We only patch warning for legacy reasons.
|
|
77
|
+
// This will be removed in the future, once warnings
|
|
78
|
+
// are fully moved to fusebox. Error handling is done
|
|
79
|
+
// via the ExceptionManager.
|
|
76
80
|
originalConsoleWarn = console.warn.bind(console);
|
|
77
81
|
|
|
78
|
-
// $FlowExpectedError[cannot-write]
|
|
79
|
-
console.error = (...args) => {
|
|
80
|
-
consoleErrorImpl(...args);
|
|
81
|
-
};
|
|
82
82
|
// $FlowExpectedError[cannot-write]
|
|
83
83
|
console.warn = (...args) => {
|
|
84
84
|
consoleWarnImpl(...args);
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
consoleErrorImpl = registerError;
|
|
89
88
|
consoleWarnImpl = registerWarning;
|
|
90
89
|
|
|
91
90
|
if (Platform.isTesting) {
|
|
@@ -108,7 +107,6 @@ if (__DEV__) {
|
|
|
108
107
|
// decorated again after installing LogBox. E.g.:
|
|
109
108
|
// Before uninstalling: original > LogBox > OtherErrorHandler
|
|
110
109
|
// After uninstalling: original > LogBox (noop) > OtherErrorHandler
|
|
111
|
-
consoleErrorImpl = originalConsoleError;
|
|
112
110
|
consoleWarnImpl = originalConsoleWarn;
|
|
113
111
|
},
|
|
114
112
|
|
|
@@ -142,6 +140,64 @@ if (__DEV__) {
|
|
|
142
140
|
}
|
|
143
141
|
},
|
|
144
142
|
|
|
143
|
+
addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>) {
|
|
144
|
+
if (isLogBoxInstalled) {
|
|
145
|
+
let filteredLevel: 'warn' | 'error' | 'fatal' = level;
|
|
146
|
+
try {
|
|
147
|
+
let format = args[0];
|
|
148
|
+
if (typeof format === 'string') {
|
|
149
|
+
const filterResult =
|
|
150
|
+
require('../LogBox/Data/LogBoxData').checkWarningFilter(
|
|
151
|
+
// For legacy reasons, we strip the warning prefix from the message.
|
|
152
|
+
// Can remove this once we remove the warning module altogether.
|
|
153
|
+
format.replace(/^Warning: /, ''),
|
|
154
|
+
);
|
|
155
|
+
if (filterResult.monitorEvent !== 'warning_unhandled') {
|
|
156
|
+
if (filterResult.suppressCompletely) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (filterResult.suppressDialog_LEGACY === true) {
|
|
161
|
+
filteredLevel = 'warn';
|
|
162
|
+
} else if (filterResult.forceDialogImmediately === true) {
|
|
163
|
+
filteredLevel = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.
|
|
164
|
+
}
|
|
165
|
+
args[0] = filterResult.finalFormat;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const result = parseLogBoxLog(args);
|
|
170
|
+
const category = result.category;
|
|
171
|
+
const message = result.message;
|
|
172
|
+
let componentStackType = result.componentStackType;
|
|
173
|
+
let componentStack = result.componentStack;
|
|
174
|
+
if (
|
|
175
|
+
(!componentStack || componentStack.length === 0) &&
|
|
176
|
+
// $FlowExpectedError[prop-missing]
|
|
177
|
+
React.captureOwnerStack
|
|
178
|
+
) {
|
|
179
|
+
const ownerStack = React.captureOwnerStack();
|
|
180
|
+
if (ownerStack != null && ownerStack.length > 0) {
|
|
181
|
+
const parsedComponentStack = parseComponentStack(ownerStack);
|
|
182
|
+
componentStack = parsedComponentStack.stack;
|
|
183
|
+
componentStackType = parsedComponentStack.type;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!LogBoxData.isMessageIgnored(message.content)) {
|
|
187
|
+
LogBoxData.addLog({
|
|
188
|
+
level: filteredLevel,
|
|
189
|
+
category,
|
|
190
|
+
message,
|
|
191
|
+
componentStack,
|
|
192
|
+
componentStackType,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
} catch (err) {
|
|
196
|
+
LogBoxData.reportLogBoxError(err);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
|
|
145
201
|
addException,
|
|
146
202
|
};
|
|
147
203
|
|
|
@@ -157,14 +213,9 @@ if (__DEV__) {
|
|
|
157
213
|
return typeof args[0] === 'string' && args[0].startsWith('(ADVICE)');
|
|
158
214
|
};
|
|
159
215
|
|
|
160
|
-
const isWarningModuleWarning = (...args: Array<mixed>) => {
|
|
161
|
-
return typeof args[0] === 'string' && args[0].startsWith('Warning: ');
|
|
162
|
-
};
|
|
163
|
-
|
|
164
216
|
const registerWarning = (...args: Array<mixed>): void => {
|
|
165
217
|
// Let warnings within LogBox itself fall through.
|
|
166
218
|
if (LogBoxData.isLogBoxErrorMessage(String(args[0]))) {
|
|
167
|
-
originalConsoleError(...args);
|
|
168
219
|
return;
|
|
169
220
|
} else {
|
|
170
221
|
// Be sure to pass LogBox warnings through.
|
|
@@ -190,90 +241,6 @@ if (__DEV__) {
|
|
|
190
241
|
LogBoxData.reportLogBoxError(err);
|
|
191
242
|
}
|
|
192
243
|
};
|
|
193
|
-
|
|
194
|
-
/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
|
|
195
|
-
* LTI update could not be added via codemod */
|
|
196
|
-
const registerError = (...args): void => {
|
|
197
|
-
// Let errors within LogBox itself fall through.
|
|
198
|
-
if (LogBoxData.isLogBoxErrorMessage(args[0])) {
|
|
199
|
-
originalConsoleError(...args);
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
try {
|
|
204
|
-
let stack;
|
|
205
|
-
// $FlowFixMe[prop-missing] Not added to flow types yet.
|
|
206
|
-
if (!hasComponentStack(args) && React.captureOwnerStack != null) {
|
|
207
|
-
stack = React.captureOwnerStack();
|
|
208
|
-
if (!hasComponentStack(args)) {
|
|
209
|
-
if (stack != null && stack !== '') {
|
|
210
|
-
args[0] = args[0] += '%s';
|
|
211
|
-
args.push(stack);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
if (!isWarningModuleWarning(...args) && !hasComponentStack(args)) {
|
|
216
|
-
// Only show LogBox for the 'warning' module, or React errors with
|
|
217
|
-
// component stacks, otherwise pass the error through.
|
|
218
|
-
//
|
|
219
|
-
// By passing through, this will get picked up by the React console override,
|
|
220
|
-
// potentially adding the component stack. React then passes it back to the
|
|
221
|
-
// React Native ExceptionsManager, which reports it to LogBox as an error.
|
|
222
|
-
//
|
|
223
|
-
// Ideally, we refactor all RN error handling so that LogBox patching
|
|
224
|
-
// errors is not necessary, and they are reported the same as a framework.
|
|
225
|
-
// The blocker to this is that the ExceptionManager console.error override
|
|
226
|
-
// strigifys all of the args before passing it through to LogBox, which
|
|
227
|
-
// would lose all of the interpolation information.
|
|
228
|
-
//
|
|
229
|
-
// The 'warning' module needs to be handled here because React internally calls
|
|
230
|
-
// `console.error('Warning: ')` with the component stack already included.
|
|
231
|
-
originalConsoleError(...args);
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
const format = args[0].replace('Warning: ', '');
|
|
236
|
-
const filterResult = LogBoxData.checkWarningFilter(format);
|
|
237
|
-
let level = 'error';
|
|
238
|
-
if (filterResult.monitorEvent !== 'warning_unhandled') {
|
|
239
|
-
if (filterResult.suppressCompletely) {
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (filterResult.suppressDialog_LEGACY === true) {
|
|
244
|
-
level = 'warn';
|
|
245
|
-
} else if (filterResult.forceDialogImmediately === true) {
|
|
246
|
-
level = 'fatal'; // Do not downgrade. These are real bugs with same severity as throws.
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// Unfortunately, we need to add the Warning: prefix back for downstream dependencies.
|
|
251
|
-
// Downstream, we check for this prefix to know that LogBox already handled it, so
|
|
252
|
-
// it doesn't get reported back to LogBox. It's an absolute mess.
|
|
253
|
-
args[0] = `Warning: ${filterResult.finalFormat}`;
|
|
254
|
-
const {category, message, componentStack, componentStackType} =
|
|
255
|
-
parseLogBoxLog(args);
|
|
256
|
-
|
|
257
|
-
// Interpolate the message so they are formatted for adb and other CLIs.
|
|
258
|
-
// This is different than the message.content above because it includes component stacks.
|
|
259
|
-
const interpolated = parseInterpolation(args);
|
|
260
|
-
originalConsoleError(interpolated.message.content);
|
|
261
|
-
|
|
262
|
-
if (!LogBoxData.isMessageIgnored(message.content)) {
|
|
263
|
-
LogBoxData.addLog({
|
|
264
|
-
/* $FlowFixMe[incompatible-call] Natural Inference rollout. See
|
|
265
|
-
* https://fburl.com/workplace/6291gfvu */
|
|
266
|
-
level,
|
|
267
|
-
category,
|
|
268
|
-
message,
|
|
269
|
-
componentStack,
|
|
270
|
-
componentStackType,
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
} catch (err) {
|
|
274
|
-
LogBoxData.reportLogBoxError(err);
|
|
275
|
-
}
|
|
276
|
-
};
|
|
277
244
|
} else {
|
|
278
245
|
LogBox = {
|
|
279
246
|
install(): void {
|
|
@@ -304,6 +271,10 @@ if (__DEV__) {
|
|
|
304
271
|
// Do nothing.
|
|
305
272
|
},
|
|
306
273
|
|
|
274
|
+
addConsoleLog(level: 'warn' | 'error', ...args: Array<mixed>): void {
|
|
275
|
+
// Do nothing.
|
|
276
|
+
},
|
|
277
|
+
|
|
307
278
|
addException(error: ExtendedExceptionData): void {
|
|
308
279
|
// Do nothing.
|
|
309
280
|
},
|
|
@@ -35,9 +35,9 @@ export interface ModalBaseProps {
|
|
|
35
35
|
*/
|
|
36
36
|
visible?: boolean | undefined;
|
|
37
37
|
/**
|
|
38
|
-
* The `onRequestClose` callback is called when the user taps the hardware back button on Android or the menu button on Apple TV.
|
|
38
|
+
* The `onRequestClose` callback is called when the user taps the hardware back button on Android, dismisses the sheet using a gesture on iOS (when `allowSwipeDismissal` is set to true) or the menu button on Apple TV.
|
|
39
39
|
*
|
|
40
|
-
* This is required on
|
|
40
|
+
* This is required on iOS and Android.
|
|
41
41
|
*/
|
|
42
42
|
onRequestClose?: ((event: NativeSyntheticEvent<any>) => void) | undefined;
|
|
43
43
|
/**
|
|
@@ -89,6 +89,12 @@ export interface ModalPropsIOS {
|
|
|
89
89
|
onOrientationChange?:
|
|
90
90
|
| ((event: NativeSyntheticEvent<any>) => void)
|
|
91
91
|
| undefined;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Controls whether the modal can be dismissed by swiping down on iOS.
|
|
95
|
+
* This requires you to implement the `onRequestClose` prop to handle the dismissal.
|
|
96
|
+
*/
|
|
97
|
+
allowSwipeDismissal?: boolean | undefined;
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
export interface ModalPropsAndroid {
|
package/Libraries/Modal/Modal.js
CHANGED
|
@@ -86,9 +86,9 @@ export type ModalBaseProps = {
|
|
|
86
86
|
*/
|
|
87
87
|
visible?: ?boolean,
|
|
88
88
|
/**
|
|
89
|
-
* The `onRequestClose` callback is called when the user taps the hardware back button on Android or the menu button on Apple TV.
|
|
89
|
+
* The `onRequestClose` callback is called when the user taps the hardware back button on Android, dismisses the sheet using a gesture on iOS (when `allowSwipeDismissal` is set to true) or the menu button on Apple TV.
|
|
90
90
|
*
|
|
91
|
-
* This is required on
|
|
91
|
+
* This is required on iOS and Android.
|
|
92
92
|
*/
|
|
93
93
|
// onRequestClose?: (event: NativeSyntheticEvent<any>) => void;
|
|
94
94
|
onRequestClose?: ?DirectEventHandler<null>,
|
|
@@ -147,6 +147,12 @@ export type ModalPropsIOS = {
|
|
|
147
147
|
// | ((event: NativeSyntheticEvent<any>) => void)
|
|
148
148
|
// | undefined;
|
|
149
149
|
onOrientationChange?: ?DirectEventHandler<OrientationChangeEvent>,
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Controls whether the modal can be dismissed by swiping down on iOS.
|
|
153
|
+
* This requires you to implement the `onRequestClose` prop to handle the dismissal.
|
|
154
|
+
*/
|
|
155
|
+
allowSwipeDismissal?: ?boolean,
|
|
150
156
|
};
|
|
151
157
|
|
|
152
158
|
export type ModalPropsAndroid = {
|
|
@@ -192,6 +198,16 @@ function confirmProps(props: ModalProps) {
|
|
|
192
198
|
'Modal with translucent navigation bar and without translucent status bar is not supported.',
|
|
193
199
|
);
|
|
194
200
|
}
|
|
201
|
+
|
|
202
|
+
if (
|
|
203
|
+
Platform.OS === 'ios' &&
|
|
204
|
+
props.allowSwipeDismissal === true &&
|
|
205
|
+
!props.onRequestClose
|
|
206
|
+
) {
|
|
207
|
+
console.warn(
|
|
208
|
+
'Modal requires the onRequestClose prop when used with `allowSwipeDismissal`. This is necessary to prevent state corruption.',
|
|
209
|
+
);
|
|
210
|
+
}
|
|
195
211
|
}
|
|
196
212
|
}
|
|
197
213
|
|
|
@@ -327,6 +343,7 @@ class Modal extends React.Component<ModalProps, ModalState> {
|
|
|
327
343
|
onStartShouldSetResponder={this._shouldSetResponder}
|
|
328
344
|
supportedOrientations={this.props.supportedOrientations}
|
|
329
345
|
onOrientationChange={this.props.onOrientationChange}
|
|
346
|
+
allowSwipeDismissal={this.props.allowSwipeDismissal}
|
|
330
347
|
testID={this.props.testID}>
|
|
331
348
|
<VirtualizedListContextResetter>
|
|
332
349
|
<ScrollView.Context.Provider value={null}>
|
|
@@ -10,4 +10,5 @@
|
|
|
10
10
|
|
|
11
11
|
export * from '../../src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent';
|
|
12
12
|
import RCTModalHostViewNativeComponent from '../../src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent';
|
|
13
|
+
|
|
13
14
|
export default RCTModalHostViewNativeComponent;
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
|
|
12
12
|
|
|
13
13
|
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
14
|
-
import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
|
|
15
14
|
import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
|
|
16
15
|
import {DynamicallyInjectedByGestureHandler} from './ViewConfigIgnore';
|
|
17
16
|
|
|
@@ -183,20 +182,12 @@ const validAttributesForNonEventProps = {
|
|
|
183
182
|
experimental_backgroundImage: {
|
|
184
183
|
process: require('../StyleSheet/processBackgroundImage').default,
|
|
185
184
|
},
|
|
186
|
-
boxShadow:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
},
|
|
193
|
-
filter:
|
|
194
|
-
NativeReactNativeFeatureFlags != null &&
|
|
195
|
-
ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
196
|
-
? (true as const)
|
|
197
|
-
: {
|
|
198
|
-
process: require('../StyleSheet/processFilter').default,
|
|
199
|
-
},
|
|
185
|
+
boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
186
|
+
? (true as const)
|
|
187
|
+
: {process: require('../StyleSheet/processBoxShadow').default},
|
|
188
|
+
filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
189
|
+
? (true as const)
|
|
190
|
+
: {process: require('../StyleSheet/processFilter').default},
|
|
200
191
|
mixBlendMode: true,
|
|
201
192
|
isolation: true,
|
|
202
193
|
opacity: true,
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
|
|
12
12
|
|
|
13
13
|
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
14
|
-
import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
|
|
15
14
|
import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
|
|
16
15
|
import {
|
|
17
16
|
ConditionallyIgnoredEventHandlers,
|
|
@@ -229,20 +228,12 @@ const validAttributesForNonEventProps = {
|
|
|
229
228
|
hitSlop: {diff: require('../Utilities/differ/insetsDiffer').default},
|
|
230
229
|
collapsable: true,
|
|
231
230
|
collapsableChildren: true,
|
|
232
|
-
filter:
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
},
|
|
239
|
-
boxShadow:
|
|
240
|
-
NativeReactNativeFeatureFlags != null &&
|
|
241
|
-
ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
242
|
-
? (true as const)
|
|
243
|
-
: {
|
|
244
|
-
process: require('../StyleSheet/processBoxShadow').default,
|
|
245
|
-
},
|
|
231
|
+
filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
232
|
+
? (true as const)
|
|
233
|
+
: {process: require('../StyleSheet/processFilter').default},
|
|
234
|
+
boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
235
|
+
? (true as const)
|
|
236
|
+
: {process: require('../StyleSheet/processBoxShadow').default},
|
|
246
237
|
mixBlendMode: true,
|
|
247
238
|
isolation: true,
|
|
248
239
|
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
import type {PartialViewConfigWithoutName} from './PlatformBaseViewConfig';
|
|
12
12
|
|
|
13
13
|
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
14
|
-
import NativeReactNativeFeatureFlags from '../../src/private/featureflags/specs/NativeReactNativeFeatureFlags';
|
|
15
14
|
import ReactNativeStyleAttributes from '../Components/View/ReactNativeStyleAttributes';
|
|
16
15
|
import {
|
|
17
16
|
ConditionallyIgnoredEventHandlers,
|
|
@@ -225,20 +224,12 @@ const validAttributesForNonEventProps = {
|
|
|
225
224
|
hitSlop: {diff: require('../Utilities/differ/insetsDiffer').default},
|
|
226
225
|
collapsable: true,
|
|
227
226
|
collapsableChildren: true,
|
|
228
|
-
experimental_filter:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
},
|
|
235
|
-
boxShadow:
|
|
236
|
-
NativeReactNativeFeatureFlags != null &&
|
|
237
|
-
ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
238
|
-
? (true as const)
|
|
239
|
-
: {
|
|
240
|
-
process: require('../StyleSheet/processBoxShadow').default,
|
|
241
|
-
},
|
|
227
|
+
experimental_filter: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
228
|
+
? (true as const)
|
|
229
|
+
: {process: require('../StyleSheet/processFilter').default},
|
|
230
|
+
boxShadow: ReactNativeFeatureFlags.enableNativeCSSParsing()
|
|
231
|
+
? (true as const)
|
|
232
|
+
: {process: require('../StyleSheet/processBoxShadow').default},
|
|
242
233
|
mixBlendMode: true,
|
|
243
234
|
isolation: true,
|
|
244
235
|
|
|
@@ -646,6 +646,8 @@ class XMLHttpRequest extends EventTarget {
|
|
|
646
646
|
this.withCredentials,
|
|
647
647
|
);
|
|
648
648
|
};
|
|
649
|
+
/* $FlowFixMe[constant-condition] Error discovered during Constant
|
|
650
|
+
* Condition roll out. See https://fburl.com/workplace/1v97vimq. */
|
|
649
651
|
if (DEBUG_NETWORK_SEND_DELAY) {
|
|
650
652
|
setTimeout(doSend, DEBUG_NETWORK_SEND_DELAY);
|
|
651
653
|
} else {
|
|
@@ -130,7 +130,7 @@ const PERMISSIONS = Object.freeze({
|
|
|
130
130
|
*
|
|
131
131
|
* See https://reactnative.dev/docs/permissionsandroid
|
|
132
132
|
*/
|
|
133
|
-
class
|
|
133
|
+
class PermissionsAndroidImpl {
|
|
134
134
|
PERMISSIONS: PermissionsType = PERMISSIONS;
|
|
135
135
|
RESULTS: $ReadOnly<{
|
|
136
136
|
DENIED: 'denied',
|
|
@@ -297,5 +297,6 @@ class PermissionsAndroid {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
-
const PermissionsAndroidInstance:
|
|
300
|
+
const PermissionsAndroidInstance: PermissionsAndroidImpl =
|
|
301
|
+
new PermissionsAndroidImpl();
|
|
301
302
|
export default PermissionsAndroidInstance;
|
|
@@ -10,4 +10,5 @@
|
|
|
10
10
|
|
|
11
11
|
export * from '../../src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS';
|
|
12
12
|
import NativePushNotificationManagerIOS from '../../src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS';
|
|
13
|
+
|
|
13
14
|
export default NativePushNotificationManagerIOS;
|
|
@@ -13,8 +13,8 @@ import type {RootTag} from '../Types/RootTagTypes';
|
|
|
13
13
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
14
14
|
import type {DisplayModeType} from './DisplayMode';
|
|
15
15
|
|
|
16
|
-
type
|
|
17
|
-
export type TaskProvider = () =>
|
|
16
|
+
type HeadlessTask = (taskData: any) => Promise<void>;
|
|
17
|
+
export type TaskProvider = () => HeadlessTask;
|
|
18
18
|
|
|
19
19
|
export type ComponentProvider = () => React.ComponentType<any>;
|
|
20
20
|
export type ComponentProviderInstrumentationHook = (
|
|
@@ -22,7 +22,6 @@ import type {
|
|
|
22
22
|
WrapperComponentProvider,
|
|
23
23
|
} from './AppRegistry.flow';
|
|
24
24
|
|
|
25
|
-
import BugReporting from '../BugReporting/BugReporting';
|
|
26
25
|
import createPerformanceLogger from '../Utilities/createPerformanceLogger';
|
|
27
26
|
import SceneTracker from '../Utilities/SceneTracker';
|
|
28
27
|
import {coerceDisplayMode} from './DisplayMode';
|
|
@@ -36,7 +35,6 @@ type TaskCanceller = () => void;
|
|
|
36
35
|
type TaskCancelProvider = () => TaskCanceller;
|
|
37
36
|
|
|
38
37
|
const runnables: Runnables = {};
|
|
39
|
-
let runCount = 1;
|
|
40
38
|
const sections: Runnables = {};
|
|
41
39
|
const taskProviders: Map<string, TaskProvider> = new Map();
|
|
42
40
|
const taskCancelProviders: Map<string, TaskCancelProvider> = new Map();
|
|
@@ -167,10 +165,6 @@ export function runApplication(
|
|
|
167
165
|
const logParams = __DEV__ ? ` with ${JSON.stringify(appParameters)}` : '';
|
|
168
166
|
const msg = `Running "${appKey}"${logParams}`;
|
|
169
167
|
console.log(msg);
|
|
170
|
-
BugReporting.addSource(
|
|
171
|
-
'AppRegistry.runApplication' + runCount++,
|
|
172
|
-
() => msg,
|
|
173
|
-
);
|
|
174
168
|
}
|
|
175
169
|
invariant(
|
|
176
170
|
runnables[appKey],
|
|
@@ -199,10 +193,6 @@ export function setSurfaceProps(
|
|
|
199
193
|
'" with ' +
|
|
200
194
|
JSON.stringify(appParameters);
|
|
201
195
|
console.log(msg);
|
|
202
|
-
BugReporting.addSource(
|
|
203
|
-
'AppRegistry.setSurfaceProps' + runCount++,
|
|
204
|
-
() => msg,
|
|
205
|
-
);
|
|
206
196
|
}
|
|
207
197
|
invariant(
|
|
208
198
|
runnables[appKey],
|
|
@@ -31,7 +31,7 @@ const getUIManagerConstants: ?() => {[viewManagerName: string]: Object} =
|
|
|
31
31
|
|
|
32
32
|
const getUIManagerConstantsCached = (function () {
|
|
33
33
|
let wasCalledOnce = false;
|
|
34
|
-
let result = {};
|
|
34
|
+
let result: {[viewManagerName: string]: Object} = {};
|
|
35
35
|
return (): {[viewManagerName: string]: Object} => {
|
|
36
36
|
if (!wasCalledOnce) {
|
|
37
37
|
result = nullthrows(getUIManagerConstants)();
|