Skip to content

Commit ef23a9e

Browse files
authored
Flag for text hydration mismatch (#24107)
* flag for text hydration mismatch * rm unused import
1 parent ba5dc6c commit ef23a9e

12 files changed

+14
-4
lines changed

packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -3376,7 +3376,7 @@ describe('ReactDOMServerPartialHydration', () => {
33763376
);
33773377
});
33783378

3379-
// @gate enableClientRenderFallbackOnHydrationMismatch
3379+
// @gate enableClientRenderFallbackOnTextMismatch
33803380
it("falls back to client rendering when there's a text mismatch (direct text child)", async () => {
33813381
function DirectTextChild({text}) {
33823382
return <div>{text}</div>;
@@ -3408,7 +3408,7 @@ describe('ReactDOMServerPartialHydration', () => {
34083408
]);
34093409
});
34103410

3411-
// @gate enableClientRenderFallbackOnHydrationMismatch
3411+
// @gate enableClientRenderFallbackOnTextMismatch
34123412
it("falls back to client rendering when there's a text mismatch (text child with siblings)", async () => {
34133413
function Sibling() {
34143414
return 'Sibling';

packages/react-dom/src/client/ReactDOMComponent.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ import {validateProperties as validateUnknownProperties} from '../shared/ReactDO
7272
import {
7373
enableTrustedTypesIntegration,
7474
enableCustomElementPropertySupport,
75-
enableClientRenderFallbackOnHydrationMismatch,
75+
enableClientRenderFallbackOnTextMismatch,
7676
} from 'shared/ReactFeatureFlags';
7777
import {
7878
mediaEventTypes,
@@ -251,7 +251,7 @@ export function checkForUnmatchedText(
251251
}
252252
}
253253

254-
if (isConcurrentMode && enableClientRenderFallbackOnHydrationMismatch) {
254+
if (isConcurrentMode && enableClientRenderFallbackOnTextMismatch) {
255255
// In concurrent roots, we throw when there's a text mismatch and revert to
256256
// client rendering, up to the nearest Suspense boundary.
257257
throw new Error('Text content does not match server-rendered HTML.');

packages/shared/ReactFeatureFlags.js

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export const enableSuspenseLayoutEffectSemantics = true;
4242

4343
// TODO: Finish rolling out in www
4444
export const enableClientRenderFallbackOnHydrationMismatch = true;
45+
export const enableClientRenderFallbackOnTextMismatch = true;
4546

4647
// TODO: Need to review this code one more time before landing
4748
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;

packages/shared/forks/ReactFeatureFlags.native-fb.js

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
5353
export const enableCPUSuspense = true;
5454
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
5555
export const enableClientRenderFallbackOnHydrationMismatch = true;
56+
export const enableClientRenderFallbackOnTextMismatch = true;
5657
export const enableComponentStackLocations = false;
5758
export const enableLegacyFBSupport = false;
5859
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.native-oss.js

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
4444
export const enableCPUSuspense = false;
4545
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
4646
export const enableClientRenderFallbackOnHydrationMismatch = true;
47+
export const enableClientRenderFallbackOnTextMismatch = true;
4748
export const enableComponentStackLocations = false;
4849
export const enableLegacyFBSupport = false;
4950
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.js

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
4444
export const enableCPUSuspense = false;
4545
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
4646
export const enableClientRenderFallbackOnHydrationMismatch = true;
47+
export const enableClientRenderFallbackOnTextMismatch = true;
4748
export const enableComponentStackLocations = true;
4849
export const enableLegacyFBSupport = false;
4950
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.native.js

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
5454
export const enableCPUSuspense = false;
5555
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
5656
export const enableClientRenderFallbackOnHydrationMismatch = true;
57+
export const enableClientRenderFallbackOnTextMismatch = true;
5758
export const enableStrictEffects = false;
5859
export const createRootStrictEffectsByDefault = false;
5960
export const enableUseRefAccessWarning = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
4444
export const enableCPUSuspense = false;
4545
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
4646
export const enableClientRenderFallbackOnHydrationMismatch = true;
47+
export const enableClientRenderFallbackOnTextMismatch = true;
4748
export const enableComponentStackLocations = true;
4849
export const enableLegacyFBSupport = false;
4950
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.testing.js

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
4444
export const enableCPUSuspense = false;
4545
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
4646
export const enableClientRenderFallbackOnHydrationMismatch = true;
47+
export const enableClientRenderFallbackOnTextMismatch = true;
4748
export const enableComponentStackLocations = true;
4849
export const enableLegacyFBSupport = false;
4950
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.testing.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const enableSuspenseAvoidThisFallbackFizz = false;
4444
export const enableCPUSuspense = true;
4545
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = true;
4646
export const enableClientRenderFallbackOnHydrationMismatch = true;
47+
export const enableClientRenderFallbackOnTextMismatch = true;
4748
export const enableComponentStackLocations = true;
4849
export const enableLegacyFBSupport = !__EXPERIMENTAL__;
4950
export const enableFilterEmptyStringAttributesDOM = false;

packages/shared/forks/ReactFeatureFlags.www-dynamic.js

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export const enableSyncDefaultUpdates = __VARIANT__;
2727
export const consoleManagedByDevToolsDuringStrictMode = __VARIANT__;
2828
export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = __VARIANT__;
2929
export const enableClientRenderFallbackOnHydrationMismatch = __VARIANT__;
30+
export const enableClientRenderFallbackOnTextMismatch = __VARIANT__;
3031
export const enableTransitionTracing = __VARIANT__;
3132

3233
// Enable this flag to help with concurrent mode debugging.

packages/shared/forks/ReactFeatureFlags.www.js

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const {
3333
enableSyncDefaultUpdates,
3434
enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay,
3535
enableClientRenderFallbackOnHydrationMismatch,
36+
enableClientRenderFallbackOnTextMismatch,
3637
} = dynamicFeatureFlags;
3738

3839
// On WWW, __EXPERIMENTAL__ is used for a new modern build.

0 commit comments

Comments
 (0)