[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