diff --git a/Libraries/LayoutAnimation/LayoutAnimation.js b/Libraries/LayoutAnimation/LayoutAnimation.js index 3d5aac06be1..a8c20e3960c 100644 --- a/Libraries/LayoutAnimation/LayoutAnimation.js +++ b/Libraries/LayoutAnimation/LayoutAnimation.js @@ -10,13 +10,13 @@ 'use strict'; +import type {Spec as FabricUIManagerSpec} from '../ReactNative/FabricUIManager'; import type { LayoutAnimationConfig as LayoutAnimationConfig_, LayoutAnimationProperty, LayoutAnimationType, } from '../Renderer/shims/ReactNativeTypes'; -import FabricUIManager from '../ReactNative/FabricUIManager'; import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags'; import Platform from '../Utilities/Platform'; @@ -77,8 +77,9 @@ function configureNext( // In Fabric, LayoutAnimations are unconditionally enabled for Android, and // conditionally enabled on iOS (pending fully shipping; this is a temporary state). + const FabricUIManager: FabricUIManagerSpec = global?.nativeFabricUIManager; if (FabricUIManager?.configureNextLayoutAnimation) { - FabricUIManager.configureNextLayoutAnimation( + global?.nativeFabricUIManager?.configureNextLayoutAnimation( config, onAnimationComplete, onAnimationDidFail ?? diff --git a/Libraries/ReactNative/UIManager.js b/Libraries/ReactNative/UIManager.js index 7555f0a4a2c..ac28590f23d 100644 --- a/Libraries/ReactNative/UIManager.js +++ b/Libraries/ReactNative/UIManager.js @@ -9,11 +9,9 @@ */ import type {RootTag} from '../Types/RootTagTypes'; +import type {Spec as FabricUIManagerSpec} from './FabricUIManager'; import type {Spec} from './NativeUIManager'; -import MaybeFabricUIManager from './FabricUIManager'; -import nullthrows from 'nullthrows'; - export interface UIManagerJSInterface extends Spec { +getViewManagerConfig: (viewManagerName: string) => Object; +hasViewManagerConfig: (viewManagerName: string) => boolean; @@ -59,7 +57,8 @@ const UIManager = { ) => void, ): void { if (isFabricReactTag(reactTag)) { - const FabricUIManager = nullthrows(MaybeFabricUIManager); + const FabricUIManager: FabricUIManagerSpec = + global?.nativeFabricUIManager; const shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); if (shadowNode) { @@ -85,7 +84,8 @@ const UIManager = { ) => void, ): void { if (isFabricReactTag(reactTag)) { - const FabricUIManager = nullthrows(MaybeFabricUIManager); + const FabricUIManager: FabricUIManagerSpec = + global?.nativeFabricUIManager; const shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); if (shadowNode) { @@ -113,7 +113,8 @@ const UIManager = { ) => void, ): void { if (isFabricReactTag(reactTag)) { - const FabricUIManager = nullthrows(MaybeFabricUIManager); + const FabricUIManager: FabricUIManagerSpec = + global?.nativeFabricUIManager; const shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); const ancestorShadowNode = @@ -154,7 +155,8 @@ const UIManager = { console.warn( 'RCTUIManager.measureLayoutRelativeToParent method is deprecated and it will not be implemented in newer versions of RN (Fabric) - T47686450', ); - const FabricUIManager = nullthrows(MaybeFabricUIManager); + const FabricUIManager: FabricUIManagerSpec = + global?.nativeFabricUIManager; const shadowNode = FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag); if (shadowNode) {