react-native-tvos 0.83.2-0 → 0.84.0-0
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/Libraries/Animated/AnimatedEvent.js +2 -2
- package/Libraries/Animated/animations/Animation.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +8 -5
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
- package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
- package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
- package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
- package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
- package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
- package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
- package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
- package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
- package/Libraries/BatchedBridge/MessageQueue.js +24 -22
- package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
- package/Libraries/Blob/URL.js +34 -3
- package/Libraries/Blob/URLSearchParams.js +1 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
- package/Libraries/Components/Button.js +2 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/Pressable/Pressable.js +8 -8
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
- package/Libraries/Components/TextInput/TextInput.js +33 -34
- package/Libraries/Components/Touchable/PooledClass.js +2 -2
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
- package/Libraries/Components/View/ViewPropTypes.js +16 -6
- package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +3 -3
- package/Libraries/Core/RawEventEmitter.js +1 -1
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpErrorHandling.js +1 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
- package/Libraries/Image/Image.android.js +2 -2
- package/Libraries/Image/Image.ios.js +2 -2
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageTypes.flow.js +2 -2
- package/Libraries/Image/RCTImagePlugins.h +1 -0
- package/Libraries/Image/RCTImagePlugins.mm +30 -17
- package/Libraries/Interaction/InteractionManager.js +3 -3
- package/Libraries/Interaction/PanResponder.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/LogBox/Data/LogBoxData.js +31 -4
- package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
- package/Libraries/LogBox/LogBox.js +7 -7
- package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
- package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
- package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
- package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
- package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
- package/Libraries/Network/RCTNetworking.android.js +3 -3
- package/Libraries/Network/RCTNetworking.ios.js +2 -2
- package/Libraries/Network/RCTNetworking.js.flow +2 -2
- package/Libraries/Pressability/Pressability.js +9 -9
- package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
- package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/FabricUIManager.js +1 -1
- package/Libraries/ReactNative/PaperUIManager.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
- package/Libraries/Renderer/shims/ReactFabric.js +3 -1
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
- package/Libraries/Renderer/shims/ReactNative.js +2 -2
- package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
- package/Libraries/Settings/RCTSettingsManager.mm +1 -1
- package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
- package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
- package/Libraries/StyleSheet/processFilter.js +1 -1
- package/Libraries/Text/Text.js +46 -6
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
- package/Libraries/Text/TextNativeComponent.js +1 -1
- package/Libraries/Text/TextProps.js +7 -7
- package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CoreEventTypes.js +31 -0
- package/Libraries/Types/ReactDevToolsTypes.js +2 -2
- package/Libraries/Utilities/Appearance.js +2 -2
- package/Libraries/Utilities/DevLoadingView.js +8 -1
- package/Libraries/Utilities/DevSettings.js +3 -3
- package/Libraries/Utilities/HMRClient.js +4 -3
- package/Libraries/Utilities/RCTLog.js +3 -3
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +1 -1
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +7 -7
- package/Libraries/Utilities/useRefEffect.js +1 -1
- package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
- package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
- package/Libraries/promiseRejectionTrackingOptions.js +8 -8
- package/Libraries/vendor/core/ErrorUtils.js +10 -10
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/README.md +56 -18
- package/React/Base/RCTAssert.m +2 -2
- package/React/Base/RCTBridge.h +0 -4
- package/React/Base/RCTBridge.mm +1 -12
- package/React/Base/RCTBundleManager.h +59 -7
- package/React/Base/RCTBundleManager.m +112 -1
- package/React/Base/RCTBundleURLProvider.h +24 -0
- package/React/Base/RCTBundleURLProvider.mm +49 -4
- package/React/Base/RCTConvert.mm +2 -0
- package/React/Base/RCTModuleData.mm +2 -2
- package/React/Base/RCTUtils.h +4 -0
- package/React/Base/RCTUtils.mm +60 -3
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/CoreModulesPlugins.mm +97 -35
- package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
- package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
- package/React/CoreModules/RCTAppState.mm +1 -1
- package/React/CoreModules/RCTDevLoadingView.mm +116 -36
- package/React/CoreModules/RCTDevSettings.h +36 -1
- package/React/CoreModules/RCTDevSettings.mm +44 -8
- package/React/CoreModules/RCTExceptionsManager.mm +5 -2
- package/React/CoreModules/RCTPlatform.mm +3 -2
- package/React/CoreModules/RCTStatusBarManager.mm +1 -1
- package/React/CxxBridge/RCTCxxBridge.mm +1 -2
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/CxxModule/RCTCxxUtils.mm +2 -12
- package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
- package/React/DevSupport/RCTPackagerConnection.h +4 -2
- package/React/DevSupport/RCTPackagerConnection.mm +30 -33
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
- package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
- package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +39 -2
- package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
- package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
- package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
- package/React/Modules/RCTEventEmitter.m +1 -0
- package/React/Views/RCTModalHostView.h +2 -0
- package/React/Views/RCTTVView.m +2 -0
- package/ReactAndroid/api/ReactAndroid.api +14 -73
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle.kts +97 -29
- package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
- package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
- package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
- package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
- package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
- package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
- package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
- package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
- package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
- package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
- package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
- package/ReactCommon/cmake-utils/react-native-flags.cmake +3 -0
- package/ReactCommon/cxxreact/JSBigString.h +14 -5
- package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
- package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
- package/ReactCommon/hermes/React-hermes.podspec +1 -0
- package/ReactCommon/hermes/executor/CMakeLists.txt +0 -4
- package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -0
- package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +0 -4
- package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
- package/ReactCommon/jsi/jsi/jsi.h +73 -0
- package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
- package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
- package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
- package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
- package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
- package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
- package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
- package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
- package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
- package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
- package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
- package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
- package/ReactCommon/react/networking/React-networking.podspec +0 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
- package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
- package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
- package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
- package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
- package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
- package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
- package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +715 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +388 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +191 -2
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +298 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +90 -94
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
- package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
- package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
- package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
- package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
- package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
- package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
- package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
- package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
- package/ReactCommon/react/renderer/core/Props.cpp +23 -8
- package/ReactCommon/react/renderer/core/Props.h +6 -4
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
- package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
- package/ReactCommon/react/renderer/debug/flags.h +3 -2
- package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
- package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
- package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
- package/ReactCommon/react/runtime/CMakeLists.txt +0 -4
- package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
- package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
- package/ReactCommon/react/runtime/ReactInstance.h +5 -1
- package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
- package/ReactCommon/react/runtime/TimerManager.h +7 -12
- package/ReactCommon/react/runtime/hermes/CMakeLists.txt +0 -4
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
- package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
- package/ReactCommon/yoga/yoga/style/Style.h +8 -8
- package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
- package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
- package/flow/HermesInternalType.js +6 -6
- package/flow/bom.js.flow +35 -28
- package/flow/cssom.js.flow +3 -3
- package/flow/dom.js.flow +34 -33
- package/index.js +3 -0
- package/index.js.flow +8 -0
- package/jest/mock.js +2 -2
- package/jest/mockComponent.js +1 -1
- package/jest/setup.js +1 -1
- package/package.json +11 -11
- package/react-native.config.js +0 -17
- package/scripts/cocoapods/new_architecture.rb +7 -1
- package/scripts/cocoapods/spm.rb +28 -10
- package/scripts/cocoapods/utils.rb +4 -4
- package/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js +5 -5
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/scripts/ios-configure-glog.sh +24 -1
- package/scripts/react_native_pods.rb +13 -0
- package/sdks/.hermesv1version +1 -1
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +53 -36
- package/sdks/hermes-engine/hermes-utils.rb +8 -15
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/animated/NativeAnimatedHelper.js +130 -125
- package/src/private/animated/NativeAnimatedValidation.js +7 -4
- package/src/private/animated/createAnimatedPropsHook.js +13 -5
- package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
- package/src/private/components/virtualview/VirtualView.js +16 -9
- package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
- package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
- package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
- package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
- package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
- package/src/private/webapis/dom/events/CustomEvent.js +3 -3
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
- package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
- package/src/private/webapis/html/events/MessageEvent.js +3 -3
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
- package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
- package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
- package/src/private/webapis/performance/Performance.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
- package/src/private/webapis/structuredClone/structuredClone.js +3 -3
- package/src/types/globals.d.ts +30 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -0
- package/third-party-podspecs/glog.podspec +1 -0
- package/React/CxxModule/RCTCxxModule.h +0 -29
- package/React/CxxModule/RCTCxxModule.mm +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
- package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
- package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
- package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
- package/tvosCommands.js +0 -51
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
|
|
8
|
+
#include <react/renderer/animationbackend/AnimationBackendCommitHook.h>
|
|
9
|
+
|
|
10
|
+
namespace facebook::react {
|
|
11
|
+
|
|
12
|
+
AnimationBackendCommitHook::AnimationBackendCommitHook(
|
|
13
|
+
UIManager* uiManager,
|
|
14
|
+
std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry)
|
|
15
|
+
: animatedPropsRegistry_(std::move(animatedPropsRegistry)) {
|
|
16
|
+
uiManager->registerCommitHook(*this);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
RootShadowNode::Unshared AnimationBackendCommitHook::shadowTreeWillCommit(
|
|
20
|
+
const ShadowTree& shadowTree,
|
|
21
|
+
const RootShadowNode::Shared& oldRootShadowNode,
|
|
22
|
+
const RootShadowNode::Unshared& newRootShadowNode,
|
|
23
|
+
const ShadowTreeCommitOptions& commitOptions) noexcept {
|
|
24
|
+
if (commitOptions.source != ShadowTreeCommitSource::React) {
|
|
25
|
+
return newRootShadowNode;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const auto& res = animatedPropsRegistry_->getMap(shadowTree.getSurfaceId());
|
|
29
|
+
auto& surfaceFamilies = res.first;
|
|
30
|
+
auto& updates = res.second;
|
|
31
|
+
|
|
32
|
+
if (surfaceFamilies.empty()) {
|
|
33
|
+
return newRootShadowNode;
|
|
34
|
+
}
|
|
35
|
+
return std::static_pointer_cast<RootShadowNode>(
|
|
36
|
+
newRootShadowNode->cloneMultiple(
|
|
37
|
+
surfaceFamilies,
|
|
38
|
+
[&surfaceFamilies, &updates](
|
|
39
|
+
const ShadowNode& shadowNode,
|
|
40
|
+
const ShadowNodeFragment& fragment) {
|
|
41
|
+
auto newProps = ShadowNodeFragment::propsPlaceholder();
|
|
42
|
+
std::shared_ptr<BaseViewProps> viewProps = nullptr;
|
|
43
|
+
if (surfaceFamilies.contains(&shadowNode.getFamily()) &&
|
|
44
|
+
updates.contains(shadowNode.getTag())) {
|
|
45
|
+
auto& snapshot = updates.at(shadowNode.getTag());
|
|
46
|
+
if (!snapshot->propNames.empty() || snapshot->rawProps) {
|
|
47
|
+
PropsParserContext propsParserContext{
|
|
48
|
+
shadowNode.getSurfaceId(),
|
|
49
|
+
*shadowNode.getContextContainer()};
|
|
50
|
+
if (snapshot->rawProps) {
|
|
51
|
+
newProps = shadowNode.getComponentDescriptor().cloneProps(
|
|
52
|
+
propsParserContext,
|
|
53
|
+
shadowNode.getProps(),
|
|
54
|
+
RawProps(*snapshot->rawProps));
|
|
55
|
+
} else {
|
|
56
|
+
newProps = shadowNode.getComponentDescriptor().cloneProps(
|
|
57
|
+
propsParserContext, shadowNode.getProps(), {});
|
|
58
|
+
}
|
|
59
|
+
viewProps = std::const_pointer_cast<BaseViewProps>(
|
|
60
|
+
std::static_pointer_cast<const BaseViewProps>(newProps));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
for (const auto& propName : snapshot->propNames) {
|
|
64
|
+
updateProp(propName, *viewProps, *snapshot);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return shadowNode.clone(
|
|
68
|
+
{.props = newProps,
|
|
69
|
+
.children = fragment.children,
|
|
70
|
+
.state = shadowNode.getState(),
|
|
71
|
+
.runtimeShadowNodeReference = true});
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <folly/dynamic.h>
|
|
11
|
+
#include <react/renderer/core/ReactPrimitives.h>
|
|
12
|
+
#include <react/renderer/uimanager/UIManager.h>
|
|
13
|
+
#include <react/renderer/uimanager/UIManagerCommitHook.h>
|
|
14
|
+
#include "AnimatedPropsRegistry.h"
|
|
15
|
+
|
|
16
|
+
namespace facebook::react {
|
|
17
|
+
|
|
18
|
+
class AnimationBackendCommitHook : public UIManagerCommitHook {
|
|
19
|
+
std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry_;
|
|
20
|
+
|
|
21
|
+
public:
|
|
22
|
+
AnimationBackendCommitHook(UIManager *uiManager, std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry);
|
|
23
|
+
RootShadowNode::Unshared shadowTreeWillCommit(
|
|
24
|
+
const ShadowTree &shadowTree,
|
|
25
|
+
const RootShadowNode::Shared &oldRootShadowNode,
|
|
26
|
+
const RootShadowNode::Unshared &newRootShadowNode,
|
|
27
|
+
const ShadowTreeCommitOptions &commitOptions) noexcept override;
|
|
28
|
+
void commitHookWasRegistered(const UIManager &uiManager) noexcept override {}
|
|
29
|
+
void commitHookWasUnregistered(const UIManager &uiManager) noexcept override {}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
} // namespace facebook::react
|
|
@@ -39,7 +39,7 @@ static std::string GetMutationInstructionString(
|
|
|
39
39
|
? mutation.newChildShadowView.tag
|
|
40
40
|
: mutation.oldChildShadowView.tag;
|
|
41
41
|
return getDebugName(mutation) + " [" + std::to_string(tag) + "]->[" +
|
|
42
|
-
std::to_string(mutation.
|
|
42
|
+
std::to_string(mutation.parentTag) + "] @" +
|
|
43
43
|
std::to_string(mutation.index);
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -1162,7 +1162,7 @@ void LayoutAnimationKeyFrameManager::queueFinalMutationsForCompletedKeyFrame(
|
|
|
1162
1162
|
const AnimationKeyFrame& keyframe,
|
|
1163
1163
|
ShadowViewMutation::List& mutationsList,
|
|
1164
1164
|
bool interrupted,
|
|
1165
|
-
const std::string&
|
|
1165
|
+
[[maybe_unused]] const std::string& logPrefix) const {
|
|
1166
1166
|
if (!keyframe.finalMutationsForKeyFrame.empty()) {
|
|
1167
1167
|
// TODO: modularize this segment, it is repeated 2x in KeyFrameManager
|
|
1168
1168
|
// as well.
|
|
@@ -71,6 +71,9 @@ struct std::hash<facebook::react::AttributedStringBox> {
|
|
|
71
71
|
return std::hash<facebook::react::AttributedString>()(attributedStringBox.getValue());
|
|
72
72
|
case facebook::react::AttributedStringBox::Mode::OpaquePointer:
|
|
73
73
|
return std::hash<std::shared_ptr<void>>()(attributedStringBox.getOpaquePointer());
|
|
74
|
+
default:
|
|
75
|
+
react_native_assert(false && "Invalid AttributedStringBox::Mode");
|
|
76
|
+
return 0;
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
79
|
};
|
|
@@ -98,7 +98,7 @@ ImageProps::ImageProps(
|
|
|
98
98
|
rawProps,
|
|
99
99
|
"resizeMethod",
|
|
100
100
|
sourceProps.resizeMethod,
|
|
101
|
-
{})),
|
|
101
|
+
{"auto"})),
|
|
102
102
|
resizeMultiplier(
|
|
103
103
|
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
104
104
|
? sourceProps.resizeMultiplier
|
|
@@ -107,7 +107,7 @@ ImageProps::ImageProps(
|
|
|
107
107
|
rawProps,
|
|
108
108
|
"resizeMultiplier",
|
|
109
109
|
sourceProps.resizeMultiplier,
|
|
110
|
-
|
|
110
|
+
1)),
|
|
111
111
|
shouldNotifyLoadEvents(
|
|
112
112
|
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
113
113
|
? sourceProps.shouldNotifyLoadEvents
|
|
@@ -33,8 +33,8 @@ class ImageProps final : public ViewProps {
|
|
|
33
33
|
EdgeInsets capInsets{};
|
|
34
34
|
SharedColor tintColor{};
|
|
35
35
|
std::string internal_analyticTag{};
|
|
36
|
-
std::string resizeMethod{};
|
|
37
|
-
Float resizeMultiplier{};
|
|
36
|
+
std::string resizeMethod{"auto"};
|
|
37
|
+
Float resizeMultiplier{1.f};
|
|
38
38
|
bool shouldNotifyLoadEvents{};
|
|
39
39
|
SharedColor overlayColor{};
|
|
40
40
|
Float fadeDuration{};
|
|
@@ -65,7 +65,12 @@ void ImageShadowNode::updateStateIfNeeded() {
|
|
|
65
65
|
imageProps.fadeDuration,
|
|
66
66
|
imageProps.progressiveRenderingEnabled,
|
|
67
67
|
imageProps.loadingIndicatorSource,
|
|
68
|
-
imageProps.internal_analyticTag
|
|
68
|
+
imageProps.internal_analyticTag,
|
|
69
|
+
Size{
|
|
70
|
+
.width =
|
|
71
|
+
layoutMetrics_.frame.size.width * layoutMetrics_.pointScaleFactor,
|
|
72
|
+
.height = layoutMetrics_.frame.size.height *
|
|
73
|
+
layoutMetrics_.pointScaleFactor}
|
|
69
74
|
#endif
|
|
70
75
|
);
|
|
71
76
|
|
|
@@ -85,7 +90,9 @@ void ImageShadowNode::updateStateIfNeeded() {
|
|
|
85
90
|
(uri.starts_with("content://") || uri.starts_with("file://")));
|
|
86
91
|
// If we would resize but have no dimensions, skip creating the request
|
|
87
92
|
if (shouldResize &&
|
|
88
|
-
(newImageSource.size.width == 0 || newImageSource.size.height == 0
|
|
93
|
+
(newImageSource.size.width == 0 || newImageSource.size.height == 0 ||
|
|
94
|
+
layoutMetrics_.frame.size.width == 0 ||
|
|
95
|
+
layoutMetrics_.frame.size.height == 0)) {
|
|
89
96
|
// Keep the old state - don't create a new image request
|
|
90
97
|
return;
|
|
91
98
|
}
|
|
@@ -163,6 +163,11 @@ inline std::string toString(const ImageResizeMode &value)
|
|
|
163
163
|
return "repeat";
|
|
164
164
|
case ImageResizeMode::None:
|
|
165
165
|
return "none";
|
|
166
|
+
default:
|
|
167
|
+
LOG(ERROR) << "Unsupported ImageResizeMode value: " << (int)value;
|
|
168
|
+
react_native_expect(false);
|
|
169
|
+
// "cover" is default in non-Fabric web and iOS
|
|
170
|
+
return "cover";
|
|
166
171
|
}
|
|
167
172
|
}
|
|
168
173
|
|
|
@@ -524,7 +524,8 @@ void BaseTextProps::appendTextAttributesProps(
|
|
|
524
524
|
: nullptr;
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
-
if (
|
|
527
|
+
if (!floatEquality(
|
|
528
|
+
textAttributes.opacity, oldProps->textAttributes.opacity)) {
|
|
528
529
|
result["opacity"] = textAttributes.opacity;
|
|
529
530
|
}
|
|
530
531
|
|
|
@@ -676,6 +676,10 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
|
|
|
676
676
|
result["removeClippedSubviews"] = removeClippedSubviews;
|
|
677
677
|
}
|
|
678
678
|
|
|
679
|
+
if (collapsableChildren != oldProps->collapsableChildren) {
|
|
680
|
+
result["collapsableChildren"] = collapsableChildren;
|
|
681
|
+
}
|
|
682
|
+
|
|
679
683
|
if (onLayout != oldProps->onLayout) {
|
|
680
684
|
result["onLayout"] = onLayout;
|
|
681
685
|
}
|
|
@@ -961,7 +965,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
|
|
|
961
965
|
|
|
962
966
|
if (accessibilityState != oldProps->accessibilityState) {
|
|
963
967
|
updateAccessibilityStateProp(
|
|
964
|
-
result,
|
|
968
|
+
result, accessibilityState, oldProps->accessibilityState);
|
|
965
969
|
}
|
|
966
970
|
|
|
967
971
|
if (accessibilityLabel != oldProps->accessibilityLabel) {
|
|
@@ -115,12 +115,32 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
|
|
|
115
115
|
rawProps.parse(rawPropsParser_);
|
|
116
116
|
|
|
117
117
|
auto shadowNodeProps = ShadowNodeT::Props(context, rawProps, props);
|
|
118
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
119
|
+
bool fallbackToDynamicRawPropsAccumulation = true;
|
|
120
|
+
if (ReactNativeFeatureFlags::enableExclusivePropsUpdateAndroid() &&
|
|
121
|
+
ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) {
|
|
122
|
+
// When exclusive props update is enabled, we only apply Props 1.5 processing
|
|
123
|
+
// (raw props merging) when Props 2.0 is not available.
|
|
124
|
+
if (ReactNativeFeatureFlags::enablePropsUpdateReconciliationAndroid()) {
|
|
125
|
+
// Cast to base Props reference to safely call virtual method
|
|
126
|
+
const auto &baseProps = static_cast<const Props &>(*shadowNodeProps);
|
|
127
|
+
if (strcmp(ShadowNodeT::Name(), baseProps.getDiffPropsImplementationTarget()) == 0) {
|
|
128
|
+
// Props 2.0 supported for this component, Props 1.5 processing can be skipped
|
|
129
|
+
fallbackToDynamicRawPropsAccumulation = false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (fallbackToDynamicRawPropsAccumulation) {
|
|
134
|
+
ShadowNodeT::initializeDynamicProps(shadowNodeProps, rawProps, props);
|
|
135
|
+
}
|
|
136
|
+
#endif
|
|
118
137
|
// Use the new-style iterator
|
|
119
138
|
// Note that we just check if `Props` has this flag set, no matter
|
|
120
139
|
// the type of ShadowNode; it acts as the single global flag.
|
|
121
140
|
if (ReactNativeFeatureFlags::enableCppPropsIteratorSetter()) {
|
|
122
141
|
#ifdef RN_SERIALIZABLE_STATE
|
|
123
|
-
const auto &dynamic =
|
|
142
|
+
const auto &dynamic =
|
|
143
|
+
fallbackToDynamicRawPropsAccumulation ? shadowNodeProps->rawProps : static_cast<folly::dynamic>(rawProps);
|
|
124
144
|
#else
|
|
125
145
|
const auto &dynamic = static_cast<folly::dynamic>(rawProps);
|
|
126
146
|
#endif
|
|
@@ -78,6 +78,20 @@ class ConcreteShadowNode : public BaseShadowNodeT {
|
|
|
78
78
|
context, baseProps ? static_cast<const PropsT &>(*baseProps) : *defaultSharedProps(), rawProps);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
82
|
+
static void initializeDynamicProps(
|
|
83
|
+
UnsharedConcreteProps props,
|
|
84
|
+
const RawProps &rawProps,
|
|
85
|
+
const Props::Shared &baseProps = nullptr)
|
|
86
|
+
{
|
|
87
|
+
if (baseProps) {
|
|
88
|
+
props->initializeDynamicProps(static_cast<const PropsT &>(*baseProps), rawProps);
|
|
89
|
+
} else {
|
|
90
|
+
props->initializeDynamicProps(*defaultSharedProps(), rawProps);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
#endif
|
|
94
|
+
|
|
81
95
|
static const SharedConcreteProps &defaultSharedProps()
|
|
82
96
|
{
|
|
83
97
|
static const SharedConcreteProps defaultSharedProps = std::make_shared<const PropsT>();
|
|
@@ -8,12 +8,22 @@
|
|
|
8
8
|
#include "DynamicEventPayload.h"
|
|
9
9
|
|
|
10
10
|
#include <jsi/JSIDynamic.h>
|
|
11
|
+
#include <react/renderer/core/DynamicPointerEvent.h>
|
|
11
12
|
|
|
12
13
|
namespace facebook::react {
|
|
13
14
|
|
|
14
15
|
DynamicEventPayload::DynamicEventPayload(folly::dynamic&& payload)
|
|
15
16
|
: payload_(std::move(payload)) {}
|
|
16
17
|
|
|
18
|
+
/* static */ SharedEventPayload DynamicEventPayload::create(
|
|
19
|
+
folly::dynamic&& payload) {
|
|
20
|
+
if (payload.find("pointerId") != payload.items().end()) {
|
|
21
|
+
return std::make_shared<DynamicPointerEvent>(std::move(payload));
|
|
22
|
+
} else {
|
|
23
|
+
return std::make_shared<DynamicEventPayload>(std::move(payload));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
17
27
|
jsi::Value DynamicEventPayload::asJSIValue(jsi::Runtime& runtime) const {
|
|
18
28
|
return jsi::valueFromDynamic(runtime, payload_);
|
|
19
29
|
}
|
|
@@ -12,9 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
namespace facebook::react {
|
|
14
14
|
|
|
15
|
+
/*
|
|
16
|
+
* EventPayload sent from android native via JNI.
|
|
17
|
+
*/
|
|
15
18
|
struct DynamicEventPayload : public EventPayload {
|
|
16
19
|
explicit DynamicEventPayload(folly::dynamic &&payload);
|
|
17
20
|
|
|
21
|
+
static SharedEventPayload create(folly::dynamic &&payload);
|
|
22
|
+
|
|
18
23
|
/*
|
|
19
24
|
* EventPayload implementations
|
|
20
25
|
*/
|
|
@@ -22,7 +27,7 @@ struct DynamicEventPayload : public EventPayload {
|
|
|
22
27
|
EventPayloadType getType() const override;
|
|
23
28
|
std::optional<double> extractValue(const std::vector<std::string> &path) const override;
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
protected:
|
|
26
31
|
folly::dynamic payload_;
|
|
27
32
|
};
|
|
28
33
|
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
|
|
8
|
+
#include "DynamicPointerEvent.h"
|
|
9
|
+
|
|
10
|
+
#include <jsi/JSIDynamic.h>
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
DynamicPointerEvent::DynamicPointerEvent(folly::dynamic&& payload)
|
|
15
|
+
: DynamicEventPayload(std::move(payload)) {
|
|
16
|
+
const auto& hitPath = payload_["hitPathForEventListener"];
|
|
17
|
+
if (hitPath.type() == folly::dynamic::Type::ARRAY) {
|
|
18
|
+
hitPathForEventListener_ = std::vector<Tag>{};
|
|
19
|
+
for (const auto& item : hitPath) {
|
|
20
|
+
hitPathForEventListener_->push_back(static_cast<Tag>(item.asInt()));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const std::optional<std::vector<Tag>>&
|
|
26
|
+
DynamicPointerEvent::getHitPathForEventListener() const {
|
|
27
|
+
return hitPathForEventListener_;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <folly/dynamic.h>
|
|
11
|
+
#include <react/renderer/core/DynamicEventPayload.h>
|
|
12
|
+
#include <react/renderer/core/EventPayload.h>
|
|
13
|
+
#include <react/renderer/core/ReactPrimitives.h>
|
|
14
|
+
|
|
15
|
+
namespace facebook::react {
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Payload of PointerEvent sent from android native via JNI.
|
|
19
|
+
*/
|
|
20
|
+
struct DynamicPointerEvent : public DynamicEventPayload {
|
|
21
|
+
explicit DynamicPointerEvent(folly::dynamic &&payload);
|
|
22
|
+
|
|
23
|
+
const std::optional<std::vector<Tag>> &getHitPathForEventListener() const;
|
|
24
|
+
|
|
25
|
+
private:
|
|
26
|
+
std::optional<std::vector<Tag>> hitPathForEventListener_;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
} // namespace facebook::react
|
|
@@ -10,21 +10,19 @@
|
|
|
10
10
|
#include <cxxreact/TraceSection.h>
|
|
11
11
|
#include <folly/dynamic.h>
|
|
12
12
|
#include <jsi/jsi.h>
|
|
13
|
-
|
|
14
|
-
#include
|
|
15
|
-
#include "RawEvent.h"
|
|
13
|
+
#include <react/renderer/core/DynamicEventPayload.h>
|
|
14
|
+
#include <react/renderer/core/RawEvent.h>
|
|
16
15
|
|
|
17
16
|
namespace facebook::react {
|
|
18
|
-
|
|
19
17
|
static bool hasPrefix(const std::string& str, const std::string& prefix) {
|
|
20
18
|
return str.compare(0, prefix.length(), prefix) == 0;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
// TODO(T29874519): Get rid of "top" prefix once and for all.
|
|
24
22
|
/*
|
|
25
|
-
* Replaces "on" with "top" if present. Or capitalizes the first letter and
|
|
26
|
-
* "top" prefix. E.g. "eventName" becomes "topEventName", "onEventName"
|
|
27
|
-
* becomes "topEventName".
|
|
23
|
+
* Replaces "on" with "top" if present. Or capitalizes the first letter and
|
|
24
|
+
* adds "top" prefix. E.g. "eventName" becomes "topEventName", "onEventName"
|
|
25
|
+
* also becomes "topEventName".
|
|
28
26
|
*/
|
|
29
27
|
/* static */ std::string EventEmitter::normalizeEventType(std::string type) {
|
|
30
28
|
auto prefixedType = std::move(type);
|
|
@@ -61,7 +59,7 @@ void EventEmitter::dispatchEvent(
|
|
|
61
59
|
RawEvent::Category category) const {
|
|
62
60
|
dispatchEvent(
|
|
63
61
|
std::move(type),
|
|
64
|
-
|
|
62
|
+
DynamicEventPayload::create(std::move(payload)),
|
|
65
63
|
category);
|
|
66
64
|
}
|
|
67
65
|
|
|
@@ -69,8 +67,7 @@ void EventEmitter::dispatchUniqueEvent(
|
|
|
69
67
|
std::string type,
|
|
70
68
|
folly::dynamic&& payload) const {
|
|
71
69
|
dispatchUniqueEvent(
|
|
72
|
-
std::move(type),
|
|
73
|
-
std::make_shared<DynamicEventPayload>(std::move(payload)));
|
|
70
|
+
std::move(type), DynamicEventPayload::create(std::move(payload)));
|
|
74
71
|
}
|
|
75
72
|
|
|
76
73
|
void EventEmitter::dispatchEvent(
|
|
@@ -139,10 +136,10 @@ void EventEmitter::setEnabled(bool enabled) const {
|
|
|
139
136
|
}
|
|
140
137
|
}
|
|
141
138
|
|
|
142
|
-
// Note: Initially, the state of `eventTarget_` and the value
|
|
143
|
-
// is mismatched intentionally (it's `non-null` and `0`
|
|
144
|
-
// this to support an initial nebula state where the
|
|
145
|
-
// retained without any associated mounted node.
|
|
139
|
+
// Note: Initially, the state of `eventTarget_` and the value
|
|
140
|
+
// `enableCounter_` is mismatched intentionally (it's `non-null` and `0`
|
|
141
|
+
// accordingly). We need this to support an initial nebula state where the
|
|
142
|
+
// event target must be retained without any associated mounted node.
|
|
146
143
|
bool shouldBeRetained = enableCounter_ > 0;
|
|
147
144
|
if (shouldBeRetained != (eventTarget_ != nullptr)) {
|
|
148
145
|
if (!shouldBeRetained) {
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
#include
|
|
8
|
+
#include "EventQueueProcessor.h"
|
|
9
|
+
|
|
9
10
|
#include <logger/react_native_log.h>
|
|
10
11
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
12
|
+
|
|
11
13
|
#include "EventEmitter.h"
|
|
12
14
|
#include "EventLogger.h"
|
|
13
|
-
#include "EventQueue.h"
|
|
14
|
-
#include "ShadowNodeFamily.h"
|
|
15
15
|
|
|
16
16
|
namespace facebook::react {
|
|
17
17
|
|
|
@@ -33,14 +33,8 @@ void Props::initialize(
|
|
|
33
33
|
? sourceProps.nativeId
|
|
34
34
|
: convertRawProp(context, rawProps, "nativeID", sourceProps.nativeId, {});
|
|
35
35
|
#ifdef RN_SERIALIZABLE_STATE
|
|
36
|
-
if (ReactNativeFeatureFlags::
|
|
37
|
-
|
|
38
|
-
auto newRawProps = rawProps.toDynamic(filterObjectKeys);
|
|
39
|
-
auto mergedRawProps = mergeDynamicProps(
|
|
40
|
-
oldRawProps, newRawProps, NullValueStrategy::Override);
|
|
41
|
-
this->rawProps = mergedRawProps;
|
|
42
|
-
} else {
|
|
43
|
-
this->rawProps = rawProps.toDynamic(filterObjectKeys);
|
|
36
|
+
if (!ReactNativeFeatureFlags::enableExclusivePropsUpdateAndroid()) {
|
|
37
|
+
initializeDynamicProps(sourceProps, rawProps, filterObjectKeys);
|
|
44
38
|
}
|
|
45
39
|
#endif
|
|
46
40
|
}
|
|
@@ -57,6 +51,27 @@ void Props::setProp(
|
|
|
57
51
|
}
|
|
58
52
|
}
|
|
59
53
|
|
|
54
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
55
|
+
void Props::initializeDynamicProps(
|
|
56
|
+
const Props& sourceProps,
|
|
57
|
+
const RawProps& rawProps,
|
|
58
|
+
const std::function<bool(const std::string&)>& filterObjectKeys) {
|
|
59
|
+
if (ReactNativeFeatureFlags::enableAccumulatedUpdatesInRawPropsAndroid()) {
|
|
60
|
+
auto& oldRawProps = sourceProps.rawProps;
|
|
61
|
+
auto newRawProps = rawProps.toDynamic(filterObjectKeys);
|
|
62
|
+
auto mergedRawProps = mergeDynamicProps(
|
|
63
|
+
oldRawProps, newRawProps, NullValueStrategy::Override);
|
|
64
|
+
this->rawProps = mergedRawProps;
|
|
65
|
+
} else {
|
|
66
|
+
this->rawProps = rawProps.toDynamic(filterObjectKeys);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
ComponentName Props::getDiffPropsImplementationTarget() const {
|
|
71
|
+
return "";
|
|
72
|
+
}
|
|
73
|
+
#endif
|
|
74
|
+
|
|
60
75
|
#pragma mark - DebugStringConvertible
|
|
61
76
|
|
|
62
77
|
#if RN_DEBUG_STRING_CONVERTIBLE
|
|
@@ -62,10 +62,12 @@ class Props : public virtual Sealable, public virtual DebugStringConvertible {
|
|
|
62
62
|
#ifdef RN_SERIALIZABLE_STATE
|
|
63
63
|
folly::dynamic rawProps = folly::dynamic::object();
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
void initializeDynamicProps(
|
|
66
|
+
const Props &sourceProps,
|
|
67
|
+
const RawProps &rawProps,
|
|
68
|
+
[[maybe_unused]] const std::function<bool(const std::string &)> &filterObjectKeys = nullptr);
|
|
69
|
+
|
|
70
|
+
virtual ComponentName getDiffPropsImplementationTarget() const;
|
|
69
71
|
|
|
70
72
|
virtual folly::dynamic getDiffProps(const Props *prevProps) const
|
|
71
73
|
{
|
|
@@ -412,7 +412,6 @@ namespace {
|
|
|
412
412
|
|
|
413
413
|
std::shared_ptr<ShadowNode> cloneMultipleRecursive(
|
|
414
414
|
const ShadowNode& shadowNode,
|
|
415
|
-
const std::unordered_set<const ShadowNodeFamily*>& familiesToUpdate,
|
|
416
415
|
const std::unordered_map<const ShadowNodeFamily*, int>& childrenCount,
|
|
417
416
|
const std::function<std::shared_ptr<
|
|
418
417
|
ShadowNode>(const ShadowNode&, const ShadowNodeFragment&)>& callback) {
|
|
@@ -430,16 +429,12 @@ std::shared_ptr<ShadowNode> cloneMultipleRecursive(
|
|
|
430
429
|
std::make_shared<std::vector<std::shared_ptr<const ShadowNode>>>(
|
|
431
430
|
children);
|
|
432
431
|
}
|
|
433
|
-
(*newChildren)[i] =
|
|
434
|
-
*children[i],
|
|
432
|
+
(*newChildren)[i] =
|
|
433
|
+
cloneMultipleRecursive(*children[i], childrenCount, callback);
|
|
435
434
|
}
|
|
436
435
|
}
|
|
437
436
|
|
|
438
|
-
|
|
439
|
-
if (familiesToUpdate.contains(family)) {
|
|
440
|
-
return callback(shadowNode, fragment);
|
|
441
|
-
}
|
|
442
|
-
return shadowNode.clone(fragment);
|
|
437
|
+
return callback(shadowNode, {.children = newChildren});
|
|
443
438
|
}
|
|
444
439
|
|
|
445
440
|
} // namespace
|
|
@@ -479,8 +474,7 @@ std::shared_ptr<ShadowNode> ShadowNode::cloneMultiple(
|
|
|
479
474
|
return nullptr;
|
|
480
475
|
}
|
|
481
476
|
|
|
482
|
-
return cloneMultipleRecursive(
|
|
483
|
-
*this, familiesToUpdate, childrenCount, callback);
|
|
477
|
+
return cloneMultipleRecursive(*this, childrenCount, callback);
|
|
484
478
|
}
|
|
485
479
|
|
|
486
480
|
#pragma mark - DebugStringConvertible
|
|
@@ -342,3 +342,35 @@ TEST_F(ShadowNodeTest, cloneMultiple) {
|
|
|
342
342
|
EXPECT_EQ(newNodeABA->getTag(), nodeABA_->getTag());
|
|
343
343
|
EXPECT_EQ(newNodeABA.get(), nodeABA_.get());
|
|
344
344
|
}
|
|
345
|
+
|
|
346
|
+
TEST_F(ShadowNodeTest, cloneMultipleWithSingleFamily) {
|
|
347
|
+
auto newProps = std::make_shared<const TestProps>();
|
|
348
|
+
auto newRoot = nodeA_->cloneMultiple(
|
|
349
|
+
{&nodeAB_->getFamily()},
|
|
350
|
+
[&](const ShadowNode& oldShadowNode, const ShadowNodeFragment& fragment) {
|
|
351
|
+
return oldShadowNode.clone({
|
|
352
|
+
.props = newProps,
|
|
353
|
+
.children = fragment.children,
|
|
354
|
+
.state = fragment.state,
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
EXPECT_EQ(newRoot->getTag(), nodeA_->getTag());
|
|
359
|
+
// The callback is called for each cloned node, so the root props are also
|
|
360
|
+
// updated
|
|
361
|
+
EXPECT_EQ(newRoot->getProps(), newProps);
|
|
362
|
+
|
|
363
|
+
auto newNodeAA = newRoot->getChildren()[0];
|
|
364
|
+
EXPECT_EQ(newNodeAA->getTag(), nodeAA_->getTag());
|
|
365
|
+
EXPECT_EQ(newNodeAA->getProps(), nodeAA_->getProps());
|
|
366
|
+
// AA was cloned when its parent was cloned as it was shared
|
|
367
|
+
EXPECT_NE(newNodeAA.get(), nodeAA_.get());
|
|
368
|
+
|
|
369
|
+
auto newNodeAB = newRoot->getChildren()[1];
|
|
370
|
+
EXPECT_EQ(newNodeAB->getTag(), nodeAB_->getTag());
|
|
371
|
+
EXPECT_EQ(newNodeAB->getProps(), newProps);
|
|
372
|
+
|
|
373
|
+
auto newNodeABA = newNodeAB->getChildren()[0];
|
|
374
|
+
EXPECT_EQ(newNodeABA->getTag(), nodeABA_->getTag());
|
|
375
|
+
EXPECT_EQ(newNodeABA.get(), nodeABA_.get());
|
|
376
|
+
}
|
|
@@ -277,7 +277,14 @@ struct CSSComponentValueVisitorDispatcher {
|
|
|
277
277
|
return {};
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
+
#ifdef __clang__
|
|
281
|
+
#pragma clang diagnostic push
|
|
282
|
+
#pragma clang diagnostic ignored "-Wswitch-enum"
|
|
283
|
+
#endif
|
|
280
284
|
switch (parser.peek().type()) {
|
|
285
|
+
#ifdef __clang__
|
|
286
|
+
#pragma clang diagnostic pop
|
|
287
|
+
#endif
|
|
281
288
|
case CSSTokenType::Function:
|
|
282
289
|
if (auto ret = visitFunction(visitors...)) {
|
|
283
290
|
return *ret;
|
|
@@ -15,3 +15,10 @@ target_include_directories(react_renderer_debug PUBLIC ${REACT_COMMON_DIR})
|
|
|
15
15
|
target_link_libraries(react_renderer_debug folly_runtime react_debug)
|
|
16
16
|
target_compile_reactnative_options(react_renderer_debug PRIVATE)
|
|
17
17
|
target_compile_options(react_renderer_debug PRIVATE -Wpedantic)
|
|
18
|
+
|
|
19
|
+
# Enable debug string convertible for Debug builds or when explicitly requested
|
|
20
|
+
# This allows getRenderedOutput() to include props in tests
|
|
21
|
+
# Set RN_ENABLE_DEBUG_STRING_CONVERTIBLE=ON to enable for Release builds
|
|
22
|
+
if(${CMAKE_BUILD_TYPE} MATCHES Debug OR RN_ENABLE_DEBUG_STRING_CONVERTIBLE)
|
|
23
|
+
target_compile_definitions(react_renderer_debug PUBLIC RN_ENABLE_DEBUG_STRING_CONVERTIBLE)
|
|
24
|
+
endif()
|