@office-iss/react-native-win32 0.84.0 → 0.85.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/.flowconfig +1 -5
- package/CHANGELOG.json +67 -22
- package/CHANGELOG.md +14 -17
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
- package/Libraries/Animated/Animated.d.ts +8 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -4
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/animations/Animation.js +3 -3
- package/Libraries/Animated/animations/DecayAnimation.js +4 -4
- package/Libraries/Animated/animations/SpringAnimation.js +5 -5
- package/Libraries/Animated/animations/TimingAnimation.js +5 -5
- package/Libraries/Animated/createAnimatedComponent.js +7 -7
- package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
- package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
- package/Libraries/Animated/useAnimatedColor.js +25 -0
- package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
- package/Libraries/Animated/useAnimatedValueXY.js +26 -0
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +3 -3
- package/Libraries/BatchedBridge/NativeModules.js +12 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +34 -30
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
- package/Libraries/Components/Button.js +2 -2
- package/Libraries/Components/Button.win32.js +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
- package/Libraries/Components/EnterString.win32.js +2 -2
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +6 -6
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
- package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
- package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
- package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
- package/Libraries/Components/ScrollView/ScrollView.js +19 -9
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +8 -8
- package/Libraries/Components/Switch/Switch.js +3 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
- package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +23 -22
- package/Libraries/Components/TextInput/TextInput.js +8 -4
- package/Libraries/Components/TextInput/TextInput.win32.js +3 -4
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
- package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +7 -7
- package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
- package/Libraries/Components/Touchable/TouchableWin32.js +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
- package/Libraries/Components/View/ViewAccessibility.js +7 -7
- package/Libraries/Components/View/ViewAccessibility.win32.js +7 -7
- package/Libraries/Components/View/ViewPropTypes.js +14 -14
- package/Libraries/Components/View/ViewPropTypes.win32.js +16 -16
- package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ExtendedError.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/Timers/JSTimers.js +3 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +4 -2
- package/Libraries/Core/setUpReactDevTools.js +23 -6
- package/Libraries/Core/setUpSegmentFetcher.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +2 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +1 -1
- package/Libraries/Image/Image.android.js +172 -306
- package/Libraries/Image/ImageProps.js +9 -11
- package/Libraries/Image/ImageSource.js +2 -2
- package/Libraries/Image/ImageSourceUtils.js +8 -4
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/ImageViewNativeComponent.js +7 -16
- package/Libraries/Image/nativeImageSource.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +5 -4
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +3 -3
- package/Libraries/Lists/SectionList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +38 -24
- package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
- package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
- package/Libraries/LogBox/LogBox.js +42 -19
- package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
- package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +6 -9
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +15 -16
- package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +11 -13
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +3 -5
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
- package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
- package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
- package/Libraries/Modal/Modal.js +3 -3
- package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +16 -16
- package/Libraries/Network/RCTNetworking.android.js +1 -1
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.win32.js +1 -1
- package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/Pressability/Pressability.js +5 -5
- package/Libraries/Pressability/Pressability.win32.js +5 -5
- package/Libraries/Pressability/PressabilityDebug.js +1 -1
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/Pressability/usePressability.js +3 -14
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
- package/Libraries/ReactNative/AppContainer-dev.js +18 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +4 -4
- package/Libraries/ReactNative/UIManagerProperties.js +1 -1
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
- package/Libraries/Renderer/shims/ReactFabric.js +1 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
- package/Libraries/Renderer/shims/ReactNative.js +3 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +1 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
- package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
- package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
- package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
- package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
- package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
- package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
- package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
- package/Libraries/StyleSheet/processBoxShadow.js +44 -4
- package/Libraries/StyleSheet/processColorArray.js +2 -2
- package/Libraries/StyleSheet/processFilter.js +2 -2
- package/Libraries/Text/Text.js +295 -627
- package/Libraries/Text/Text.win32.js +360 -744
- package/Libraries/Text/TextNativeComponent.js +14 -7
- package/Libraries/Text/TextNativeComponent.win32.js +14 -7
- package/Libraries/Text/TextProps.js +4 -4
- package/Libraries/Text/TextProps.win32.js +4 -4
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +21 -21
- package/Libraries/Types/CoreEventTypes.win32.js +22 -21
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +32 -5
- package/Libraries/Utilities/IPerformanceLogger.js +4 -4
- package/Libraries/Utilities/codegenNativeCommands.js +4 -4
- package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
- package/Libraries/Utilities/codegenNativeComponent.js +2 -2
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +3 -3
- package/Libraries/Utilities/useMergeRefs.js +2 -2
- package/Libraries/vendor/core/ErrorUtils.js +4 -4
- package/Libraries/vendor/emitter/EventEmitter.js +16 -20
- package/flow/bom.js.flow +18 -17
- package/flow/dom.js.flow +12 -5
- package/flow/global.js +1 -1
- package/index.js +9 -0
- package/index.win32.js +9 -0
- package/index.win32.js.flow +8 -1
- package/jest/RefreshControlMock.js +2 -2
- package/jest/assetFileTransformer.js +8 -3
- package/jest/mockComponent.js +3 -4
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mocks/ActivityIndicator.js +2 -2
- package/jest/mocks/Image.js +2 -2
- package/jest/mocks/Modal.js +2 -2
- package/jest/mocks/RefreshControl.js +3 -3
- package/jest/mocks/RendererProxy.js +2 -2
- package/jest/mocks/ScrollView.js +5 -5
- package/jest/mocks/Text.js +2 -2
- package/jest/mocks/TextInput.js +2 -2
- package/jest/mocks/View.js +2 -2
- package/jest/mocks/ViewNativeComponent.js +1 -1
- package/jest/mocks/requireNativeComponent.js +1 -1
- package/jest/mocks/useColorScheme.js +1 -1
- package/jest/setup.js +68 -31
- package/overrides.json +30 -36
- package/package.json +22 -19
- package/src/private/animated/NativeAnimatedHelper.js +2 -2
- package/src/private/animated/NativeAnimatedHelper.win32.js +2 -2
- package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
- package/src/private/components/virtualview/VirtualView.js +14 -21
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
- package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
- package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +3 -3
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
- package/src/private/styles/composeStyles.js +1 -1
- package/src/private/utilities/toError.js +27 -0
- package/src/private/utilities/toExtendedError.js +30 -0
- package/src/private/webapis/dom/events/Event.js +1 -1
- package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
- package/src/private/webapis/dom/events/EventTarget.js +3 -3
- package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/geometry/DOMRectList.js +2 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
- package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
- package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
- package/src/private/webapis/performance/LongTasks.js +3 -3
- package/src/private/webapis/performance/Performance.js +4 -4
- package/src/private/webapis/performance/PerformanceEntry.js +1 -1
- package/src/private/webapis/performance/PerformanceObserver.js +2 -2
- package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
- package/src/private/webapis/structuredClone/structuredClone.js +2 -2
- package/src/types/globals.d.ts +4 -4
- package/src-win/Libraries/Components/EnterString.win32.tsx +2 -2
- package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +14 -14
- package/src-win/index.win32.js.flow +8 -1
- package/types/index.d.ts +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
- package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +0 -94
- package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
|
@@ -24,32 +24,32 @@ type CompositeKey = {
|
|
|
24
24
|
[string]:
|
|
25
25
|
| CompositeKeyComponent
|
|
26
26
|
| AnimatedEvent
|
|
27
|
-
|
|
|
28
|
-
|
|
|
27
|
+
| ReadonlyArray<unknown>
|
|
28
|
+
| Readonly<{[string]: unknown}>,
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
type CompositeKeyComponent =
|
|
32
32
|
| AnimatedNode
|
|
33
|
-
|
|
|
34
|
-
|
|
|
33
|
+
| ReadonlyArray<CompositeKeyComponent | null>
|
|
34
|
+
| Readonly<{[string]: CompositeKeyComponent}>;
|
|
35
35
|
|
|
36
|
-
type $ReadOnlyCompositeKey =
|
|
37
|
-
style?:
|
|
36
|
+
type $ReadOnlyCompositeKey = Readonly<{
|
|
37
|
+
style?: Readonly<{[string]: CompositeKeyComponent}>,
|
|
38
38
|
[string]:
|
|
39
39
|
| $ReadOnlyCompositeKeyComponent
|
|
40
40
|
| AnimatedEvent
|
|
41
|
-
|
|
|
42
|
-
|
|
|
41
|
+
| ReadonlyArray<unknown>
|
|
42
|
+
| Readonly<{[string]: unknown}>,
|
|
43
43
|
}>;
|
|
44
44
|
|
|
45
45
|
type $ReadOnlyCompositeKeyComponent =
|
|
46
46
|
| AnimatedNode
|
|
47
|
-
|
|
|
48
|
-
|
|
|
47
|
+
| ReadonlyArray<$ReadOnlyCompositeKeyComponent | null>
|
|
48
|
+
| Readonly<{[string]: $ReadOnlyCompositeKeyComponent}>;
|
|
49
49
|
|
|
50
50
|
type AnimatedPropsMemoHook = (
|
|
51
51
|
() => AnimatedProps,
|
|
52
|
-
props:
|
|
52
|
+
props: Readonly<{[string]: unknown}>,
|
|
53
53
|
) => AnimatedProps;
|
|
54
54
|
|
|
55
55
|
/**
|
|
@@ -62,14 +62,14 @@ export function createAnimatedPropsMemoHook(
|
|
|
62
62
|
): AnimatedPropsMemoHook {
|
|
63
63
|
return function useAnimatedPropsMemo(
|
|
64
64
|
create: () => AnimatedProps,
|
|
65
|
-
props:
|
|
65
|
+
props: Readonly<{[string]: unknown}>,
|
|
66
66
|
): AnimatedProps {
|
|
67
67
|
const compositeKey = useMemo(
|
|
68
68
|
() => createCompositeKeyForProps(props, allowlist),
|
|
69
69
|
[props],
|
|
70
70
|
);
|
|
71
71
|
|
|
72
|
-
const prevRef = useRef
|
|
72
|
+
const prevRef = useRef<?Readonly<{
|
|
73
73
|
compositeKey: typeof compositeKey,
|
|
74
74
|
node: AnimatedProps,
|
|
75
75
|
}>>();
|
|
@@ -107,7 +107,7 @@ export function createAnimatedPropsMemoHook(
|
|
|
107
107
|
* returns null.
|
|
108
108
|
*/
|
|
109
109
|
export function createCompositeKeyForProps(
|
|
110
|
-
props:
|
|
110
|
+
props: Readonly<{[string]: unknown}>,
|
|
111
111
|
allowlist: ?AnimatedPropsAllowlist,
|
|
112
112
|
): $ReadOnlyCompositeKey | null {
|
|
113
113
|
let compositeKey: CompositeKey | null = null;
|
|
@@ -160,8 +160,8 @@ export function createCompositeKeyForProps(
|
|
|
160
160
|
* If `array` contains no `AnimatedNode` instances, this returns null.
|
|
161
161
|
*/
|
|
162
162
|
function createCompositeKeyForArray(
|
|
163
|
-
array:
|
|
164
|
-
):
|
|
163
|
+
array: ReadonlyArray<unknown>,
|
|
164
|
+
): ReadonlyArray<$ReadOnlyCompositeKeyComponent | null> | null {
|
|
165
165
|
let compositeKey: Array<$ReadOnlyCompositeKeyComponent | null> | null = null;
|
|
166
166
|
|
|
167
167
|
for (let ii = 0, length = array.length; ii < length; ii++) {
|
|
@@ -200,9 +200,9 @@ function createCompositeKeyForArray(
|
|
|
200
200
|
* If `object` contains no `AnimatedNode` instances, this returns null.
|
|
201
201
|
*/
|
|
202
202
|
function createCompositeKeyForObject(
|
|
203
|
-
object:
|
|
203
|
+
object: Readonly<{[string]: unknown}>,
|
|
204
204
|
allowlist?: ?AnimatedStyleAllowlist,
|
|
205
|
-
):
|
|
205
|
+
): Readonly<{[string]: $ReadOnlyCompositeKeyComponent}> | null {
|
|
206
206
|
let compositeKey: {[string]: $ReadOnlyCompositeKeyComponent} | null = null;
|
|
207
207
|
|
|
208
208
|
const keys = Object.keys(object);
|
|
@@ -355,6 +355,6 @@ function areCompositeKeyComponentsEqual(
|
|
|
355
355
|
// this shim when they do.
|
|
356
356
|
// $FlowFixMe[method-unbinding]
|
|
357
357
|
const _hasOwnProp = Object.prototype.hasOwnProperty;
|
|
358
|
-
const hasOwn: (obj:
|
|
358
|
+
const hasOwn: (obj: Readonly<{...}>, prop: string) => boolean =
|
|
359
359
|
// $FlowFixMe[method-unbinding]
|
|
360
360
|
Object.hasOwn ?? ((obj, prop) => _hasOwnProp.call(obj, prop));
|
|
@@ -13,15 +13,14 @@ import type {NativeSyntheticEvent} from '../../../../Libraries/Types/CoreEventTy
|
|
|
13
13
|
import type {HostInstance} from '../../types/HostInstance';
|
|
14
14
|
import type {NativeModeChangeEvent} from './VirtualViewNativeComponent';
|
|
15
15
|
|
|
16
|
+
import UIManager from '../../../../Libraries/ReactNative/UIManager';
|
|
16
17
|
import StyleSheet from '../../../../Libraries/StyleSheet/StyleSheet';
|
|
17
|
-
import * as ReactNativeFeatureFlags from '../../featureflags/ReactNativeFeatureFlags';
|
|
18
18
|
import {useVirtualViewLogging} from './logger/VirtualViewLogger';
|
|
19
19
|
import VirtualViewExperimentalNativeComponent from './VirtualViewExperimentalNativeComponent';
|
|
20
|
-
import
|
|
20
|
+
import VirtualViewProperNativeComponent from './VirtualViewNativeComponent';
|
|
21
21
|
import nullthrows from 'nullthrows';
|
|
22
22
|
import * as React from 'react';
|
|
23
|
-
|
|
24
|
-
import {startTransition, unstable_Activity as Activity, useState} from 'react';
|
|
23
|
+
import {startTransition, useState} from 'react';
|
|
25
24
|
|
|
26
25
|
// @see VirtualViewNativeComponent
|
|
27
26
|
export enum VirtualViewMode {
|
|
@@ -37,24 +36,28 @@ export enum VirtualViewRenderState {
|
|
|
37
36
|
None = 2,
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
export type Rect =
|
|
39
|
+
export type Rect = Readonly<{
|
|
41
40
|
x: number,
|
|
42
41
|
y: number,
|
|
43
42
|
width: number,
|
|
44
43
|
height: number,
|
|
45
44
|
}>;
|
|
46
45
|
|
|
47
|
-
export type ModeChangeEvent =
|
|
46
|
+
export type ModeChangeEvent = Readonly<{
|
|
48
47
|
...Omit<NativeModeChangeEvent, 'mode'>,
|
|
49
48
|
renderState: VirtualViewRenderState,
|
|
50
49
|
mode: VirtualViewMode,
|
|
51
50
|
target: HostInstance,
|
|
52
51
|
}>;
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
// If `VirtualView` exists and `VirtualViewExperimental` does not, that means
|
|
54
|
+
// the new version was renamed to `VirtualView`. Eventually, this can be deleted
|
|
55
|
+
// with a single remaining import of `VirtualViewNativeComponent`.
|
|
56
|
+
const VirtualViewNativeComponent: typeof VirtualViewExperimentalNativeComponent =
|
|
57
|
+
UIManager.hasViewManagerConfig('VirtualView') &&
|
|
58
|
+
!UIManager.hasViewManagerConfig('VirtualViewExperimental')
|
|
59
|
+
? VirtualViewProperNativeComponent
|
|
60
|
+
: VirtualViewExperimentalNativeComponent;
|
|
58
61
|
|
|
59
62
|
type VirtualViewComponent = component(
|
|
60
63
|
children?: React.Node,
|
|
@@ -150,17 +153,7 @@ function createVirtualView(initialState: State): VirtualViewComponent {
|
|
|
150
153
|
: style
|
|
151
154
|
}
|
|
152
155
|
onModeChange={handleModeChange}>
|
|
153
|
-
{
|
|
154
|
-
match (ReactNativeFeatureFlags.virtualViewActivityBehavior()) {
|
|
155
|
-
'activity-without-mode' =>
|
|
156
|
-
<Activity>{isHidden ? null : children}</Activity>,
|
|
157
|
-
'activity-with-hidden-mode' =>
|
|
158
|
-
<Activity mode={isHidden ? 'hidden' : 'visible'}>
|
|
159
|
-
{children}
|
|
160
|
-
</Activity>,
|
|
161
|
-
'no-activity' | _ => isHidden ? null : children,
|
|
162
|
-
}
|
|
163
|
-
}
|
|
156
|
+
{isHidden ? null : children}
|
|
164
157
|
</VirtualViewNativeComponent>
|
|
165
158
|
);
|
|
166
159
|
}
|
|
@@ -18,7 +18,7 @@ import type {HostComponent} from '../../types/HostComponent';
|
|
|
18
18
|
|
|
19
19
|
import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
|
|
20
20
|
|
|
21
|
-
export type NativeModeChangeEvent =
|
|
21
|
+
export type NativeModeChangeEvent = Readonly<{
|
|
22
22
|
/**
|
|
23
23
|
* Virtualization mode of the target view.
|
|
24
24
|
*
|
|
@@ -34,7 +34,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
34
34
|
/**
|
|
35
35
|
* Rect of the target view, relative to the nearest ancestor scroll container.
|
|
36
36
|
*/
|
|
37
|
-
targetRect:
|
|
37
|
+
targetRect: Readonly<{
|
|
38
38
|
x: Double,
|
|
39
39
|
y: Double,
|
|
40
40
|
width: Double,
|
|
@@ -51,7 +51,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
51
51
|
*
|
|
52
52
|
* This can be used to determine whether and how much new content to render.
|
|
53
53
|
*/
|
|
54
|
-
thresholdRect:
|
|
54
|
+
thresholdRect: Readonly<{
|
|
55
55
|
x: Double,
|
|
56
56
|
y: Double,
|
|
57
57
|
width: Double,
|
|
@@ -59,7 +59,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
59
59
|
}>,
|
|
60
60
|
}>;
|
|
61
61
|
|
|
62
|
-
type VirtualViewExperimentalNativeProps =
|
|
62
|
+
type VirtualViewExperimentalNativeProps = Readonly<{
|
|
63
63
|
...ViewProps,
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -67,6 +67,12 @@ type VirtualViewExperimentalNativeProps = $ReadOnly<{
|
|
|
67
67
|
*/
|
|
68
68
|
initialHidden?: boolean,
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* This was needed to get VirtualViewManagerDelegate to set this property.
|
|
72
|
+
* TODO: Investigate why spread ViewProps doesn't call setter
|
|
73
|
+
*/
|
|
74
|
+
removeClippedSubviews?: boolean,
|
|
75
|
+
|
|
70
76
|
/**
|
|
71
77
|
* Render state of children.
|
|
72
78
|
*
|
|
@@ -79,18 +85,13 @@ type VirtualViewExperimentalNativeProps = $ReadOnly<{
|
|
|
79
85
|
*/
|
|
80
86
|
renderState: Int32,
|
|
81
87
|
|
|
82
|
-
/**
|
|
83
|
-
* This was needed to get VirtualViewManagerDelegate to set this property.
|
|
84
|
-
* TODO: Investigate why spread ViewProps doesn't call setter
|
|
85
|
-
*/
|
|
86
|
-
removeClippedSubviews?: boolean,
|
|
87
|
-
|
|
88
88
|
/**
|
|
89
89
|
* See `NativeModeChangeEvent`.
|
|
90
90
|
*/
|
|
91
91
|
onModeChange?: ?DirectEventHandler<NativeModeChangeEvent>,
|
|
92
92
|
}>;
|
|
93
93
|
|
|
94
|
+
// TODO: Rename to eliminate "Experimental" suffix in the name.
|
|
94
95
|
export default codegenNativeComponent<VirtualViewExperimentalNativeProps>(
|
|
95
96
|
'VirtualViewExperimental',
|
|
96
97
|
{
|
|
@@ -18,7 +18,7 @@ import type {HostComponent} from '../../types/HostComponent';
|
|
|
18
18
|
|
|
19
19
|
import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent';
|
|
20
20
|
|
|
21
|
-
export type NativeModeChangeEvent =
|
|
21
|
+
export type NativeModeChangeEvent = Readonly<{
|
|
22
22
|
/**
|
|
23
23
|
* Virtualization mode of the target view.
|
|
24
24
|
*
|
|
@@ -34,7 +34,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
34
34
|
/**
|
|
35
35
|
* Rect of the target view, relative to the nearest ancestor scroll container.
|
|
36
36
|
*/
|
|
37
|
-
targetRect:
|
|
37
|
+
targetRect: Readonly<{
|
|
38
38
|
x: Double,
|
|
39
39
|
y: Double,
|
|
40
40
|
width: Double,
|
|
@@ -51,7 +51,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
51
51
|
*
|
|
52
52
|
* This can be used to determine whether and how much new content to render.
|
|
53
53
|
*/
|
|
54
|
-
thresholdRect:
|
|
54
|
+
thresholdRect: Readonly<{
|
|
55
55
|
x: Double,
|
|
56
56
|
y: Double,
|
|
57
57
|
width: Double,
|
|
@@ -59,7 +59,7 @@ export type NativeModeChangeEvent = $ReadOnly<{
|
|
|
59
59
|
}>,
|
|
60
60
|
}>;
|
|
61
61
|
|
|
62
|
-
type VirtualViewNativeProps =
|
|
62
|
+
type VirtualViewNativeProps = Readonly<{
|
|
63
63
|
...ViewProps,
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -16,9 +16,9 @@ import * as React from 'react';
|
|
|
16
16
|
|
|
17
17
|
const View = require('../../../../../Libraries/Components/View/View').default;
|
|
18
18
|
|
|
19
|
-
type Props =
|
|
19
|
+
type Props = Readonly<{
|
|
20
20
|
children: React.Node,
|
|
21
|
-
box?:
|
|
21
|
+
box?: ?Readonly<{
|
|
22
22
|
top: number,
|
|
23
23
|
right: number,
|
|
24
24
|
bottom: number,
|
|
@@ -31,7 +31,7 @@ const blank = {
|
|
|
31
31
|
bottom: 0,
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
type BoxInspectorProps =
|
|
34
|
+
type BoxInspectorProps = Readonly<{
|
|
35
35
|
style: ViewStyleProp,
|
|
36
36
|
frame: ?InspectedElementFrame,
|
|
37
37
|
}>;
|
|
@@ -57,10 +57,10 @@ function BoxInspector({style, frame}: BoxInspectorProps): React.Node {
|
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
type BoxContainerProps =
|
|
60
|
+
type BoxContainerProps = Readonly<{
|
|
61
61
|
title: string,
|
|
62
62
|
titleStyle?: TextStyleProp,
|
|
63
|
-
box:
|
|
63
|
+
box: Readonly<{
|
|
64
64
|
top: number,
|
|
65
65
|
left: number,
|
|
66
66
|
right: number,
|
|
@@ -25,15 +25,15 @@ const Dimensions =
|
|
|
25
25
|
const BorderBox = require('./BorderBox').default;
|
|
26
26
|
const resolveBoxStyle = require('./resolveBoxStyle').default;
|
|
27
27
|
|
|
28
|
-
type Props =
|
|
28
|
+
type Props = Readonly<{
|
|
29
29
|
frame: InspectedElementFrame,
|
|
30
30
|
style?: ?ViewStyleProp,
|
|
31
31
|
}>;
|
|
32
32
|
|
|
33
33
|
function ElementBox({frame, style}: Props): React.Node {
|
|
34
34
|
const flattenedStyle = flattenStyle(style) || {};
|
|
35
|
-
let margin:
|
|
36
|
-
let padding:
|
|
35
|
+
let margin: ?Readonly<Style> = resolveBoxStyle('margin', flattenedStyle);
|
|
36
|
+
let padding: ?Readonly<Style> = resolveBoxStyle('padding', flattenedStyle);
|
|
37
37
|
|
|
38
38
|
const frameStyle = {...frame};
|
|
39
39
|
const contentStyle: {width: number, height: number} = {
|
|
@@ -110,7 +110,7 @@ type Style = {
|
|
|
110
110
|
* @param style the style to resolve
|
|
111
111
|
* @return a modified copy
|
|
112
112
|
*/
|
|
113
|
-
function resolveRelativeSizes(style:
|
|
113
|
+
function resolveRelativeSizes(style: Readonly<Style>): Style {
|
|
114
114
|
let resolvedStyle = {...style};
|
|
115
115
|
resolveSizeInPlace(resolvedStyle, 'top', 'height');
|
|
116
116
|
resolveSizeInPlace(resolvedStyle, 'right', 'width');
|
|
@@ -30,7 +30,7 @@ const mapWithSeparator =
|
|
|
30
30
|
const BoxInspector = require('./BoxInspector').default;
|
|
31
31
|
const StyleInspector = require('./StyleInspector').default;
|
|
32
32
|
|
|
33
|
-
type Props =
|
|
33
|
+
type Props = Readonly<{
|
|
34
34
|
hierarchy: ?InspectorData['hierarchy'],
|
|
35
35
|
style?: ?ViewStyleProp,
|
|
36
36
|
frame?: ?Object,
|
|
@@ -41,24 +41,35 @@ const {useState} = React;
|
|
|
41
41
|
type PanelPosition = 'top' | 'bottom';
|
|
42
42
|
|
|
43
43
|
export type InspectedElementFrame = TouchedViewDataAtPoint['frame'];
|
|
44
|
-
export type InspectedElement =
|
|
44
|
+
export type InspectedElement = Readonly<{
|
|
45
45
|
frame: InspectedElementFrame,
|
|
46
46
|
style?: ViewStyleProp,
|
|
47
47
|
}>;
|
|
48
48
|
export type ElementsHierarchy = InspectorData['hierarchy'];
|
|
49
49
|
|
|
50
|
+
type ExternalInspection = {
|
|
51
|
+
externalInspectingEnabled: boolean,
|
|
52
|
+
+reportToExternalInspection: (viewData: TouchedViewDataAtPoint) => void,
|
|
53
|
+
};
|
|
54
|
+
|
|
50
55
|
type Props = {
|
|
51
56
|
inspectedViewRef: InspectedViewRef,
|
|
52
57
|
onRequestRerenderApp: () => void,
|
|
53
58
|
reactDevToolsAgent?: ReactDevToolsAgent,
|
|
59
|
+
devMenuInspectorOpen: boolean,
|
|
60
|
+
externalInspection: ExternalInspection,
|
|
54
61
|
};
|
|
55
62
|
|
|
56
63
|
function Inspector({
|
|
57
64
|
inspectedViewRef,
|
|
58
65
|
onRequestRerenderApp,
|
|
59
66
|
reactDevToolsAgent,
|
|
67
|
+
devMenuInspectorOpen,
|
|
68
|
+
externalInspection,
|
|
60
69
|
}: Props): React.Node {
|
|
61
|
-
const [
|
|
70
|
+
const [inspectingEnabled, setInspectingEnabled] = useState<boolean>(true);
|
|
71
|
+
const {externalInspectingEnabled, reportToExternalInspection} =
|
|
72
|
+
externalInspection;
|
|
62
73
|
|
|
63
74
|
const [panelPosition, setPanelPosition] = useState<PanelPosition>('bottom');
|
|
64
75
|
const [inspectedElement, setInspectedElement] =
|
|
@@ -67,6 +78,9 @@ function Inspector({
|
|
|
67
78
|
const [elementsHierarchy, setElementsHierarchy] =
|
|
68
79
|
useState<?ElementsHierarchy>(null);
|
|
69
80
|
|
|
81
|
+
// Derive inspecting state: external inspection forces it on, otherwise use local state
|
|
82
|
+
const isInspecting = externalInspectingEnabled || inspectingEnabled;
|
|
83
|
+
|
|
70
84
|
const setSelection = (i: number) => {
|
|
71
85
|
const hierarchyItem = elementsHierarchy?.[i];
|
|
72
86
|
if (hierarchyItem == null) {
|
|
@@ -99,6 +113,11 @@ function Inspector({
|
|
|
99
113
|
closestInstance,
|
|
100
114
|
} = viewData;
|
|
101
115
|
|
|
116
|
+
// Report to external inspection if in external inspection mode
|
|
117
|
+
if (externalInspectingEnabled) {
|
|
118
|
+
reportToExternalInspection(viewData);
|
|
119
|
+
}
|
|
120
|
+
|
|
102
121
|
// Sync the touched view with React DevTools.
|
|
103
122
|
// Note: This is Paper only. To support Fabric,
|
|
104
123
|
// DevTools needs to be updated to not rely on view tags.
|
|
@@ -133,7 +152,7 @@ function Inspector({
|
|
|
133
152
|
};
|
|
134
153
|
|
|
135
154
|
const handleSetInspecting = (enabled: boolean) => {
|
|
136
|
-
|
|
155
|
+
setInspectingEnabled(enabled);
|
|
137
156
|
setInspectedElement(null);
|
|
138
157
|
};
|
|
139
158
|
|
|
@@ -149,26 +168,29 @@ function Inspector({
|
|
|
149
168
|
|
|
150
169
|
return (
|
|
151
170
|
<View style={styles.container} pointerEvents="box-none">
|
|
152
|
-
{
|
|
171
|
+
{isInspecting && (
|
|
153
172
|
<InspectorOverlay
|
|
154
173
|
inspected={inspectedElement}
|
|
155
174
|
onTouchPoint={onTouchPoint}
|
|
175
|
+
externalInspectionActive={externalInspectingEnabled}
|
|
156
176
|
/>
|
|
157
177
|
)}
|
|
158
178
|
|
|
159
|
-
|
|
160
|
-
<
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
179
|
+
{!externalInspectingEnabled && (
|
|
180
|
+
<SafeAreaView style={[styles.panelContainer, panelContainerStyle]}>
|
|
181
|
+
<InspectorPanel
|
|
182
|
+
devtoolsIsOpen={!!reactDevToolsAgent}
|
|
183
|
+
inspecting={inspectingEnabled}
|
|
184
|
+
setInspecting={handleSetInspecting}
|
|
185
|
+
inspected={inspectedElement}
|
|
186
|
+
hierarchy={elementsHierarchy}
|
|
187
|
+
selection={selectionIndex}
|
|
188
|
+
setSelection={setSelection}
|
|
189
|
+
touchTargeting={PressabilityDebug.isEnabled()}
|
|
190
|
+
setTouchTargeting={setTouchTargeting}
|
|
191
|
+
/>
|
|
192
|
+
</SafeAreaView>
|
|
193
|
+
)}
|
|
172
194
|
</View>
|
|
173
195
|
);
|
|
174
196
|
}
|
|
@@ -20,12 +20,17 @@ const StyleSheet =
|
|
|
20
20
|
require('../../../../../Libraries/StyleSheet/StyleSheet').default;
|
|
21
21
|
const ElementBox = require('./ElementBox').default;
|
|
22
22
|
|
|
23
|
-
type Props =
|
|
23
|
+
type Props = Readonly<{
|
|
24
24
|
inspected?: ?InspectedElement,
|
|
25
25
|
onTouchPoint: (locationX: number, locationY: number) => void,
|
|
26
|
+
externalInspectionActive?: boolean,
|
|
26
27
|
}>;
|
|
27
28
|
|
|
28
|
-
function InspectorOverlay({
|
|
29
|
+
function InspectorOverlay({
|
|
30
|
+
inspected,
|
|
31
|
+
onTouchPoint,
|
|
32
|
+
externalInspectionActive,
|
|
33
|
+
}: Props): React.Node {
|
|
29
34
|
const findViewForTouchEvent = (e: GestureResponderEvent) => {
|
|
30
35
|
const {locationX, locationY} = e.nativeEvent.touches[0];
|
|
31
36
|
|
|
@@ -47,7 +52,10 @@ function InspectorOverlay({inspected, onTouchPoint}: Props): React.Node {
|
|
|
47
52
|
onStartShouldSetResponder={handleStartShouldSetResponder}
|
|
48
53
|
onResponderMove={findViewForTouchEvent}
|
|
49
54
|
nativeID="inspectorOverlay" /* TODO: T68258846. */
|
|
50
|
-
style={
|
|
55
|
+
style={[
|
|
56
|
+
styles.inspector,
|
|
57
|
+
externalInspectionActive === true && styles.externalInspectionIndicator,
|
|
58
|
+
]}>
|
|
51
59
|
{content}
|
|
52
60
|
</View>
|
|
53
61
|
);
|
|
@@ -62,6 +70,10 @@ const styles = StyleSheet.create({
|
|
|
62
70
|
right: 0,
|
|
63
71
|
bottom: 0,
|
|
64
72
|
},
|
|
73
|
+
externalInspectionIndicator: {
|
|
74
|
+
borderWidth: 4,
|
|
75
|
+
borderColor: 'rgba(255, 0, 0, 0.8)',
|
|
76
|
+
},
|
|
65
77
|
});
|
|
66
78
|
|
|
67
79
|
export default InspectorOverlay;
|
|
@@ -25,7 +25,7 @@ const StyleSheet =
|
|
|
25
25
|
const Text = require('../../../../../Libraries/Text/Text').default;
|
|
26
26
|
const ElementProperties = require('./ElementProperties').default;
|
|
27
27
|
|
|
28
|
-
type Props =
|
|
28
|
+
type Props = Readonly<{
|
|
29
29
|
devtoolsIsOpen: boolean,
|
|
30
30
|
inspecting: boolean,
|
|
31
31
|
setInspecting: (val: boolean) => void,
|
|
@@ -84,7 +84,7 @@ class InspectorPanel extends React.Component<Props> {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
type InspectorPanelButtonProps =
|
|
87
|
+
type InspectorPanelButtonProps = Readonly<{
|
|
88
88
|
onClick: (val: boolean) => void,
|
|
89
89
|
pressed: boolean,
|
|
90
90
|
title: string,
|
|
@@ -52,10 +52,12 @@ export default function ReactDevToolsOverlay({
|
|
|
52
52
|
|
|
53
53
|
function onStartInspectingNative() {
|
|
54
54
|
setIsInspecting(true);
|
|
55
|
+
setInspected(null);
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
function onStopInspectingNative() {
|
|
58
59
|
setIsInspecting(false);
|
|
60
|
+
setInspected(null);
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
reactDevToolsAgent.addListener('shutdown', cleanup);
|
|
@@ -93,12 +95,6 @@ export default function ReactDevToolsOverlay({
|
|
|
93
95
|
[inspectedViewRef, reactDevToolsAgent],
|
|
94
96
|
);
|
|
95
97
|
|
|
96
|
-
const stopInspecting = useCallback(() => {
|
|
97
|
-
reactDevToolsAgent.stopInspectingNative(true);
|
|
98
|
-
setIsInspecting(false);
|
|
99
|
-
setInspected(null);
|
|
100
|
-
}, [reactDevToolsAgent]);
|
|
101
|
-
|
|
102
98
|
const onPointerMove = useCallback(
|
|
103
99
|
(e: PointerEvent) => {
|
|
104
100
|
findViewForLocation(e.nativeEvent.x, e.nativeEvent.y);
|
|
@@ -133,12 +129,10 @@ export default function ReactDevToolsOverlay({
|
|
|
133
129
|
? {
|
|
134
130
|
onPointerMove,
|
|
135
131
|
onPointerDown: onPointerMove,
|
|
136
|
-
onPointerUp: stopInspecting,
|
|
137
132
|
}
|
|
138
133
|
: {
|
|
139
134
|
onStartShouldSetResponder: shouldSetResponder,
|
|
140
135
|
onResponderMove: onResponderMove,
|
|
141
|
-
onResponderRelease: stopInspecting,
|
|
142
136
|
};
|
|
143
137
|
|
|
144
138
|
return (
|
|
@@ -20,7 +20,7 @@ const StyleSheet =
|
|
|
20
20
|
require('../../../../../Libraries/StyleSheet/StyleSheet').default;
|
|
21
21
|
const Text = require('../../../../../Libraries/Text/Text').default;
|
|
22
22
|
|
|
23
|
-
type Props =
|
|
23
|
+
type Props = Readonly<{
|
|
24
24
|
style?: ?____FlattenStyleProp_Internal<ViewStyleProp>,
|
|
25
25
|
}>;
|
|
26
26
|
|