diff --git a/packages/react-reconciler/src/ReactFiberCommitWork.js b/packages/react-reconciler/src/ReactFiberCommitWork.js index fdd289d93280f..360bab6552f44 100644 --- a/packages/react-reconciler/src/ReactFiberCommitWork.js +++ b/packages/react-reconciler/src/ReactFiberCommitWork.js @@ -53,8 +53,8 @@ import { enableUseEffectEventHook, enableFloat, enableLegacyHidden, - alwaysThrottleRetries, disableStringRefs, + throttleDisappearingFallbacks, } from 'shared/ReactFeatureFlags'; import { FunctionComponent, @@ -2896,7 +2896,7 @@ function commitMutationEffectsOnFiber( current !== null && (current.memoizedState: SuspenseState | null) !== null; - if (alwaysThrottleRetries) { + if (throttleDisappearingFallbacks) { if (isShowingFallback !== wasShowingFallback) { // A fallback is either appearing or disappearing. markCommitTimeOfFallback(); diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index ff03d8849afe2..9c47d65aff84c 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -115,6 +115,8 @@ export const enableFizzExternalRuntime = true; export const alwaysThrottleRetries = true; +export const throttleDisappearingFallbacks = true; + export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js index de68e6dcccdbb..828d00b235cf0 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js @@ -30,6 +30,7 @@ export const enableRenderableContext = __VARIANT__; export const enableUnifiedSyncLane = __VARIANT__; export const enableUseRefAccessWarning = __VARIANT__; export const passChildrenWhenCloningPersistedNodes = __VARIANT__; +export const throttleDisappearingFallbacks = __VARIANT__; export const useModernStrictMode = __VARIANT__; // Flow magic to verify the exports of this file match the original version. diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 93a8d66ce7da3..7eefce1945fe0 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -28,6 +28,7 @@ export const { enableUnifiedSyncLane, enableUseRefAccessWarning, passChildrenWhenCloningPersistedNodes, + throttleDisappearingFallbacks, useModernStrictMode, } = dynamicFlags; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index acc051edcc661..6fc8849cb5a95 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -80,6 +80,7 @@ export const enableInfiniteRenderLoopDetection = false; export const enableAsyncActions = false; export const alwaysThrottleRetries = false; +export const throttleDisappearingFallbacks = false; export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index 366e475a4f57a..7f04c859a092e 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -77,6 +77,7 @@ export const enableDeferRootSchedulingToMicrotask = true; export const enableAsyncActions = true; export const alwaysThrottleRetries = true; +export const throttleDisappearingFallbacks = true; export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js index fd9531385971b..17ea91f70aa4c 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js @@ -78,6 +78,7 @@ export const enableDeferRootSchedulingToMicrotask = false; export const enableAsyncActions = true; export const alwaysThrottleRetries = true; +export const throttleDisappearingFallbacks = true; export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index f6b6be8054609..b9f16cdeacbeb 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -79,6 +79,7 @@ export const enableDeferRootSchedulingToMicrotask = true; export const enableAsyncActions = true; export const alwaysThrottleRetries = true; +export const throttleDisappearingFallbacks = true; export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = true; diff --git a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js index 7343b8c1c4732..bbcaaa6932aaa 100644 --- a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js @@ -24,6 +24,7 @@ export const enableUnifiedSyncLane = __VARIANT__; export const enableTransitionTracing = __VARIANT__; export const enableDeferRootSchedulingToMicrotask = __VARIANT__; export const alwaysThrottleRetries = __VARIANT__; +export const throttleDisappearingFallbacks = __VARIANT__; export const enableDO_NOT_USE_disableStrictPassiveEffect = __VARIANT__; export const enableUseDeferredValueInitialArg = __VARIANT__; export const enableRenderableContext = __VARIANT__; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index d2364057ecadf..9a433c9d48785 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -27,6 +27,7 @@ export const { enableTransitionTracing, enableDeferRootSchedulingToMicrotask, alwaysThrottleRetries, + throttleDisappearingFallbacks, enableDO_NOT_USE_disableStrictPassiveEffect, disableSchedulerTimeoutInWorkLoop, enableUseDeferredValueInitialArg, diff --git a/scripts/flow/xplat.js b/scripts/flow/xplat.js index 9b9a065de410f..fca78a58dd9e8 100644 --- a/scripts/flow/xplat.js +++ b/scripts/flow/xplat.js @@ -18,5 +18,6 @@ declare module 'ReactNativeInternalFeatureFlags' { declare export var enableUnifiedSyncLane: boolean; declare export var enableUseRefAccessWarning: boolean; declare export var passChildrenWhenCloningPersistedNodes: boolean; + declare export var throttleDisappearingFallbacks: boolean; declare export var useModernStrictMode: boolean; }