From 6205aad81ef8154a106fa253a1f4b00aee568650 Mon Sep 17 00:00:00 2001 From: "SamChou19815 (Meta Employee)" Date: Mon, 21 Oct 2024 19:52:01 -0700 Subject: [PATCH] Eliminate usage of more than 1-arg `React.AbstractComponent` in React codebase (#31314) Summary: ## Summary In order to adopt react 19's ref-as-prop model, Flow needs to eliminate all the places where they are treated differently. `React.AbstractComponent` is the worst example of this, and we need to eliminate it. This PR eliminates them from the react repo, and only keeps the one that has 1 argument of props. ## How did you test this change? yarn flow DiffTrain build for [45804af18d589fd2c181f3b020f07661c46b73ea](https://github.com/facebook/react/commit/45804af18d589fd2c181f3b020f07661c46b73ea) Reviewed By: jbrown215 Differential Revision: D64725736 Pulled By: SamChou19815 fbshipit-source-id: c9f6f316c95d12a9ae98926faba111395b550ccf --- .../Renderer/shims/ReactNativeTypes.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js b/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js index 31f6739629b..26ab3007d02 100644 --- a/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js +++ b/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js @@ -7,15 +7,10 @@ * @noformat * @nolint * @flow strict - * @generated SignedSource<<448b89d0a61a392d9c1eb921f7d51d37>> + * @generated SignedSource<<9cf3e28d6ca0299bc0bb5caa75b19556>> */ -import type { - ElementRef, - ElementType, - MixedElement, - AbstractComponent, -} from 'react'; +import type {ElementRef, ElementType, MixedElement} from 'react'; export type MeasureOnSuccessCallback = ( x: number, @@ -138,7 +133,9 @@ declare const ensureNativeMethodsAreSynced: NativeMethods; (ensureNativeMethodsAreSynced: INativeMethods); export type HostInstance = NativeMethods; -export type HostComponent = AbstractComponent; +/*:: +export type HostComponent = component(ref: React$RefSetter, ...Config); +*/ type InspectorDataProps = $ReadOnly<{ [propName: string]: string, @@ -209,8 +206,10 @@ export type ReactNativeType = { componentOrHandle: ?(ElementRef | number), ): ?number, isChildPublicInstance( - parent: PublicInstance | HostComponent, - child: PublicInstance | HostComponent, + // eslint-disable-next-line no-undef + parent: PublicInstance | HostComponent, + // eslint-disable-next-line no-undef + child: PublicInstance | HostComponent, ): boolean, dispatchCommand( handle: HostInstance,