@@ -16,7 +16,10 @@ import type {
1616import { isValidContainer } from 'react-dom-bindings/src/client/ReactDOMContainer' ;
1717import { queueExplicitHydrationTarget } from 'react-dom-bindings/src/events/ReactDOMEventReplaying' ;
1818import { REACT_ELEMENT_TYPE } from 'shared/ReactSymbols' ;
19- import { disableCommentsAsDOMContainers } from 'shared/ReactFeatureFlags' ;
19+ import {
20+ disableCommentsAsDOMContainers ,
21+ enableDefaultTransitionIndicator ,
22+ } from 'shared/ReactFeatureFlags' ;
2023
2124export type RootType = {
2225 render ( children : ReactNodeList ) : void ,
@@ -43,6 +46,7 @@ export type CreateRootOptions = {
4346 error : mixed ,
4447 errorInfo : { + componentStack ?: ?string } ,
4548 ) => void ,
49+ onDefaultTransitionIndicator ?: ( ) => void | ( ( ) => void ) ,
4650} ;
4751
4852export type HydrateRootOptions = {
@@ -68,6 +72,7 @@ export type HydrateRootOptions = {
6872 error : mixed ,
6973 errorInfo : { + componentStack ?: ?string } ,
7074 ) => void ,
75+ onDefaultTransitionIndicator ?: ( ) => void | ( ( ) => void ) ,
7176 formState ? : ReactFormState < any , any > | null ,
7277} ;
7378
@@ -92,6 +97,11 @@ import {
9297} from 'react-reconciler/src/ReactFiberReconciler' ;
9398import { ConcurrentRoot} from 'react-reconciler/src/ReactRootTags' ;
9499
100+ function defaultOnDefaultTransitionIndicator ( ) : void | ( ( ) => void ) {
101+ // TODO: Implement the default
102+ return function ( ) { } ;
103+ }
104+
95105// $FlowFixMe[missing-this-annot]
96106function ReactDOMRoot ( internalRoot : FiberRoot ) {
97107 this . _internalRoot = internalRoot ;
@@ -178,6 +188,7 @@ export function createRoot(
178188 let onUncaughtError = defaultOnUncaughtError ;
179189 let onCaughtError = defaultOnCaughtError ;
180190 let onRecoverableError = defaultOnRecoverableError ;
191+ let onDefaultTransitionIndicator = defaultOnDefaultTransitionIndicator ;
181192 let transitionCallbacks = null ;
182193
183194 if ( options !== null && options !== undefined ) {
@@ -217,6 +228,11 @@ export function createRoot(
217228 if ( options . onRecoverableError !== undefined ) {
218229 onRecoverableError = options . onRecoverableError ;
219230 }
231+ if ( enableDefaultTransitionIndicator ) {
232+ if ( options . onDefaultTransitionIndicator !== undefined ) {
233+ onDefaultTransitionIndicator = options . onDefaultTransitionIndicator ;
234+ }
235+ }
220236 if ( options . unstable_transitionCallbacks !== undefined ) {
221237 transitionCallbacks = options . unstable_transitionCallbacks ;
222238 }
@@ -232,6 +248,7 @@ export function createRoot(
232248 onUncaughtError ,
233249 onCaughtError ,
234250 onRecoverableError ,
251+ onDefaultTransitionIndicator ,
235252 transitionCallbacks ,
236253 ) ;
237254 markContainerAsRoot ( root . current , container ) ;
@@ -288,6 +305,7 @@ export function hydrateRoot(
288305 let onUncaughtError = defaultOnUncaughtError ;
289306 let onCaughtError = defaultOnCaughtError ;
290307 let onRecoverableError = defaultOnRecoverableError ;
308+ let onDefaultTransitionIndicator = defaultOnDefaultTransitionIndicator ;
291309 let transitionCallbacks = null ;
292310 let formState = null ;
293311 if ( options !== null && options !== undefined ) {
@@ -306,6 +324,11 @@ export function hydrateRoot(
306324 if ( options . onRecoverableError !== undefined ) {
307325 onRecoverableError = options . onRecoverableError ;
308326 }
327+ if ( enableDefaultTransitionIndicator ) {
328+ if ( options . onDefaultTransitionIndicator !== undefined ) {
329+ onDefaultTransitionIndicator = options . onDefaultTransitionIndicator ;
330+ }
331+ }
309332 if ( options . unstable_transitionCallbacks !== undefined ) {
310333 transitionCallbacks = options . unstable_transitionCallbacks ;
311334 }
@@ -326,6 +349,7 @@ export function hydrateRoot(
326349 onUncaughtError ,
327350 onCaughtError ,
328351 onRecoverableError ,
352+ onDefaultTransitionIndicator ,
329353 transitionCallbacks ,
330354 formState ,
331355 ) ;
0 commit comments