From a0fdad546b69050db634db80bcb1e3748426c427 Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:10:22 -0400 Subject: [PATCH 1/8] [flow] Eliminate the last React.Element type use in react codebase Flow will eventually remove the specific `React.Element` type. For most of the code, it can be replaced with `React.MixedElement` or `React.Node`. When specific react elements are required, it needs to be replaced with either `React$Element` which will trigger a `internal-type` lint error that can be disabled project-wide, or use `ExactReactElement_DEPRECATED`. Fortunately in this case, this one can be replaced with just `React.MixedElement`. --- packages/react-native-renderer/src/ReactNativeRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native-renderer/src/ReactNativeRenderer.js b/packages/react-native-renderer/src/ReactNativeRenderer.js index 983079fd0eeb..4ec5ab2c5852 100644 --- a/packages/react-native-renderer/src/ReactNativeRenderer.js +++ b/packages/react-native-renderer/src/ReactNativeRenderer.js @@ -8,7 +8,7 @@ */ import type {ReactPortal, ReactNodeList} from 'shared/ReactTypes'; -import type {ElementRef, Element, ElementType} from 'react'; +import type {ElementRef, ElementType, MixedElement} from 'react'; import type {FiberRoot} from 'react-reconciler/src/ReactInternalTypes'; import type {RenderRootOptions} from './ReactNativeTypes'; @@ -117,7 +117,7 @@ function nativeOnCaughtError( } function render( - element: Element, + element: MixedElement, containerTag: number, callback: ?() => void, options: ?RenderRootOptions, From e1bb5efc1a61a799b0256d4f1167d4b586bcf21a Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:15:36 -0400 Subject: [PATCH 2/8] Update index.js --- packages/react/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react/index.js b/packages/react/index.js index bad2c40e6c3d..c4df326bf8d4 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -15,6 +15,7 @@ export type AbstractComponent< > = React$AbstractComponent; export type ElementType = React$ElementType; export type Element<+C> = React$Element; +export type MixedElement<+C> = React$MixedElement; export type Key = React$Key; export type Ref = React$Ref; export type Node = React$Node; From 8786a6437e666e2955b8009109df7465e054cf4f Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:16:15 -0400 Subject: [PATCH 3/8] Update index.js --- packages/react/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react/index.js b/packages/react/index.js index c4df326bf8d4..f675499214a6 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -14,7 +14,6 @@ export type AbstractComponent< +Instance = mixed, > = React$AbstractComponent; export type ElementType = React$ElementType; -export type Element<+C> = React$Element; export type MixedElement<+C> = React$MixedElement; export type Key = React$Key; export type Ref = React$Ref; From ca4299761bd345715fc9d23b50ccb2a3f3909630 Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:18:20 -0400 Subject: [PATCH 4/8] Update index.js --- packages/react/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/index.js b/packages/react/index.js index f675499214a6..2fa11f3a1e23 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -14,7 +14,7 @@ export type AbstractComponent< +Instance = mixed, > = React$AbstractComponent; export type ElementType = React$ElementType; -export type MixedElement<+C> = React$MixedElement; +export type MixedElement = React$MixedElement; export type Key = React$Key; export type Ref = React$Ref; export type Node = React$Node; From 325e08562aac35c82f31315234f945294fbf10db Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:23:24 -0400 Subject: [PATCH 5/8] Update index.js --- packages/react/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/index.js b/packages/react/index.js index 2fa11f3a1e23..965a54468da8 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -14,7 +14,7 @@ export type AbstractComponent< +Instance = mixed, > = React$AbstractComponent; export type ElementType = React$ElementType; -export type MixedElement = React$MixedElement; +export type MixedElement = React$Element; export type Key = React$Key; export type Ref = React$Ref; export type Node = React$Node; From d40c4620cc8bbc1add8e1ba59e208f644f2def60 Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:27:43 -0400 Subject: [PATCH 6/8] Update index.js --- packages/react/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react/index.js b/packages/react/index.js index 965a54468da8..19f256fd73b5 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -14,6 +14,7 @@ export type AbstractComponent< +Instance = mixed, > = React$AbstractComponent; export type ElementType = React$ElementType; +export type Element<+C> = React$Element; export type MixedElement = React$Element; export type Key = React$Key; export type Ref = React$Ref; From 22ca6ed5bffc269d6117bcf1b8558263fa59eb5f Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 11:29:17 -0400 Subject: [PATCH 7/8] Update ReactNativeTypes.js --- packages/react-native-renderer/src/ReactNativeTypes.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native-renderer/src/ReactNativeTypes.js b/packages/react-native-renderer/src/ReactNativeTypes.js index 917e3988c7b3..c4ca7026664a 100644 --- a/packages/react-native-renderer/src/ReactNativeTypes.js +++ b/packages/react-native-renderer/src/ReactNativeTypes.js @@ -9,7 +9,7 @@ * @flow strict */ -import type {ElementRef, ElementType, Element, AbstractComponent} from 'react'; +import type {ElementRef, ElementType, MixedElement, AbstractComponent} from 'react'; export type MeasureOnSuccessCallback = ( x: number, @@ -221,7 +221,7 @@ export type ReactNativeType = { eventType: string, ): void, render( - element: Element, + element: MixedElement, containerTag: number, callback: ?() => void, options: ?RenderRootOptions, @@ -256,7 +256,7 @@ export type ReactFabricType = { eventType: string, ): void, render( - element: Element, + element: MixedElement, containerTag: number, callback: ?() => void, concurrentRoot: ?boolean, From c41e63beff667000fbafc7b98c2bc2fdc91e7a2f Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Fri, 16 Aug 2024 15:36:03 +0000 Subject: [PATCH 8/8] prettier --- packages/react-native-renderer/src/ReactNativeTypes.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-native-renderer/src/ReactNativeTypes.js b/packages/react-native-renderer/src/ReactNativeTypes.js index c4ca7026664a..210366842383 100644 --- a/packages/react-native-renderer/src/ReactNativeTypes.js +++ b/packages/react-native-renderer/src/ReactNativeTypes.js @@ -9,7 +9,12 @@ * @flow strict */ -import type {ElementRef, ElementType, MixedElement, AbstractComponent} from 'react'; +import type { + ElementRef, + ElementType, + MixedElement, + AbstractComponent, +} from 'react'; export type MeasureOnSuccessCallback = ( x: number,