@samitouri / QOS-React / commits / 3168e08f83

[flags] enable opt-in for enableDefaultTransitionIndicator (#34373)

So we can test the feature.

Ricky committed Sep 3, 2025 at 12:33 UTC 3168e08f8389d258de9eb7c8d19b9d44a0f250f2
7 files changed +19 -7
packages/react-dom/src/client/ReactDOMRootFB.js
+3 -1
@@ -126,6 +126,7 @@ function wwwOnCaughtError(
126
127 defaultOnCaughtError(error, errorInfo);
128 }
129 +const noopOnDefaultTransitionIndicator = noop;
130
131 export function createRoot(
132 container: Element | Document | DocumentFragment,
@@ -137,6 +138,7 @@ export function createRoot(
138 ({
139 onUncaughtError: wwwOnUncaughtError,
140 onCaughtError: wwwOnCaughtError,
141 + onDefaultTransitionIndicator: noopOnDefaultTransitionIndicator,
142 }: any),
143 options,
144 ),
@@ -155,6 +157,7 @@ export function hydrateRoot(
157 ({
158 onUncaughtError: wwwOnUncaughtError,
159 onCaughtError: wwwOnCaughtError,
160 + onDefaultTransitionIndicator: noopOnDefaultTransitionIndicator,
161 }: any),
162 options,
163 ),
@@ -211,7 +214,6 @@ function getReactRootElementInContainer(container: any) {
214 // This isn't reachable because onRecoverableError isn't called in the
215 // legacy API.
216 const noopOnRecoverableError = noop;
214 -const noopOnDefaultTransitionIndicator = noop;
217
218 function legacyCreateRootFromDOMContainer(
219 container: Container,
packages/react-native-renderer/src/ReactFabric.js
+11 -2
@@ -46,7 +46,10 @@ import {
46 createPublicRootInstance,
47 type PublicRootInstance,
48 } from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
49 -import {disableLegacyMode} from 'shared/ReactFeatureFlags';
49 +import {
50 + disableLegacyMode,
51 + enableDefaultTransitionIndicator,
52 +} from 'shared/ReactFeatureFlags';
53
54 if (typeof ReactFiberErrorDialog.showErrorDialog !== 'function') {
55 throw new Error(
@@ -132,6 +135,12 @@ function render(
135 if (options && options.onRecoverableError !== undefined) {
136 onRecoverableError = options.onRecoverableError;
137 }
138 + let onDefaultTransitionIndicator = nativeOnDefaultTransitionIndicator;
139 + if (enableDefaultTransitionIndicator) {
140 + if (options && options.onDefaultTransitionIndicator !== undefined) {
141 + onDefaultTransitionIndicator = options.onDefaultTransitionIndicator;
142 + }
143 + }
144
145 const publicRootInstance = createPublicRootInstance(containerTag);
146 const rootInstance = {
@@ -151,7 +160,7 @@ function render(
160 onUncaughtError,
161 onCaughtError,
162 onRecoverableError,
154 - nativeOnDefaultTransitionIndicator,
163 + onDefaultTransitionIndicator,
164 null,
165 );
166
packages/react-native-renderer/src/ReactNativeTypes.js
+1
@@ -134,6 +134,7 @@ export type RenderRootOptions = {
134 error: mixed,
135 errorInfo: {+componentStack?: ?string},
136 ) => void,
137 + onDefaultTransitionIndicator?: () => void | (() => void),
138 };
139
140 /**
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1 -1
@@ -79,7 +79,7 @@ export const enableSuspenseyImages: boolean = false;
79 export const enableFizzBlockingRender: boolean = true;
80 export const enableSrcObject: boolean = false;
81 export const enableHydrationChangeEvent: boolean = true;
82 -export const enableDefaultTransitionIndicator: boolean = false;
82 +export const enableDefaultTransitionIndicator: boolean = true;
83 export const ownerStackLimit = 1e4;
84 export const enableComponentPerformanceTrack: boolean =
85 __PROFILE__ && dynamicFlags.enableComponentPerformanceTrack;
packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
+1 -1
@@ -66,7 +66,7 @@ export const enableSuspenseyImages = false;
66 export const enableFizzBlockingRender = true;
67 export const enableSrcObject = false;
68 export const enableHydrationChangeEvent = false;
69 -export const enableDefaultTransitionIndicator = false;
69 +export const enableDefaultTransitionIndicator = true;
70 export const enableFragmentRefs = false;
71 export const enableFragmentRefsScrollIntoView = false;
72 export const ownerStackLimit = 1e4;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1 -1
@@ -79,7 +79,7 @@ export const enableSuspenseyImages: boolean = false;
79 export const enableFizzBlockingRender: boolean = true;
80 export const enableSrcObject: boolean = false;
81 export const enableHydrationChangeEvent: boolean = false;
82 -export const enableDefaultTransitionIndicator: boolean = false;
82 +export const enableDefaultTransitionIndicator: boolean = true;
83
84 export const enableFragmentRefs: boolean = false;
85 export const enableFragmentRefsScrollIntoView: boolean = false;
packages/shared/forks/ReactFeatureFlags.www.js
+1 -1
@@ -109,7 +109,7 @@ export const enableSuspenseyImages: boolean = false;
109 export const enableFizzBlockingRender: boolean = true;
110 export const enableSrcObject: boolean = false;
111 export const enableHydrationChangeEvent: boolean = false;
112 -export const enableDefaultTransitionIndicator: boolean = false;
112 +export const enableDefaultTransitionIndicator: boolean = true;
113
114 export const ownerStackLimit = 1e4;
115