Skip to content

Commit 73a76dd

Browse files
rubennortemeta-codesync[bot]
authored andcommitted
Export the native Fabric UI manager for React (#58398)
Summary: Pull Request resolved: #58398 Expose the native Fabric UI manager through `react-native/react-private-interface` so the React renderer can consume it without reading the global directly. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D119165837 fbshipit-source-id: a41860ef4962c9a71b8052db29f7ff86529db18e
1 parent 29533e0 commit 73a76dd

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

packages/react-native/src/react-private-interface.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import typeof ExceptionsManager from '../Libraries/Core/ExceptionsManager';
2929
import typeof RawEventEmitter from '../Libraries/Core/RawEventEmitter';
3030
import typeof ReactFiberErrorDialog from '../Libraries/Core/ReactFiberErrorDialog';
3131
import typeof RCTEventEmitter from '../Libraries/EventEmitter/RCTEventEmitter';
32+
import type {Spec as FabricUIManager} from '../Libraries/ReactNative/FabricUIManager';
3233
import typeof {
3334
createPublicInstance,
3435
createPublicRootInstance,
@@ -82,6 +83,9 @@ module.exports = {
8283
get UIManager(): UIManager {
8384
return require('../Libraries/ReactNative/UIManager').default;
8485
},
86+
get fabricUIManager(): ?FabricUIManager {
87+
return require('../Libraries/ReactNative/FabricUIManager').getFabricUIManager();
88+
},
8589
// TODO: Remove when React has migrated to `createAttributePayload` and `diffAttributePayloads`
8690
get deepDiffer(): deepDiffer {
8791
return require('../Libraries/Utilities/differ/deepDiffer').default;

packages/react-native/src/react-private-interface.js.flow

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
// IMPORTANT: Keep this file in sync with react-private-interface.js.
1515
// ----------------------------------------------------------------------------
1616

17+
import type {Spec as FabricUIManager} from '../Libraries/ReactNative/FabricUIManager';
1718
import typeof {createPublicTextInstance as createPublicTextInstanceT} from '../Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
1819

1920
export type {PublicRootInstance} from '../Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance';
@@ -27,6 +28,7 @@ export * as ReactNativeFeatureFlags from './private/featureflags/ReactNativeFeat
2728
export * as ReactNativeViewConfigRegistry from '../Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
2829
export {default as TextInputState} from '../Libraries/Components/TextInput/TextInputState';
2930
export {default as UIManager} from '../Libraries/ReactNative/UIManager';
31+
declare export const fabricUIManager: ?FabricUIManager;
3032
export {default as deepDiffer} from '../Libraries/Utilities/differ/deepDiffer';
3133
export {default as deepFreezeAndThrowOnMutationInDev} from '../Libraries/Utilities/deepFreezeAndThrowOnMutationInDev';
3234
export {default as flattenStyle} from '../Libraries/StyleSheet/flattenStyle';

0 commit comments

Comments
 (0)