From 534a0499c7b186e1e26ea4c17696d474d72613fb Mon Sep 17 00:00:00 2001 From: Oleksandr Melnykov Date: Tue, 14 Mar 2023 21:28:00 -0700 Subject: [PATCH] Back out "Remove direct references to the global and untyped nativeFabricUIManager" Summary: Changelog: [Internal][Fixed] - Reverting the React sync because it's causing some JS errors. Original commit changeset: d8300acb5dab Original Phabricator Diff: D44029301 Reviewed By: kassens Differential Revision: D44069428 fbshipit-source-id: cad6a936ebffaa2672a96460ab2c171b30db2def --- Libraries/LayoutAnimation/LayoutAnimation.js | 5 +++-- Libraries/ReactNative/UIManager.js | 16 +++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Libraries/LayoutAnimation/LayoutAnimation.js b/Libraries/LayoutAnimation/LayoutAnimation.js index 3d5aac06be..a8c20e3960 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 7555f0a4a2..ac28590f23 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) {