From cf5cb8cac7f9170f34811ec107ed12aaa48a90a1 Mon Sep 17 00:00:00 2001 From: Rick Hanlon Date: Wed, 3 Sep 2025 11:17:48 -0400 Subject: [PATCH] [flags] enable opt-in for enableDefaultTransitionIndicator --- packages/react-dom/src/client/ReactDOMRootFB.js | 4 +++- packages/react-native-renderer/src/ReactFabric.js | 13 +++++++++++-- .../react-native-renderer/src/ReactNativeTypes.js | 1 + .../shared/forks/ReactFeatureFlags.native-fb.js | 2 +- .../ReactFeatureFlags.test-renderer.native-fb.js | 2 +- .../forks/ReactFeatureFlags.test-renderer.www.js | 2 +- packages/shared/forks/ReactFeatureFlags.www.js | 2 +- 7 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/react-dom/src/client/ReactDOMRootFB.js b/packages/react-dom/src/client/ReactDOMRootFB.js index 757c3d69eb5..3a0205fe799 100644 --- a/packages/react-dom/src/client/ReactDOMRootFB.js +++ b/packages/react-dom/src/client/ReactDOMRootFB.js @@ -126,6 +126,7 @@ function wwwOnCaughtError( defaultOnCaughtError(error, errorInfo); } +const noopOnDefaultTransitionIndicator = noop; export function createRoot( container: Element | Document | DocumentFragment, @@ -137,6 +138,7 @@ export function createRoot( ({ onUncaughtError: wwwOnUncaughtError, onCaughtError: wwwOnCaughtError, + onDefaultTransitionIndicator: noopOnDefaultTransitionIndicator, }: any), options, ), @@ -155,6 +157,7 @@ export function hydrateRoot( ({ onUncaughtError: wwwOnUncaughtError, onCaughtError: wwwOnCaughtError, + onDefaultTransitionIndicator: noopOnDefaultTransitionIndicator, }: any), options, ), @@ -211,7 +214,6 @@ function getReactRootElementInContainer(container: any) { // This isn't reachable because onRecoverableError isn't called in the // legacy API. const noopOnRecoverableError = noop; -const noopOnDefaultTransitionIndicator = noop; function legacyCreateRootFromDOMContainer( container: Container, diff --git a/packages/react-native-renderer/src/ReactFabric.js b/packages/react-native-renderer/src/ReactFabric.js index 04590023bd7..30c32433b3b 100644 --- a/packages/react-native-renderer/src/ReactFabric.js +++ b/packages/react-native-renderer/src/ReactFabric.js @@ -46,7 +46,10 @@ import { createPublicRootInstance, type PublicRootInstance, } from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface'; -import {disableLegacyMode} from 'shared/ReactFeatureFlags'; +import { + disableLegacyMode, + enableDefaultTransitionIndicator, +} from 'shared/ReactFeatureFlags'; if (typeof ReactFiberErrorDialog.showErrorDialog !== 'function') { throw new Error( @@ -132,6 +135,12 @@ function render( if (options && options.onRecoverableError !== undefined) { onRecoverableError = options.onRecoverableError; } + let onDefaultTransitionIndicator = nativeOnDefaultTransitionIndicator; + if (enableDefaultTransitionIndicator) { + if (options && options.onDefaultTransitionIndicator !== undefined) { + onDefaultTransitionIndicator = options.onDefaultTransitionIndicator; + } + } const publicRootInstance = createPublicRootInstance(containerTag); const rootInstance = { @@ -151,7 +160,7 @@ function render( onUncaughtError, onCaughtError, onRecoverableError, - nativeOnDefaultTransitionIndicator, + onDefaultTransitionIndicator, null, ); diff --git a/packages/react-native-renderer/src/ReactNativeTypes.js b/packages/react-native-renderer/src/ReactNativeTypes.js index 0b07ac7a0d3..cfd026bc7d0 100644 --- a/packages/react-native-renderer/src/ReactNativeTypes.js +++ b/packages/react-native-renderer/src/ReactNativeTypes.js @@ -134,6 +134,7 @@ export type RenderRootOptions = { error: mixed, errorInfo: {+componentStack?: ?string}, ) => void, + onDefaultTransitionIndicator?: () => void | (() => void), }; /** diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 88f434fa855..83410ee5ce6 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -79,7 +79,7 @@ export const enableSuspenseyImages: boolean = false; export const enableFizzBlockingRender: boolean = true; export const enableSrcObject: boolean = false; export const enableHydrationChangeEvent: boolean = true; -export const enableDefaultTransitionIndicator: boolean = false; +export const enableDefaultTransitionIndicator: boolean = true; export const ownerStackLimit = 1e4; export const enableComponentPerformanceTrack: boolean = __PROFILE__ && dynamicFlags.enableComponentPerformanceTrack; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js index 0b8eb16b578..ad89e9b9b1a 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js @@ -66,7 +66,7 @@ export const enableSuspenseyImages = false; export const enableFizzBlockingRender = true; export const enableSrcObject = false; export const enableHydrationChangeEvent = false; -export const enableDefaultTransitionIndicator = false; +export const enableDefaultTransitionIndicator = true; export const enableFragmentRefs = false; export const enableFragmentRefsScrollIntoView = false; export const ownerStackLimit = 1e4; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index e38e8c22086..00c5d057eb3 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -79,7 +79,7 @@ export const enableSuspenseyImages: boolean = false; export const enableFizzBlockingRender: boolean = true; export const enableSrcObject: boolean = false; export const enableHydrationChangeEvent: boolean = false; -export const enableDefaultTransitionIndicator: boolean = false; +export const enableDefaultTransitionIndicator: boolean = true; export const enableFragmentRefs: boolean = false; export const enableFragmentRefsScrollIntoView: boolean = false; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index 482e991c8f0..1fa2096e9e2 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -109,7 +109,7 @@ export const enableSuspenseyImages: boolean = false; export const enableFizzBlockingRender: boolean = true; export const enableSrcObject: boolean = false; export const enableHydrationChangeEvent: boolean = false; -export const enableDefaultTransitionIndicator: boolean = false; +export const enableDefaultTransitionIndicator: boolean = true; export const ownerStackLimit = 1e4;