From 1bd6e102d69b50eb3d68898cf741885fd7220f54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Thu, 30 Jan 2025 05:57:16 -0800 Subject: [PATCH] Expose new method in Fabric renderer to access root instance from root tag (#49011) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Changelog: [internal] This exposes the new `getPublicInstanceFromRoot` method from the React renderer in our RN façades, preparing for the new change to implement the document interface in RN. Reviewed By: javache Differential Revision: D68767143 --- .../Libraries/ReactNative/RendererImplementation.js | 9 +++++++++ .../Libraries/Renderer/shims/ReactNativeTypes.js | 3 +++ .../__tests__/__snapshots__/public-api-test.js.snap | 1 + 3 files changed, 13 insertions(+) diff --git a/packages/react-native/Libraries/ReactNative/RendererImplementation.js b/packages/react-native/Libraries/ReactNative/RendererImplementation.js index e2d25090794b94..7ff71985c03987 100644 --- a/packages/react-native/Libraries/ReactNative/RendererImplementation.js +++ b/packages/react-native/Libraries/ReactNative/RendererImplementation.js @@ -162,3 +162,12 @@ export function getPublicInstanceFromInternalInstanceHandle( internalInstanceHandle, ); } + +export function getPublicInstanceFromRootTag( + rootTag: number, +): mixed /*PublicRootInstance | null*/ { + // This is only available in Fabric + return require('../Renderer/shims/ReactFabric').default.getPublicInstanceFromRootTag( + rootTag, + ); +} diff --git a/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js b/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js index 7a3c7410ab664a..f7ed3267d017bb 100644 --- a/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js +++ b/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js @@ -262,6 +262,9 @@ export type ReactFabricType = { getPublicInstanceFromInternalInstanceHandle( internalInstanceHandle: InternalInstanceHandle, ): PublicInstance | PublicTextInstance | null, + getPublicInstanceFromRootTag( + rootTag: number, + ): PublicRootInstance | null, ... }; diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index 6221e95f846176..009c70592fe783 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -7621,6 +7621,7 @@ declare export function getNodeFromInternalInstanceHandle( declare export function getPublicInstanceFromInternalInstanceHandle( internalInstanceHandle: InternalInstanceHandle ): mixed; +declare export function getPublicInstanceFromRootTag(rootTag: number): mixed; " `;