@office-iss/react-native-win32 0.73.1 → 0.74.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 -1
- package/.flowconfig +11 -3
- package/CHANGELOG.json +422 -44
- package/CHANGELOG.md +162 -26
- package/IntegrationTests/AccessibilityManagerTest.js +2 -2
- package/IntegrationTests/AppEventsTest.js +2 -2
- package/IntegrationTests/LayoutEventsTest.js +8 -10
- package/IntegrationTests/LoggingTestModule.js +1 -2
- package/IntegrationTests/websocket_integration_test_server.js +1 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
- package/Libraries/Alert/NativeAlertManager.js +4 -26
- package/Libraries/Animated/Animated.js +2 -2
- package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
- package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
- package/Libraries/Animated/NativeAnimatedModule.js +4 -68
- package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
- package/Libraries/Animated/animations/Animation.js +6 -22
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
- package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
- package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
- package/Libraries/Animated/createAnimatedComponent.js +45 -40
- package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +21 -1
- package/Libraries/AppState/NativeAppState.js +4 -24
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/Blob.js +1 -4
- package/Libraries/Blob/BlobManager.js +6 -8
- package/Libraries/Blob/File.js +1 -1
- package/Libraries/Blob/NativeBlobModule.js +4 -50
- package/Libraries/Blob/NativeFileReaderModule.js +4 -13
- package/Libraries/BugReporting/NativeBugReporting.js +4 -12
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
- package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
- package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
- package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
- package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
- package/Libraries/Components/Button/ButtonWin32.js +82 -82
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
- package/Libraries/Components/Button.js +103 -107
- package/Libraries/Components/Button.win32.js +297 -301
- package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
- package/Libraries/Components/EnterString.win32.d.ts +12 -12
- package/Libraries/Components/EnterString.win32.js +81 -81
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
- package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
- package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
- package/Libraries/Components/ScrollView/ScrollView.js +12 -38
- package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
- package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
- package/Libraries/Components/Switch/Switch.js +0 -2
- package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
- package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
- package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
- package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
- package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
- package/Libraries/Components/TextInput/TextInput.js +65 -32
- package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/Touchable.js +2 -3
- package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
- package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
- package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
- package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.win32.js +18 -17
- package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/Libraries/Components/View/ViewPropTypes.js +36 -36
- package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
- package/Libraries/Core/InitializeCore.js +1 -1
- package/Libraries/Core/NativeExceptionsManager.js +3 -93
- package/Libraries/Core/ReactNativeVersion.js +12 -6
- package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
- package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
- package/Libraries/Core/Timers/NativeTiming.js +3 -16
- package/Libraries/Core/registerCallableModule.js +42 -0
- package/Libraries/Core/setUpPerformance.js +2 -2
- package/Libraries/Core/setUpPerformanceObserver.js +3 -1
- package/Libraries/Debugging/DebuggingOverlay.js +111 -0
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
- package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
- package/Libraries/Image/AssetSourceResolver.js +5 -5
- package/Libraries/Image/AssetUtils.js +4 -5
- package/Libraries/Image/Image.android.js +146 -174
- package/Libraries/Image/Image.d.ts +1 -1
- package/Libraries/Image/Image.ios.js +53 -79
- package/Libraries/Image/Image.win32.js +52 -74
- package/Libraries/Image/ImageBackground.js +2 -2
- package/Libraries/Image/ImageInjection.js +76 -18
- package/Libraries/Image/ImageTypes.d.ts +25 -25
- package/Libraries/Image/ImageTypes.flow.js +71 -0
- package/Libraries/Image/ImageTypes.js +7 -7
- package/Libraries/Image/ImageTypes.js.map +1 -1
- package/Libraries/Image/ImageUtils.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +18 -0
- package/Libraries/Image/NativeImageEditor.js +3 -42
- package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
- package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
- package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
- package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
- package/Libraries/Image/NativeImageStoreIOS.js +3 -23
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
- package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
- package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
- package/Libraries/Image/resolveAssetSource.js +59 -26
- package/Libraries/Inspector/ElementProperties.js +26 -52
- package/Libraries/Inspector/Inspector.js +122 -186
- package/Libraries/Inspector/Inspector.win32.js +118 -185
- package/Libraries/Inspector/InspectorOverlay.js +21 -33
- package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
- package/Libraries/Inspector/InspectorPanel.js +3 -17
- package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
- package/Libraries/Interaction/FrameRateLogger.js +8 -18
- package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
- package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
- package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
- package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
- package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
- package/Libraries/Linking/NativeIntentAndroid.js +3 -20
- package/Libraries/Linking/NativeLinkingManager.js +3 -17
- package/Libraries/Lists/FillRateHelper.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +2 -2
- package/Libraries/Lists/FlatList.js +6 -1
- package/Libraries/Lists/SectionList.d.ts +6 -1
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizeUtils.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -1
- package/Libraries/Lists/VirtualizedListContext.js +1 -1
- package/Libraries/Lists/VirtualizedSectionList.js +1 -1
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/Modal/Modal.js +43 -11
- package/Libraries/Modal/NativeModalManager.js +3 -11
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
- package/Libraries/MutationObserver/MutationObserver.js +1 -1
- package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
- package/Libraries/MutationObserver/MutationRecord.js +12 -10
- package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
- package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
- package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
- package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
- package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
- package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
- package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
- package/Libraries/Network/FormData.js +3 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
- package/Libraries/Network/NativeNetworkingIOS.js +4 -28
- package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
- package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
- package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
- package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
- package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
- package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
- package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
- package/Libraries/Pressability/Pressability.js +12 -2
- package/Libraries/Pressability/Pressability.win32.js +12 -2
- package/Libraries/Pressability/usePressability.js +7 -0
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
- package/Libraries/ReactNative/AppContainer-dev.js +192 -0
- package/Libraries/ReactNative/AppContainer-prod.js +53 -0
- package/Libraries/ReactNative/AppContainer.js +6 -149
- package/Libraries/ReactNative/AppRegistry.js +3 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
- package/Libraries/ReactNative/FabricUIManager.js +6 -0
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
- package/Libraries/ReactNative/NativeI18nManager.js +3 -18
- package/Libraries/ReactNative/NativeUIManager.js +4 -112
- package/Libraries/ReactNative/PaperUIManager.js +8 -7
- package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
- package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
- package/Libraries/ReactNative/RendererImplementation.js +11 -0
- package/Libraries/ReactNative/UIManager.d.ts +11 -34
- package/Libraries/ReactNative/UIManager.js +2 -23
- package/Libraries/ReactNative/UIManagerProperties.js +0 -2
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
- package/Libraries/ReactNative/renderApplication.js +9 -6
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
- package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
- package/Libraries/Settings/NativeSettingsManager.js +4 -16
- package/Libraries/Share/NativeShareModule.js +3 -13
- package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
- package/Libraries/StyleSheet/StyleSheet.js +5 -28
- package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
- package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
- package/Libraries/StyleSheet/flattenStyle.js +2 -2
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/Text/Text.d.ts +85 -0
- package/Libraries/Text/Text.js +0 -6
- package/Libraries/Text/Text.win32.js +0 -6
- package/Libraries/Text/TextAncestor.js +2 -3
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
- package/Libraries/Types/ReactDevToolsTypes.js +58 -0
- package/Libraries/Types/UIManagerJSInterface.js +16 -0
- package/Libraries/Utilities/DebugEnvironment.js +1 -4
- package/Libraries/Utilities/Dimensions.js +8 -16
- package/Libraries/Utilities/Dimensions.win32.js +8 -16
- package/Libraries/Utilities/FocusManager.win32.js +2 -0
- package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
- package/Libraries/Utilities/NativeAppearance.js +3 -26
- package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
- package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
- package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
- package/Libraries/Utilities/PixelRatio.d.ts +4 -4
- package/Libraries/Utilities/Platform.android.js +4 -0
- package/Libraries/Utilities/Platform.d.ts +3 -0
- package/Libraries/Utilities/Platform.flow.js +7 -0
- package/Libraries/Utilities/Platform.flow.win32.js +18 -5
- package/Libraries/Utilities/Platform.ios.js +11 -0
- package/Libraries/Utilities/Platform.win32.js +9 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +4 -6
- package/Libraries/Utilities/createPerformanceLogger.js +2 -74
- package/Libraries/Utilities/useMergeRefs.js +5 -9
- package/Libraries/Vibration/NativeVibration.js +3 -14
- package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +2 -3
- package/Libraries/vendor/emitter/EventEmitter.js +1 -0
- package/babel.config.js +1 -1
- package/flow/jest.js +1 -1
- package/flow/react.js +15 -0
- package/index.js +66 -99
- package/index.win32.js +60 -101
- package/jest/assetFileTransformer.js +1 -1
- package/jest/local-setup.js +0 -5
- package/jest/mockModal.js +2 -1
- package/jest/mockScrollView.js +1 -2
- package/jest/renderer.js +1 -1
- package/jest/setup.js +6 -3
- package/jest.config.js +2 -1
- package/overrides.json +157 -130
- package/package.json +26 -26
- package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
- package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
- package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
- package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
- package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
- package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
- package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
- package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
- package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
- package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
- package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
- package/src/private/specs/components/SwitchNativeComponent.js +61 -0
- package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
- package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
- package/src/private/specs/modules/NativeAlertManager.js +35 -0
- package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
- package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
- package/src/private/specs/modules/NativeAppState.js +33 -0
- package/src/private/specs/modules/NativeAppearance.js +36 -0
- package/src/private/specs/modules/NativeBlobModule.js +59 -0
- package/src/private/specs/modules/NativeBugReporting.js +20 -0
- package/src/private/specs/modules/NativeClipboard.js +21 -0
- package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
- package/src/private/specs/modules/NativeDevMenu.js +23 -0
- package/src/private/specs/modules/NativeDevSettings.js +33 -0
- package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
- package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
- package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
- package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
- package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
- package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
- package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
- package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
- package/src/private/specs/modules/NativeI18nManager.js +28 -0
- package/src/private/specs/modules/NativeImageEditor.js +52 -0
- package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
- package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
- package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
- package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
- package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
- package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
- package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
- package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
- package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
- package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
- package/src/private/specs/modules/NativeLinkingManager.js +27 -0
- package/src/private/specs/modules/NativeLogBox.js +20 -0
- package/src/private/specs/modules/NativeModalManager.js +21 -0
- package/src/private/specs/modules/NativeMutationObserver.js +58 -0
- package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
- package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
- package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
- package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
- package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
- package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
- package/src/private/specs/modules/NativeRedBox.js +20 -0
- package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
- package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
- package/src/private/specs/modules/NativeSettingsManager.js +25 -0
- package/src/private/specs/modules/NativeShareModule.js +23 -0
- package/src/private/specs/modules/NativeSoundManager.js +22 -0
- package/src/private/specs/modules/NativeSourceCode.js +36 -0
- package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
- package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
- package/src/private/specs/modules/NativeTiming.js +26 -0
- package/src/private/specs/modules/NativeToastAndroid.js +38 -0
- package/src/private/specs/modules/NativeUIManager.js +118 -0
- package/src/private/specs/modules/NativeVibration.js +24 -0
- package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
- package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
- package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
- package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
- package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
- package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
- package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
- package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
- package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
- package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
- package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
- package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
- package/src-win/Libraries/Text/Text.d.ts +304 -0
- package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
- package/types/modules/globals.d.ts +1 -0
- package/Libraries/Components/Button.flow.js +0 -265
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
- package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
- package/Libraries/Components/Text/TextWin32.Props.js +0 -3
- package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
- package/Libraries/Components/Text/TextWin32.d.ts +0 -6
- package/Libraries/Components/Text/TextWin32.js +0 -18
- package/Libraries/Components/Text/TextWin32.js.map +0 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
- package/Libraries/Image/Image.flow.js +0 -64
- package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
- package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
- package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
- package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
- /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
- /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
- /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
- /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
- /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
- /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
- /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
- /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
- /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
- /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
- /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
- /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
- /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {InspectedViewRef} from '../ReactNative/AppContainer-dev';
|
|
12
|
+
import type {PointerEvent} from '../Types/CoreEventTypes';
|
|
13
|
+
import type {PressEvent} from '../Types/CoreEventTypes';
|
|
14
|
+
import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes';
|
|
15
|
+
import type {InspectedElement} from './Inspector';
|
|
16
|
+
|
|
17
|
+
import View from '../Components/View/View';
|
|
18
|
+
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
19
|
+
import StyleSheet from '../StyleSheet/StyleSheet';
|
|
20
|
+
import ElementBox from './ElementBox';
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
|
|
23
|
+
const {findNodeHandle} = require('../ReactNative/RendererProxy');
|
|
24
|
+
const getInspectorDataForViewAtPoint = require('./getInspectorDataForViewAtPoint');
|
|
25
|
+
|
|
26
|
+
const {useEffect, useState, useCallback} = React;
|
|
27
|
+
|
|
28
|
+
type Props = {
|
|
29
|
+
inspectedViewRef: InspectedViewRef,
|
|
30
|
+
reactDevToolsAgent: ReactDevToolsAgent,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export default function ReactDevToolsOverlay({
|
|
34
|
+
inspectedViewRef,
|
|
35
|
+
reactDevToolsAgent,
|
|
36
|
+
}: Props): React.Node {
|
|
37
|
+
const [inspected, setInspected] = useState<?InspectedElement>(null);
|
|
38
|
+
const [isInspecting, setIsInspecting] = useState(false);
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
function cleanup() {
|
|
42
|
+
reactDevToolsAgent.removeListener('shutdown', cleanup);
|
|
43
|
+
reactDevToolsAgent.removeListener(
|
|
44
|
+
'startInspectingNative',
|
|
45
|
+
onStartInspectingNative,
|
|
46
|
+
);
|
|
47
|
+
reactDevToolsAgent.removeListener(
|
|
48
|
+
'stopInspectingNative',
|
|
49
|
+
onStopInspectingNative,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function onStartInspectingNative() {
|
|
54
|
+
setIsInspecting(true);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function onStopInspectingNative() {
|
|
58
|
+
setIsInspecting(false);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
reactDevToolsAgent.addListener('shutdown', cleanup);
|
|
62
|
+
reactDevToolsAgent.addListener(
|
|
63
|
+
'startInspectingNative',
|
|
64
|
+
onStartInspectingNative,
|
|
65
|
+
);
|
|
66
|
+
reactDevToolsAgent.addListener(
|
|
67
|
+
'stopInspectingNative',
|
|
68
|
+
onStopInspectingNative,
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
return cleanup;
|
|
72
|
+
}, [reactDevToolsAgent]);
|
|
73
|
+
|
|
74
|
+
const findViewForLocation = useCallback(
|
|
75
|
+
(x: number, y: number) => {
|
|
76
|
+
getInspectorDataForViewAtPoint(
|
|
77
|
+
inspectedViewRef.current,
|
|
78
|
+
x,
|
|
79
|
+
y,
|
|
80
|
+
viewData => {
|
|
81
|
+
const {touchedViewTag, closestInstance, frame} = viewData;
|
|
82
|
+
if (closestInstance != null || touchedViewTag != null) {
|
|
83
|
+
// We call `selectNode` for both non-fabric(viewTag) and fabric(instance),
|
|
84
|
+
// this makes sure it works for both architectures.
|
|
85
|
+
reactDevToolsAgent.selectNode(findNodeHandle(touchedViewTag));
|
|
86
|
+
if (closestInstance != null) {
|
|
87
|
+
reactDevToolsAgent.selectNode(closestInstance);
|
|
88
|
+
}
|
|
89
|
+
setInspected({
|
|
90
|
+
frame,
|
|
91
|
+
});
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
},
|
|
96
|
+
);
|
|
97
|
+
},
|
|
98
|
+
[inspectedViewRef, reactDevToolsAgent],
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const stopInspecting = useCallback(() => {
|
|
102
|
+
reactDevToolsAgent.stopInspectingNative(true);
|
|
103
|
+
setIsInspecting(false);
|
|
104
|
+
setInspected(null);
|
|
105
|
+
}, [reactDevToolsAgent]);
|
|
106
|
+
|
|
107
|
+
const onPointerMove = useCallback(
|
|
108
|
+
(e: PointerEvent) => {
|
|
109
|
+
findViewForLocation(e.nativeEvent.x, e.nativeEvent.y);
|
|
110
|
+
},
|
|
111
|
+
[findViewForLocation],
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const onResponderMove = useCallback(
|
|
115
|
+
(e: PressEvent) => {
|
|
116
|
+
findViewForLocation(
|
|
117
|
+
e.nativeEvent.touches[0].locationX,
|
|
118
|
+
e.nativeEvent.touches[0].locationY,
|
|
119
|
+
);
|
|
120
|
+
},
|
|
121
|
+
[findViewForLocation],
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const shouldSetResponder = useCallback(
|
|
125
|
+
(e: PressEvent): boolean => {
|
|
126
|
+
onResponderMove(e);
|
|
127
|
+
return true;
|
|
128
|
+
},
|
|
129
|
+
[onResponderMove],
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
const highlight = inspected ? <ElementBox frame={inspected.frame} /> : null;
|
|
133
|
+
|
|
134
|
+
if (isInspecting) {
|
|
135
|
+
const events =
|
|
136
|
+
// Pointer events only work on fabric
|
|
137
|
+
ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()
|
|
138
|
+
? {
|
|
139
|
+
onPointerMove,
|
|
140
|
+
onPointerDown: onPointerMove,
|
|
141
|
+
onPointerUp: stopInspecting,
|
|
142
|
+
}
|
|
143
|
+
: {
|
|
144
|
+
onStartShouldSetResponder: shouldSetResponder,
|
|
145
|
+
onResponderMove: onResponderMove,
|
|
146
|
+
onResponderRelease: stopInspecting,
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<View
|
|
151
|
+
nativeID="devToolsInspectorOverlay"
|
|
152
|
+
style={styles.inspector}
|
|
153
|
+
{...events}>
|
|
154
|
+
{highlight}
|
|
155
|
+
</View>
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return highlight;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const styles = StyleSheet.create({
|
|
163
|
+
inspector: {
|
|
164
|
+
backgroundColor: 'transparent',
|
|
165
|
+
position: 'absolute',
|
|
166
|
+
left: 0,
|
|
167
|
+
top: 0,
|
|
168
|
+
right: 0,
|
|
169
|
+
bottom: 0,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
@@ -28,17 +28,27 @@ export type ReactRenderer = {
|
|
|
28
28
|
...
|
|
29
29
|
},
|
|
30
30
|
};
|
|
31
|
+
type AttachedRendererEventPayload = {id: number, renderer: ReactRenderer};
|
|
31
32
|
|
|
32
|
-
const
|
|
33
|
-
|
|
33
|
+
const reactDevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
34
|
+
invariant(
|
|
35
|
+
Boolean(reactDevToolsHook),
|
|
36
|
+
'getInspectorDataForViewAtPoint should not be used if React DevTools hook is not injected',
|
|
37
|
+
);
|
|
34
38
|
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
const renderers: Array<ReactRenderer> = Array.from(
|
|
40
|
+
window.__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values(),
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const appendRenderer = ({renderer}: AttachedRendererEventPayload) =>
|
|
44
|
+
renderers.push(renderer);
|
|
45
|
+
reactDevToolsHook.on('renderer', appendRenderer);
|
|
46
|
+
|
|
47
|
+
function validateRenderers(): void {
|
|
37
48
|
invariant(
|
|
38
|
-
|
|
49
|
+
renderers.length > 0,
|
|
39
50
|
'Expected to find at least one React Native renderer on DevTools hook.',
|
|
40
51
|
);
|
|
41
|
-
return allRenderers;
|
|
42
52
|
}
|
|
43
53
|
|
|
44
54
|
module.exports = function getInspectorDataForViewAtPoint(
|
|
@@ -47,13 +57,15 @@ module.exports = function getInspectorDataForViewAtPoint(
|
|
|
47
57
|
locationY: number,
|
|
48
58
|
callback: (viewData: TouchedViewDataAtPoint) => boolean,
|
|
49
59
|
) {
|
|
60
|
+
validateRenderers();
|
|
61
|
+
|
|
50
62
|
let shouldBreak = false;
|
|
51
63
|
// Check all renderers for inspector data.
|
|
52
|
-
for (
|
|
64
|
+
for (const renderer of renderers) {
|
|
53
65
|
if (shouldBreak) {
|
|
54
66
|
break;
|
|
55
67
|
}
|
|
56
|
-
|
|
68
|
+
|
|
57
69
|
if (renderer?.rendererConfig?.getInspectorDataForViewAtPoint != null) {
|
|
58
70
|
renderer.rendererConfig.getInspectorDataForViewAtPoint(
|
|
59
71
|
inspectedView,
|
|
@@ -30,28 +30,18 @@ const invariant = require('invariant');
|
|
|
30
30
|
*/
|
|
31
31
|
const FrameRateLogger = {
|
|
32
32
|
/**
|
|
33
|
-
* Enable `debug` to see local logs of what's going on.
|
|
34
|
-
* during UI thread stalls and upload them if the native module supports it.
|
|
33
|
+
* Enable `debug` to see local logs of what's going on.
|
|
35
34
|
*/
|
|
36
|
-
setGlobalOptions: function (options: {
|
|
37
|
-
debug?: boolean,
|
|
38
|
-
reportStackTraces?: boolean,
|
|
39
|
-
...
|
|
40
|
-
}) {
|
|
35
|
+
setGlobalOptions: function (options: {debug?: boolean, ...}) {
|
|
41
36
|
if (options.debug !== undefined) {
|
|
42
37
|
invariant(
|
|
43
38
|
NativeFrameRateLogger,
|
|
44
39
|
'Trying to debug FrameRateLogger without the native module!',
|
|
45
40
|
);
|
|
46
41
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
debug: !!options.debug,
|
|
51
|
-
reportStackTraces: !!options.reportStackTraces,
|
|
52
|
-
};
|
|
53
|
-
NativeFrameRateLogger.setGlobalOptions(optionsClone);
|
|
54
|
-
}
|
|
42
|
+
NativeFrameRateLogger?.setGlobalOptions({
|
|
43
|
+
debug: !!options.debug,
|
|
44
|
+
});
|
|
55
45
|
},
|
|
56
46
|
|
|
57
47
|
/**
|
|
@@ -59,7 +49,7 @@ const FrameRateLogger = {
|
|
|
59
49
|
* in `AppRegistry`, but navigation is also a common place to hook in.
|
|
60
50
|
*/
|
|
61
51
|
setContext: function (context: string) {
|
|
62
|
-
NativeFrameRateLogger
|
|
52
|
+
NativeFrameRateLogger?.setContext(context);
|
|
63
53
|
},
|
|
64
54
|
|
|
65
55
|
/**
|
|
@@ -67,7 +57,7 @@ const FrameRateLogger = {
|
|
|
67
57
|
* automatically.
|
|
68
58
|
*/
|
|
69
59
|
beginScroll() {
|
|
70
|
-
NativeFrameRateLogger
|
|
60
|
+
NativeFrameRateLogger?.beginScroll();
|
|
71
61
|
},
|
|
72
62
|
|
|
73
63
|
/**
|
|
@@ -75,7 +65,7 @@ const FrameRateLogger = {
|
|
|
75
65
|
* automatically.
|
|
76
66
|
*/
|
|
77
67
|
endScroll() {
|
|
78
|
-
NativeFrameRateLogger
|
|
68
|
+
NativeFrameRateLogger?.endScroll();
|
|
79
69
|
},
|
|
80
70
|
};
|
|
81
71
|
|
|
@@ -4,22 +4,10 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @format
|
|
8
7
|
* @flow strict
|
|
8
|
+
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export interface Spec extends TurboModule {
|
|
16
|
-
+setGlobalOptions: (options: {|
|
|
17
|
-
+debug?: ?boolean,
|
|
18
|
-
+reportStackTraces?: ?boolean,
|
|
19
|
-
|}) => void;
|
|
20
|
-
+setContext: (context: string) => void;
|
|
21
|
-
+beginScroll: () => void;
|
|
22
|
-
+endScroll: () => void;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default (TurboModuleRegistry.get<Spec>('FrameRateLogger'): ?Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeFrameRateLogger';
|
|
12
|
+
import NativeFrameRateLogger from '../../src/private/specs/modules/NativeFrameRateLogger';
|
|
13
|
+
export default NativeFrameRateLogger;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import type IntersectionObserverEntry from './IntersectionObserverEntry';
|
|
14
14
|
import type {IntersectionObserverId} from './IntersectionObserverManager';
|
|
15
15
|
|
|
16
|
-
import ReactNativeElement from '
|
|
16
|
+
import ReactNativeElement from '../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
17
17
|
import * as IntersectionObserverManager from './IntersectionObserverManager';
|
|
18
18
|
|
|
19
19
|
export type IntersectionObserverCallback = (
|
|
@@ -10,12 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
// flowlint unsafe-getters-setters:off
|
|
12
12
|
|
|
13
|
-
import type ReactNativeElement from '
|
|
14
|
-
import type {InternalInstanceHandle} from '../Renderer/shims/ReactNativeTypes';
|
|
13
|
+
import type ReactNativeElement from '../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
15
14
|
import type {NativeIntersectionObserverEntry} from './NativeIntersectionObserver';
|
|
16
15
|
|
|
17
|
-
import DOMRectReadOnly from '
|
|
18
|
-
import {getPublicInstanceFromInternalInstanceHandle} from '../DOM/Nodes/ReadOnlyNode';
|
|
16
|
+
import DOMRectReadOnly from '../../src/private/webapis/dom/geometry/DOMRectReadOnly';
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* The [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)
|
|
@@ -29,9 +27,17 @@ export default class IntersectionObserverEntry {
|
|
|
29
27
|
// We lazily compute all the properties from the raw entry provided by the
|
|
30
28
|
// native module, so we avoid unnecessary work.
|
|
31
29
|
_nativeEntry: NativeIntersectionObserverEntry;
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
// There are cases where this cannot be safely derived from the instance
|
|
31
|
+
// handle in the native entry (when the target is detached), so we need to
|
|
32
|
+
// keep a reference to it directly.
|
|
33
|
+
_target: ReactNativeElement;
|
|
34
|
+
|
|
35
|
+
constructor(
|
|
36
|
+
nativeEntry: NativeIntersectionObserverEntry,
|
|
37
|
+
target: ReactNativeElement,
|
|
38
|
+
) {
|
|
34
39
|
this._nativeEntry = nativeEntry;
|
|
40
|
+
this._target = target;
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
/**
|
|
@@ -60,10 +66,12 @@ export default class IntersectionObserverEntry {
|
|
|
60
66
|
return 0;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
|
-
|
|
69
|
+
const ratio =
|
|
64
70
|
(intersectionRect.width * intersectionRect.height) /
|
|
65
|
-
(boundingClientRect.width * boundingClientRect.height)
|
|
66
|
-
|
|
71
|
+
(boundingClientRect.width * boundingClientRect.height);
|
|
72
|
+
|
|
73
|
+
// Prevent rounding errors from making this value greater than 1.
|
|
74
|
+
return Math.min(ratio, 1);
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
/**
|
|
@@ -113,15 +121,7 @@ export default class IntersectionObserverEntry {
|
|
|
113
121
|
* The `ReactNativeElement` whose intersection with the root changed.
|
|
114
122
|
*/
|
|
115
123
|
get target(): ReactNativeElement {
|
|
116
|
-
|
|
117
|
-
// $FlowExpectedError[incompatible-type] native modules don't support using InternalInstanceHandle as a type
|
|
118
|
-
this._nativeEntry.targetInstanceHandle;
|
|
119
|
-
|
|
120
|
-
const targetElement =
|
|
121
|
-
getPublicInstanceFromInternalInstanceHandle(targetInstanceHandle);
|
|
122
|
-
|
|
123
|
-
// $FlowExpectedError[incompatible-cast] we know targetElement is a ReactNativeElement, not just a ReadOnlyNode
|
|
124
|
-
return (targetElement: ReactNativeElement);
|
|
124
|
+
return this._target;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
/**
|
|
@@ -135,6 +135,7 @@ export default class IntersectionObserverEntry {
|
|
|
135
135
|
|
|
136
136
|
export function createIntersectionObserverEntry(
|
|
137
137
|
entry: NativeIntersectionObserverEntry,
|
|
138
|
+
target: ReactNativeElement,
|
|
138
139
|
): IntersectionObserverEntry {
|
|
139
|
-
return new IntersectionObserverEntry(entry);
|
|
140
|
+
return new IntersectionObserverEntry(entry, target);
|
|
140
141
|
}
|
|
@@ -18,13 +18,16 @@
|
|
|
18
18
|
* the notifications together.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import type ReactNativeElement from '
|
|
21
|
+
import type ReactNativeElement from '../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
22
22
|
import type IntersectionObserver, {
|
|
23
23
|
IntersectionObserverCallback,
|
|
24
24
|
} from './IntersectionObserver';
|
|
25
25
|
import type IntersectionObserverEntry from './IntersectionObserverEntry';
|
|
26
26
|
|
|
27
|
-
import {
|
|
27
|
+
import {
|
|
28
|
+
getInstanceHandle,
|
|
29
|
+
getShadowNode,
|
|
30
|
+
} from '../../src/private/webapis/dom/nodes/ReadOnlyNode';
|
|
28
31
|
import * as Systrace from '../Performance/Systrace';
|
|
29
32
|
import warnOnce from '../Utilities/warnOnce';
|
|
30
33
|
import {createIntersectionObserverEntry} from './IntersectionObserverEntry';
|
|
@@ -40,6 +43,45 @@ const registeredIntersectionObservers: Map<
|
|
|
40
43
|
{observer: IntersectionObserver, callback: IntersectionObserverCallback},
|
|
41
44
|
> = new Map();
|
|
42
45
|
|
|
46
|
+
// We need to keep the mapping from instance handles to targets because when
|
|
47
|
+
// targets are detached (their components are unmounted), React resets the
|
|
48
|
+
// instance handle to prevent memory leaks and it cuts the connection between
|
|
49
|
+
// the instance handle and the target.
|
|
50
|
+
const instanceHandleToTargetMap: WeakMap<interface {}, ReactNativeElement> =
|
|
51
|
+
new WeakMap();
|
|
52
|
+
|
|
53
|
+
function getTargetFromInstanceHandle(
|
|
54
|
+
instanceHandle: mixed,
|
|
55
|
+
): ?ReactNativeElement {
|
|
56
|
+
// $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
|
|
57
|
+
const key: interface {} = instanceHandle;
|
|
58
|
+
return instanceHandleToTargetMap.get(key);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function setTargetForInstanceHandle(
|
|
62
|
+
instanceHandle: mixed,
|
|
63
|
+
target: ReactNativeElement,
|
|
64
|
+
): void {
|
|
65
|
+
// $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
|
|
66
|
+
const key: interface {} = instanceHandle;
|
|
67
|
+
instanceHandleToTargetMap.set(key, target);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function unsetTargetForInstanceHandle(instanceHandle: mixed): void {
|
|
71
|
+
// $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
|
|
72
|
+
const key: interface {} = instanceHandle;
|
|
73
|
+
instanceHandleToTargetMap.delete(key);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// The mapping between ReactNativeElement and their corresponding shadow node
|
|
77
|
+
// also needs to be kept here because React removes the link when unmounting.
|
|
78
|
+
// We also keep the instance handle so we don't have to retrieve it again
|
|
79
|
+
// from the target to unobserve.
|
|
80
|
+
const targetToShadowNodeAndInstanceHandleMap: WeakMap<
|
|
81
|
+
ReactNativeElement,
|
|
82
|
+
[ReturnType<typeof getShadowNode>, mixed],
|
|
83
|
+
> = new WeakMap();
|
|
84
|
+
|
|
43
85
|
/**
|
|
44
86
|
* Registers the given intersection observer and returns a unique ID for it,
|
|
45
87
|
* which is required to start observing targets.
|
|
@@ -109,6 +151,25 @@ export function observe({
|
|
|
109
151
|
return;
|
|
110
152
|
}
|
|
111
153
|
|
|
154
|
+
const instanceHandle = getInstanceHandle(target);
|
|
155
|
+
if (instanceHandle == null) {
|
|
156
|
+
console.error(
|
|
157
|
+
'IntersectionObserverManager: could not find reference to instance handle from target',
|
|
158
|
+
);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Store the mapping between the instance handle and the target so we can
|
|
163
|
+
// access it even after the instance handle has been unmounted.
|
|
164
|
+
setTargetForInstanceHandle(instanceHandle, target);
|
|
165
|
+
|
|
166
|
+
// Same for the mapping between the target and its shadow node
|
|
167
|
+
// and instance handle.
|
|
168
|
+
targetToShadowNodeAndInstanceHandleMap.set(target, [
|
|
169
|
+
targetShadowNode,
|
|
170
|
+
instanceHandle,
|
|
171
|
+
]);
|
|
172
|
+
|
|
112
173
|
if (!isConnected) {
|
|
113
174
|
NativeIntersectionObserver.connect(notifyIntersectionObservers);
|
|
114
175
|
isConnected = true;
|
|
@@ -140,18 +201,26 @@ export function unobserve(
|
|
|
140
201
|
return;
|
|
141
202
|
}
|
|
142
203
|
|
|
143
|
-
const
|
|
144
|
-
|
|
204
|
+
const targetShadowNodeAndInstanceHandle =
|
|
205
|
+
targetToShadowNodeAndInstanceHandleMap.get(target);
|
|
206
|
+
if (targetShadowNodeAndInstanceHandle == null) {
|
|
145
207
|
console.error(
|
|
146
|
-
'IntersectionObserverManager: could not find
|
|
208
|
+
'IntersectionObserverManager: could not find registration data for target',
|
|
147
209
|
);
|
|
148
210
|
return;
|
|
149
211
|
}
|
|
150
212
|
|
|
213
|
+
const [targetShadowNode, instanceHandle] = targetShadowNodeAndInstanceHandle;
|
|
214
|
+
|
|
151
215
|
NativeIntersectionObserver.unobserve(
|
|
152
216
|
intersectionObserverId,
|
|
153
217
|
targetShadowNode,
|
|
154
218
|
);
|
|
219
|
+
|
|
220
|
+
// We can guarantee we won't receive any more entries for this target,
|
|
221
|
+
// so we don't need to keep the mappings anymore.
|
|
222
|
+
unsetTargetForInstanceHandle(instanceHandle);
|
|
223
|
+
targetToShadowNodeAndInstanceHandleMap.delete(target);
|
|
155
224
|
}
|
|
156
225
|
|
|
157
226
|
/**
|
|
@@ -188,7 +257,16 @@ function doNotifyIntersectionObservers(): void {
|
|
|
188
257
|
list = [];
|
|
189
258
|
entriesByObserver.set(nativeEntry.intersectionObserverId, list);
|
|
190
259
|
}
|
|
191
|
-
|
|
260
|
+
|
|
261
|
+
const target = getTargetFromInstanceHandle(
|
|
262
|
+
nativeEntry.targetInstanceHandle,
|
|
263
|
+
);
|
|
264
|
+
if (target == null) {
|
|
265
|
+
console.warn('Could not find target to create IntersectionObserverEntry');
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
list.push(createIntersectionObserverEntry(nativeEntry, target));
|
|
192
270
|
}
|
|
193
271
|
|
|
194
272
|
for (const [
|
|
@@ -8,34 +8,6 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export type NativeIntersectionObserverEntry = {
|
|
16
|
-
intersectionObserverId: number,
|
|
17
|
-
targetInstanceHandle: mixed,
|
|
18
|
-
targetRect: $ReadOnlyArray<number>, // It's actually a tuple with x, y, width and height
|
|
19
|
-
rootRect: $ReadOnlyArray<number>, // It's actually a tuple with x, y, width and height
|
|
20
|
-
intersectionRect: ?$ReadOnlyArray<number>, // It's actually a tuple with x, y, width and height
|
|
21
|
-
isIntersectingAboveThresholds: boolean,
|
|
22
|
-
time: number,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type NativeIntersectionObserverObserveOptions = {
|
|
26
|
-
intersectionObserverId: number,
|
|
27
|
-
targetShadowNode: mixed,
|
|
28
|
-
thresholds: $ReadOnlyArray<number>,
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export interface Spec extends TurboModule {
|
|
32
|
-
+observe: (options: NativeIntersectionObserverObserveOptions) => void;
|
|
33
|
-
+unobserve: (intersectionObserverId: number, targetShadowNode: mixed) => void;
|
|
34
|
-
+connect: (notifyIntersectionObserversCallback: () => void) => void;
|
|
35
|
-
+disconnect: () => void;
|
|
36
|
-
+takeRecords: () => $ReadOnlyArray<NativeIntersectionObserverEntry>;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export default (TurboModuleRegistry.get<Spec>(
|
|
40
|
-
'NativeIntersectionObserverCxx',
|
|
41
|
-
): ?Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeIntersectionObserver';
|
|
12
|
+
import NativeIntersectionObserver from '../../src/private/specs/modules/NativeIntersectionObserver';
|
|
13
|
+
export default NativeIntersectionObserver;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type ReactNativeElement from '
|
|
11
|
+
import type ReactNativeElement from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
12
12
|
import type IntersectionObserver from '../IntersectionObserver';
|
|
13
13
|
import type {
|
|
14
14
|
NativeIntersectionObserverEntry,
|
|
@@ -16,7 +16,7 @@ import type {
|
|
|
16
16
|
Spec,
|
|
17
17
|
} from '../NativeIntersectionObserver';
|
|
18
18
|
|
|
19
|
-
import {getShadowNode} from '
|
|
19
|
+
import {getShadowNode} from '../../../src/private/webapis/dom/nodes/ReadOnlyNode';
|
|
20
20
|
import {getFabricUIManager} from '../../ReactNative/__mocks__/FabricUIManager';
|
|
21
21
|
import invariant from 'invariant';
|
|
22
22
|
import nullthrows from 'nullthrows';
|
|
@@ -96,6 +96,16 @@ const NativeIntersectionObserverMock = {
|
|
|
96
96
|
'unexpected duplicate call to unobserve',
|
|
97
97
|
);
|
|
98
98
|
observations.splice(observationIndex, 1);
|
|
99
|
+
|
|
100
|
+
pendingRecords = pendingRecords.filter(
|
|
101
|
+
record =>
|
|
102
|
+
record.intersectionObserverId !== intersectionObserverId ||
|
|
103
|
+
record.targetInstanceHandle !==
|
|
104
|
+
FabricUIManagerMock.__getInstanceHandleFromNode(
|
|
105
|
+
// $FlowExpectedError[incompatible-call]
|
|
106
|
+
targetShadowNode,
|
|
107
|
+
),
|
|
108
|
+
);
|
|
99
109
|
},
|
|
100
110
|
connect: (notifyIntersectionObserversCallback: () => void): void => {
|
|
101
111
|
invariant(callback == null, 'unexpected call to connect');
|
|
@@ -10,15 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
import type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager';
|
|
14
13
|
import type {
|
|
15
14
|
LayoutAnimationConfig as LayoutAnimationConfig_,
|
|
16
15
|
LayoutAnimationProperty,
|
|
17
16
|
LayoutAnimationType,
|
|
18
17
|
} from '../Renderer/shims/ReactNativeTypes';
|
|
19
18
|
|
|
19
|
+
import * as ReactNativeFeatureFlags from '../../src/private/featureflags/ReactNativeFeatureFlags';
|
|
20
20
|
import {getFabricUIManager} from '../ReactNative/FabricUIManager';
|
|
21
|
-
import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
|
|
22
21
|
import Platform from '../Utilities/Platform';
|
|
23
22
|
|
|
24
23
|
const UIManager = require('../ReactNative/UIManager');
|
|
@@ -8,23 +8,6 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export interface Spec extends TurboModule {
|
|
16
|
-
+getInitialURL: () => Promise<string>;
|
|
17
|
-
+canOpenURL: (url: string) => Promise<boolean>;
|
|
18
|
-
+openURL: (url: string) => Promise<void>;
|
|
19
|
-
+openSettings: () => Promise<void>;
|
|
20
|
-
+sendIntent: (
|
|
21
|
-
action: string,
|
|
22
|
-
extras: ?Array<{
|
|
23
|
-
key: string,
|
|
24
|
-
value: string | number | boolean, // TODO(T67672788): Union types are not type safe
|
|
25
|
-
...
|
|
26
|
-
}>,
|
|
27
|
-
) => Promise<void>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export default (TurboModuleRegistry.get<Spec>('IntentAndroid'): ?Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeIntentAndroid';
|
|
12
|
+
import NativeIntentAndroid from '../../src/private/specs/modules/NativeIntentAndroid';
|
|
13
|
+
export default NativeIntentAndroid;
|
|
@@ -8,20 +8,6 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export interface Spec extends TurboModule {
|
|
16
|
-
// Common interface
|
|
17
|
-
+getInitialURL: () => Promise<string>;
|
|
18
|
-
+canOpenURL: (url: string) => Promise<boolean>;
|
|
19
|
-
+openURL: (url: string) => Promise<void>;
|
|
20
|
-
+openSettings: () => Promise<void>;
|
|
21
|
-
|
|
22
|
-
// Events
|
|
23
|
-
+addListener: (eventName: string) => void;
|
|
24
|
-
+removeListeners: (count: number) => void;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export default (TurboModuleRegistry.get<Spec>('LinkingManager'): ?Spec);
|
|
11
|
+
export * from '../../src/private/specs/modules/NativeLinkingManager';
|
|
12
|
+
import NativeLinkingManager from '../../src/private/specs/modules/NativeLinkingManager';
|
|
13
|
+
export default NativeLinkingManager;
|