@office-iss/react-native-win32 0.71.5 → 0.72.0-preview.2
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 +15 -3
- package/CHANGELOG.json +321 -45
- package/CHANGELOG.md +149 -26
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.win32.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +606 -0
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.win32.js +451 -0
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.win32.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +51 -0
- package/Libraries/Components/TextInput/TextInput.Types.win32.js +3 -0
- package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +1 -0
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.win32.js +202 -890
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +35 -16
- package/Libraries/Components/View/View.win32.js +38 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
- package/Libraries/Components/View/ViewWin32.js +2 -35
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +4 -8
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.win32.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/Inspector.win32.js +7 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +10 -4
- package/Libraries/Pressability/Pressability.win32.js +9 -3
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +168 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.win32.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.win32.js +26 -0
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/flow/global.js +29 -4
- package/flow/jest.js +258 -164
- package/flow/use-sync-external-store.js +1 -0
- package/index.js +56 -42
- package/index.win32.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/overrides.json +122 -85
- package/package.json +40 -30
- package/rn-get-polyfills.js +1 -1
- package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
- package/src/Libraries/Components/Touchable/TouchableWin32.tsx +3 -3
- package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
- package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
- package/types/index.d.ts +2 -6
- package/types/modules/Codegen.d.ts +4 -4
- package/types/modules/globals.d.ts +27 -25
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
- package/types/public/ReactNativeRenderer.d.ts +2 -7
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/flow/JSITimerInternalType.js +0 -30
|
@@ -57,7 +57,6 @@ const View: React.AbstractComponent<
|
|
|
57
57
|
nativeID,
|
|
58
58
|
pointerEvents,
|
|
59
59
|
role,
|
|
60
|
-
style,
|
|
61
60
|
tabIndex,
|
|
62
61
|
...otherProps
|
|
63
62
|
}: ViewProps,
|
|
@@ -66,23 +65,43 @@ const View: React.AbstractComponent<
|
|
|
66
65
|
const _accessibilityLabelledBy =
|
|
67
66
|
ariaLabelledBy?.split(/\s*,\s*/g) ?? accessibilityLabelledBy;
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
let _accessibilityState;
|
|
69
|
+
if (
|
|
70
|
+
accessibilityState != null ||
|
|
71
|
+
ariaBusy != null ||
|
|
72
|
+
ariaChecked != null ||
|
|
73
|
+
ariaDisabled != null ||
|
|
74
|
+
ariaExpanded != null ||
|
|
75
|
+
ariaSelected != null
|
|
76
|
+
) {
|
|
77
|
+
_accessibilityState = {
|
|
78
|
+
busy: ariaBusy ?? accessibilityState?.busy,
|
|
79
|
+
checked: ariaChecked ?? accessibilityState?.checked,
|
|
80
|
+
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
81
|
+
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
82
|
+
selected: ariaSelected ?? accessibilityState?.selected,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
let _accessibilityValue;
|
|
86
|
+
if (
|
|
87
|
+
accessibilityValue != null ||
|
|
88
|
+
ariaValueMax != null ||
|
|
89
|
+
ariaValueMin != null ||
|
|
90
|
+
ariaValueNow != null ||
|
|
91
|
+
ariaValueText != null
|
|
92
|
+
) {
|
|
93
|
+
_accessibilityValue = {
|
|
94
|
+
max: ariaValueMax ?? accessibilityValue?.max,
|
|
95
|
+
min: ariaValueMin ?? accessibilityValue?.min,
|
|
96
|
+
now: ariaValueNow ?? accessibilityValue?.now,
|
|
97
|
+
text: ariaValueText ?? accessibilityValue?.text,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
76
100
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
min: ariaValueMin ?? accessibilityValue?.min,
|
|
80
|
-
now: ariaValueNow ?? accessibilityValue?.now,
|
|
81
|
-
text: ariaValueText ?? accessibilityValue?.text,
|
|
82
|
-
};
|
|
101
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
102
|
+
let style = flattenStyle(otherProps.style);
|
|
83
103
|
|
|
84
|
-
const
|
|
85
|
-
const newPointerEvents = flattenedStyle?.pointerEvents || pointerEvents;
|
|
104
|
+
const newPointerEvents = style?.pointerEvents || pointerEvents;
|
|
86
105
|
|
|
87
106
|
return (
|
|
88
107
|
<TextAncestor.Provider value={false}>
|
|
@@ -61,7 +61,6 @@ const View: React.AbstractComponent<
|
|
|
61
61
|
nativeID,
|
|
62
62
|
pointerEvents,
|
|
63
63
|
role,
|
|
64
|
-
style,
|
|
65
64
|
tabIndex,
|
|
66
65
|
...otherProps
|
|
67
66
|
}: ViewProps,
|
|
@@ -70,23 +69,43 @@ const View: React.AbstractComponent<
|
|
|
70
69
|
const _accessibilityLabelledBy =
|
|
71
70
|
ariaLabelledBy?.split(/\s*,\s*/g) ?? accessibilityLabelledBy;
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
let _accessibilityState;
|
|
73
|
+
if (
|
|
74
|
+
accessibilityState != null ||
|
|
75
|
+
ariaBusy != null ||
|
|
76
|
+
ariaChecked != null ||
|
|
77
|
+
ariaDisabled != null ||
|
|
78
|
+
ariaExpanded != null ||
|
|
79
|
+
ariaSelected != null
|
|
80
|
+
) {
|
|
81
|
+
_accessibilityState = {
|
|
82
|
+
busy: ariaBusy ?? accessibilityState?.busy,
|
|
83
|
+
checked: ariaChecked ?? accessibilityState?.checked,
|
|
84
|
+
disabled: ariaDisabled ?? accessibilityState?.disabled,
|
|
85
|
+
expanded: ariaExpanded ?? accessibilityState?.expanded,
|
|
86
|
+
selected: ariaSelected ?? accessibilityState?.selected,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
let _accessibilityValue;
|
|
90
|
+
if (
|
|
91
|
+
accessibilityValue != null ||
|
|
92
|
+
ariaValueMax != null ||
|
|
93
|
+
ariaValueMin != null ||
|
|
94
|
+
ariaValueNow != null ||
|
|
95
|
+
ariaValueText != null
|
|
96
|
+
) {
|
|
97
|
+
_accessibilityValue = {
|
|
98
|
+
max: ariaValueMax ?? accessibilityValue?.max,
|
|
99
|
+
min: ariaValueMin ?? accessibilityValue?.min,
|
|
100
|
+
now: ariaValueNow ?? accessibilityValue?.now,
|
|
101
|
+
text: ariaValueText ?? accessibilityValue?.text,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
80
104
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
min: ariaValueMin ?? accessibilityValue?.min,
|
|
84
|
-
now: ariaValueNow ?? accessibilityValue?.now,
|
|
85
|
-
text: ariaValueText ?? accessibilityValue?.text,
|
|
86
|
-
};
|
|
105
|
+
// $FlowFixMe[underconstrained-implicit-instantiation]
|
|
106
|
+
let style = flattenStyle(otherProps.style);
|
|
87
107
|
|
|
88
|
-
const
|
|
89
|
-
const newPointerEvents = flattenedStyle?.pointerEvents || pointerEvents;
|
|
108
|
+
const newPointerEvents = style?.pointerEvents || pointerEvents;
|
|
90
109
|
|
|
91
110
|
const _keyDown = (event: KeyEvent) => {
|
|
92
111
|
if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
|
|
@@ -141,7 +160,9 @@ const View: React.AbstractComponent<
|
|
|
141
160
|
const childrenWithImportantForAccessibility = children => {
|
|
142
161
|
return React.Children.map(children, child => {
|
|
143
162
|
if (React.isValidElement(child)) {
|
|
163
|
+
// $FlowFixMe[incompatible-use]
|
|
144
164
|
if (child.props.children) {
|
|
165
|
+
// $FlowFixMe[incompatible-type]
|
|
145
166
|
return React.cloneElement(child, {
|
|
146
167
|
accessible: false,
|
|
147
168
|
children: childrenWithImportantForAccessibility(
|
|
@@ -149,6 +170,7 @@ const View: React.AbstractComponent<
|
|
|
149
170
|
),
|
|
150
171
|
});
|
|
151
172
|
} else {
|
|
173
|
+
// $FlowFixMe[incompatible-type]
|
|
152
174
|
return React.cloneElement(child, {accessible: false});
|
|
153
175
|
}
|
|
154
176
|
}
|
|
@@ -75,10 +75,10 @@ export interface AccessibilityProps
|
|
|
75
75
|
*/
|
|
76
76
|
accessibilityValue?: AccessibilityValue | undefined;
|
|
77
77
|
|
|
78
|
-
'aria-valuemax'?: AccessibilityValue['max'];
|
|
79
|
-
'aria-valuemin'?: AccessibilityValue['min'];
|
|
80
|
-
'aria-valuenow'?: AccessibilityValue['now'];
|
|
81
|
-
'aria-valuetext'?: AccessibilityValue['text'];
|
|
78
|
+
'aria-valuemax'?: AccessibilityValue['max'] | undefined;
|
|
79
|
+
'aria-valuemin'?: AccessibilityValue['min'] | undefined;
|
|
80
|
+
'aria-valuenow'?: AccessibilityValue['now'] | undefined;
|
|
81
|
+
'aria-valuetext'?: AccessibilityValue['text'] | undefined;
|
|
82
82
|
/**
|
|
83
83
|
* When `accessible` is true, the system will try to invoke this function when the user performs an accessibility custom action.
|
|
84
84
|
*/
|
|
@@ -105,7 +105,7 @@ export interface AccessibilityProps
|
|
|
105
105
|
/**
|
|
106
106
|
* Indicates to accessibility services to treat UI component like a specific role.
|
|
107
107
|
*/
|
|
108
|
-
role?: Role;
|
|
108
|
+
role?: Role | undefined;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export type AccessibilityActionInfo = Readonly<{
|
|
@@ -274,7 +274,7 @@ export interface AccessibilityPropsIOS {
|
|
|
274
274
|
accessibilityViewIsModal?: boolean | undefined;
|
|
275
275
|
|
|
276
276
|
/**
|
|
277
|
-
* When
|
|
277
|
+
* When accessible is true, the system will invoke this function when the user performs the escape gesture (scrub with two fingers).
|
|
278
278
|
* @platform ios
|
|
279
279
|
*/
|
|
280
280
|
onAccessibilityEscape?: (() => void) | undefined;
|
|
@@ -16,6 +16,7 @@ import type {SyntheticEvent} from '../../Types/CoreEventTypes';
|
|
|
16
16
|
export type AccessibilityRole =
|
|
17
17
|
| 'none'
|
|
18
18
|
| 'button'
|
|
19
|
+
| 'dropdownlist'
|
|
19
20
|
| 'togglebutton'
|
|
20
21
|
| 'link'
|
|
21
22
|
| 'search'
|
|
@@ -44,7 +45,15 @@ export type AccessibilityRole =
|
|
|
44
45
|
| 'timer'
|
|
45
46
|
| 'list'
|
|
46
47
|
| 'toolbar'
|
|
47
|
-
| 'grid'
|
|
48
|
+
| 'grid'
|
|
49
|
+
| 'pager'
|
|
50
|
+
| 'scrollview'
|
|
51
|
+
| 'horizontalscrollview'
|
|
52
|
+
| 'viewgroup'
|
|
53
|
+
| 'webview'
|
|
54
|
+
| 'drawerlayout'
|
|
55
|
+
| 'slidingdrawer'
|
|
56
|
+
| 'iconmenu';
|
|
48
57
|
|
|
49
58
|
// Role types for web
|
|
50
59
|
export type Role =
|
|
@@ -76,10 +76,10 @@ export interface AccessibilityProps
|
|
|
76
76
|
*/
|
|
77
77
|
accessibilityValue?: AccessibilityValue | undefined;
|
|
78
78
|
|
|
79
|
-
'aria-valuemax'?: AccessibilityValue['max'];
|
|
80
|
-
'aria-valuemin'?: AccessibilityValue['min'];
|
|
81
|
-
'aria-valuenow'?: AccessibilityValue['now'];
|
|
82
|
-
'aria-valuetext'?: AccessibilityValue['text'];
|
|
79
|
+
'aria-valuemax'?: AccessibilityValue['max'] | undefined;
|
|
80
|
+
'aria-valuemin'?: AccessibilityValue['min'] | undefined;
|
|
81
|
+
'aria-valuenow'?: AccessibilityValue['now'] | undefined;
|
|
82
|
+
'aria-valuetext'?: AccessibilityValue['text'] | undefined;
|
|
83
83
|
/**
|
|
84
84
|
* When `accessible` is true, the system will try to invoke this function when the user performs an accessibility custom action.
|
|
85
85
|
*/
|
|
@@ -106,7 +106,7 @@ export interface AccessibilityProps
|
|
|
106
106
|
/**
|
|
107
107
|
* Indicates to accessibility services to treat UI component like a specific role.
|
|
108
108
|
*/
|
|
109
|
-
role?: Role;
|
|
109
|
+
role?: Role | undefined;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
export type AccessibilityActionInfo = Readonly<{
|
|
@@ -45,7 +45,10 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
45
45
|
borderTopEndRadius: true,
|
|
46
46
|
borderBottomStartRadius: true,
|
|
47
47
|
borderBottomEndRadius: true,
|
|
48
|
-
|
|
48
|
+
borderEndEndRadius: true,
|
|
49
|
+
borderEndStartRadius: true,
|
|
50
|
+
borderStartEndRadius: true,
|
|
51
|
+
borderStartStartRadius: true,
|
|
49
52
|
borderStyle: true,
|
|
50
53
|
hitSlop: true,
|
|
51
54
|
pointerEvents: true,
|
|
@@ -61,15 +64,36 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
|
|
|
61
64
|
borderStartWidth: true,
|
|
62
65
|
borderEndWidth: true,
|
|
63
66
|
|
|
64
|
-
borderColor: {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
borderColor: {
|
|
68
|
+
process: require('../../StyleSheet/processColor').default,
|
|
69
|
+
},
|
|
70
|
+
borderLeftColor: {
|
|
71
|
+
process: require('../../StyleSheet/processColor').default,
|
|
72
|
+
},
|
|
73
|
+
borderRightColor: {
|
|
74
|
+
process: require('../../StyleSheet/processColor').default,
|
|
75
|
+
},
|
|
76
|
+
borderTopColor: {
|
|
77
|
+
process: require('../../StyleSheet/processColor').default,
|
|
78
|
+
},
|
|
68
79
|
borderBottomColor: {
|
|
69
|
-
process: require('../../StyleSheet/processColor'),
|
|
80
|
+
process: require('../../StyleSheet/processColor').default,
|
|
81
|
+
},
|
|
82
|
+
borderStartColor: {
|
|
83
|
+
process: require('../../StyleSheet/processColor').default,
|
|
84
|
+
},
|
|
85
|
+
borderEndColor: {
|
|
86
|
+
process: require('../../StyleSheet/processColor').default,
|
|
87
|
+
},
|
|
88
|
+
borderBlockColor: {
|
|
89
|
+
process: require('../../StyleSheet/processColor').default,
|
|
90
|
+
},
|
|
91
|
+
borderBlockEndColor: {
|
|
92
|
+
process: require('../../StyleSheet/processColor').default,
|
|
93
|
+
},
|
|
94
|
+
borderBlockStartColor: {
|
|
95
|
+
process: require('../../StyleSheet/processColor').default,
|
|
70
96
|
},
|
|
71
|
-
borderStartColor: {process: require('../../StyleSheet/processColor')},
|
|
72
|
-
borderEndColor: {process: require('../../StyleSheet/processColor')},
|
|
73
97
|
|
|
74
98
|
focusable: true,
|
|
75
99
|
overflow: true,
|
|
@@ -173,7 +173,7 @@ export interface ViewProps
|
|
|
173
173
|
Touchable,
|
|
174
174
|
PointerEvents,
|
|
175
175
|
AccessibilityProps {
|
|
176
|
-
children?: React.ReactNode;
|
|
176
|
+
children?: React.ReactNode | undefined;
|
|
177
177
|
/**
|
|
178
178
|
* This defines how far a touch event can start away from the view.
|
|
179
179
|
* Typical interface guidelines recommend touch targets that are at least
|
|
@@ -543,7 +543,7 @@ export type ViewProps = $ReadOnly<{|
|
|
|
543
543
|
'aria-hidden'?: ?boolean,
|
|
544
544
|
|
|
545
545
|
/**
|
|
546
|
-
* It
|
|
546
|
+
* It represents the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud.
|
|
547
547
|
*
|
|
548
548
|
* @platform android
|
|
549
549
|
*/
|
|
@@ -292,7 +292,7 @@ export interface ViewProps
|
|
|
292
292
|
Touchable,
|
|
293
293
|
PointerEvents,
|
|
294
294
|
AccessibilityProps {
|
|
295
|
-
children?: React.ReactNode;
|
|
295
|
+
children?: React.ReactNode | undefined;
|
|
296
296
|
/**
|
|
297
297
|
* This defines how far a touch event can start away from the view.
|
|
298
298
|
* Typical interface guidelines recommend touch targets that are at least
|
|
@@ -592,7 +592,7 @@ export type ViewProps = $ReadOnly<{|
|
|
|
592
592
|
'aria-hidden'?: ?boolean,
|
|
593
593
|
|
|
594
594
|
/**
|
|
595
|
-
* It
|
|
595
|
+
* It represents the nativeID of the associated label text. When the assistive technology focuses on the component with this props, the text is read aloud.
|
|
596
596
|
*
|
|
597
597
|
* @platform android
|
|
598
598
|
*/
|
|
@@ -8,14 +8,12 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import * as React from 'react';
|
|
11
|
-
import {
|
|
11
|
+
import {useLayoutEffect} from 'react';
|
|
12
12
|
import type {ViewProps} from './ViewPropTypes';
|
|
13
13
|
|
|
14
14
|
import View from './View';
|
|
15
15
|
import {findNodeHandle} from '../../ReactNative/RendererProxy';
|
|
16
|
-
import UIManager from '../../ReactNative/UIManager';
|
|
17
16
|
import warnOnce from '../../Utilities/warnOnce';
|
|
18
|
-
import setAndForwardRef from '../../Utilities/setAndForwardRef';
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* Basic View component with additional Win32 specific functionality
|
|
@@ -100,40 +98,9 @@ const ViewWin32: React.AbstractComponent<
|
|
|
100
98
|
}
|
|
101
99
|
}, [accessibilityControls]);
|
|
102
100
|
|
|
103
|
-
/**
|
|
104
|
-
* Set up the forwarding ref to enable adding the focus method.
|
|
105
|
-
*/
|
|
106
|
-
const focusRef = useRef<typeof View | null>(null);
|
|
107
|
-
|
|
108
|
-
const setLocalRef = useCallback(
|
|
109
|
-
(instance: typeof View | null) => {
|
|
110
|
-
focusRef.current = instance;
|
|
111
|
-
/**
|
|
112
|
-
* Add focus() as a callable function to the forwarded reference.
|
|
113
|
-
*/
|
|
114
|
-
if (instance) {
|
|
115
|
-
// $FlowFixMe[prop-missing] - TODO - focus on a component should already call into TextInputState.focus.. once we remove the refs required for legacy accessibility*By ref support
|
|
116
|
-
instance.focus = () => {
|
|
117
|
-
UIManager.dispatchViewManagerCommand(
|
|
118
|
-
findNodeHandle(instance),
|
|
119
|
-
UIManager.getViewManagerConfig('RCTView').Commands.focus,
|
|
120
|
-
null,
|
|
121
|
-
);
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
[focusRef],
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
// $FlowFixMe
|
|
129
|
-
const setNativeRef = setAndForwardRef<typeof View | null>({
|
|
130
|
-
getForwardedRef: () => forwardedRef,
|
|
131
|
-
setLocalRef,
|
|
132
|
-
});
|
|
133
|
-
|
|
134
101
|
return (
|
|
135
102
|
<View
|
|
136
|
-
ref={
|
|
103
|
+
ref={forwardedRef}
|
|
137
104
|
{...rest}
|
|
138
105
|
{...(controlsTarget !== null
|
|
139
106
|
? {accessibilityControls: controlsTarget}
|
|
@@ -22,7 +22,7 @@ function convertHermesStack(stack: HermesParsedStack): Array<StackFrame> {
|
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
24
|
const {location, functionName} = entry;
|
|
25
|
-
if (location.type === 'NATIVE') {
|
|
25
|
+
if (location.type === 'NATIVE' || location.type === 'INTERNAL_BYTECODE') {
|
|
26
26
|
continue;
|
|
27
27
|
}
|
|
28
28
|
frames.push({
|
|
@@ -48,7 +48,7 @@ function parseErrorStack(errorStack?: string): Array<StackFrame> {
|
|
|
48
48
|
? errorStack
|
|
49
49
|
: global.HermesInternal
|
|
50
50
|
? convertHermesStack(parseHermesStack(errorStack))
|
|
51
|
-
: stacktraceParser.parse(errorStack).map(frame => ({
|
|
51
|
+
: stacktraceParser.parse(errorStack).map((frame): StackFrame => ({
|
|
52
52
|
...frame,
|
|
53
53
|
column: frame.column != null ? frame.column - 1 : null,
|
|
54
54
|
}));
|
|
@@ -10,46 +10,54 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
type HermesStackLocationNative = {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
type HermesStackLocationNative = $ReadOnly<{
|
|
14
|
+
type: 'NATIVE',
|
|
15
|
+
}>;
|
|
16
16
|
|
|
17
|
-
type HermesStackLocationSource = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
type HermesStackLocationSource = $ReadOnly<{
|
|
18
|
+
type: 'SOURCE',
|
|
19
|
+
sourceUrl: string,
|
|
20
|
+
line1Based: number,
|
|
21
|
+
column1Based: number,
|
|
22
|
+
}>;
|
|
23
23
|
|
|
24
|
-
type
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
type HermesStackLocationInternalBytecode = $ReadOnly<{
|
|
25
|
+
type: 'INTERNAL_BYTECODE',
|
|
26
|
+
sourceUrl: string,
|
|
27
|
+
line1Based: number,
|
|
28
|
+
virtualOffset0Based: number,
|
|
29
|
+
}>;
|
|
30
|
+
|
|
31
|
+
type HermesStackLocationBytecode = $ReadOnly<{
|
|
32
|
+
type: 'BYTECODE',
|
|
33
|
+
sourceUrl: string,
|
|
34
|
+
line1Based: number,
|
|
35
|
+
virtualOffset0Based: number,
|
|
36
|
+
}>;
|
|
30
37
|
|
|
31
38
|
type HermesStackLocation =
|
|
32
39
|
| HermesStackLocationNative
|
|
33
40
|
| HermesStackLocationSource
|
|
41
|
+
| HermesStackLocationInternalBytecode
|
|
34
42
|
| HermesStackLocationBytecode;
|
|
35
43
|
|
|
36
|
-
type HermesStackEntryFrame = {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
44
|
+
type HermesStackEntryFrame = $ReadOnly<{
|
|
45
|
+
type: 'FRAME',
|
|
46
|
+
location: HermesStackLocation,
|
|
47
|
+
functionName: string,
|
|
48
|
+
}>;
|
|
41
49
|
|
|
42
|
-
type HermesStackEntrySkipped = {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
type HermesStackEntrySkipped = $ReadOnly<{
|
|
51
|
+
type: 'SKIPPED',
|
|
52
|
+
count: number,
|
|
53
|
+
}>;
|
|
46
54
|
|
|
47
55
|
type HermesStackEntry = HermesStackEntryFrame | HermesStackEntrySkipped;
|
|
48
56
|
|
|
49
|
-
export type HermesParsedStack = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
export type HermesParsedStack = $ReadOnly<{
|
|
58
|
+
message: string,
|
|
59
|
+
entries: $ReadOnlyArray<HermesStackEntry>,
|
|
60
|
+
}>;
|
|
53
61
|
|
|
54
62
|
// Capturing groups:
|
|
55
63
|
// 1. function name
|
|
@@ -65,6 +73,11 @@ const RE_FRAME =
|
|
|
65
73
|
// 1. count of skipped frames
|
|
66
74
|
const RE_SKIPPED = /^ {4}... skipping (\d+) frames$/;
|
|
67
75
|
|
|
76
|
+
function isInternalBytecodeSourceUrl(sourceUrl: string): boolean {
|
|
77
|
+
// See https://github.com/facebook/hermes/blob/3332fa020cae0bab751f648db7c94e1d687eeec7/lib/VM/Runtime.cpp#L1100
|
|
78
|
+
return sourceUrl === 'InternalBytecode.js';
|
|
79
|
+
}
|
|
80
|
+
|
|
68
81
|
function parseLine(line: string): ?HermesStackEntry {
|
|
69
82
|
const asFrame = line.match(RE_FRAME);
|
|
70
83
|
if (asFrame) {
|
|
@@ -75,12 +88,19 @@ function parseLine(line: string): ?HermesStackEntry {
|
|
|
75
88
|
asFrame[2] === 'native'
|
|
76
89
|
? {type: 'NATIVE'}
|
|
77
90
|
: asFrame[3] === 'address at '
|
|
78
|
-
?
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
? isInternalBytecodeSourceUrl(asFrame[4])
|
|
92
|
+
? {
|
|
93
|
+
type: 'INTERNAL_BYTECODE',
|
|
94
|
+
sourceUrl: asFrame[4],
|
|
95
|
+
line1Based: Number.parseInt(asFrame[5], 10),
|
|
96
|
+
virtualOffset0Based: Number.parseInt(asFrame[6], 10),
|
|
97
|
+
}
|
|
98
|
+
: {
|
|
99
|
+
type: 'BYTECODE',
|
|
100
|
+
sourceUrl: asFrame[4],
|
|
101
|
+
line1Based: Number.parseInt(asFrame[5], 10),
|
|
102
|
+
virtualOffset0Based: Number.parseInt(asFrame[6], 10),
|
|
103
|
+
}
|
|
84
104
|
: {
|
|
85
105
|
type: 'SOURCE',
|
|
86
106
|
sourceUrl: asFrame[4],
|
|
@@ -103,7 +103,7 @@ function reportException(
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
if (__DEV__) {
|
|
106
|
-
const LogBox = require('../LogBox/LogBox');
|
|
106
|
+
const LogBox = require('../LogBox/LogBox').default;
|
|
107
107
|
LogBox.addException({
|
|
108
108
|
...data,
|
|
109
109
|
isComponentError: !!e.isComponentError,
|
|
@@ -184,7 +184,7 @@ function reactConsoleErrorHandler(...args) {
|
|
|
184
184
|
// Throwing an uncaught exception:
|
|
185
185
|
// 1. exception thrown
|
|
186
186
|
// 2. picked up by handleException
|
|
187
|
-
// 3. should be
|
|
187
|
+
// 3. should be sent to console.error (not console._errorOriginal, as DevTools might have patched _later_ and it needs to send it to Metro)
|
|
188
188
|
// 4. that _might_ bubble again to the `reactConsoleErrorHandle` defined here
|
|
189
189
|
// -> should not handle exception _again_, to avoid looping / showing twice (this code branch)
|
|
190
190
|
// 5. should still bubble up to original console (which might either be console.log, or the DevTools handler in case that one patched _earlier_)
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
const start = Date.now();
|
|
28
28
|
|
|
29
29
|
require('./setUpGlobals');
|
|
30
|
+
require('./setUpDOM');
|
|
30
31
|
require('./setUpPerformance');
|
|
31
32
|
require('./setUpErrorHandling');
|
|
32
33
|
require('./polyfillPromise');
|
|
@@ -40,7 +41,7 @@ require('./setUpSegmentFetcher');
|
|
|
40
41
|
if (__DEV__) {
|
|
41
42
|
require('./checkNativeVersion');
|
|
42
43
|
require('./setUpDeveloperTools');
|
|
43
|
-
require('../LogBox/LogBox').install();
|
|
44
|
+
require('../LogBox/LogBox').default.install();
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
require('../ReactNative/AppRegistry');
|
|
@@ -39,16 +39,12 @@ exports.checkVersions = function checkVersions(): void {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
+
// Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
|
|
43
|
+
// Then we need to keep supporting that object shape.
|
|
42
44
|
function _formatVersion(
|
|
43
45
|
version:
|
|
44
|
-
|
|
|
45
|
-
| {major: number, minor: number, patch: number, prerelease: ?string}
|
|
46
|
-
| $TEMPORARY$object<{
|
|
47
|
-
major: number,
|
|
48
|
-
minor: number,
|
|
49
|
-
patch: number,
|
|
50
|
-
prerelease: null,
|
|
51
|
-
}>,
|
|
46
|
+
| (typeof Platform)['constants']['reactNativeVersion']
|
|
47
|
+
| {major: number, minor: number, patch: number, prerelease: ?string},
|
|
52
48
|
): string {
|
|
53
49
|
return (
|
|
54
50
|
`${version.major}.${version.minor}.${version.patch}` +
|
|
@@ -41,16 +41,12 @@ exports.checkVersions = function checkVersions(): void {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
+
// Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
|
|
45
|
+
// Then we need to keep supporting that object shape.
|
|
44
46
|
function _formatVersion(
|
|
45
47
|
version:
|
|
46
|
-
|
|
|
47
|
-
| {major: number, minor: number, patch: number, prerelease: ?string}
|
|
48
|
-
| $TEMPORARY$object<{
|
|
49
|
-
major: number,
|
|
50
|
-
minor: number,
|
|
51
|
-
patch: number,
|
|
52
|
-
prerelease: null,
|
|
53
|
-
}>,
|
|
48
|
+
| (typeof Platform)['constants']['reactNativeVersion']
|
|
49
|
+
| {major: number, minor: number, patch: number, prerelease: ?string},
|
|
54
50
|
): string {
|
|
55
51
|
return (
|
|
56
52
|
`${version.major}.${version.minor}.${version.patch}` +
|