diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index 818eb338551d..e45d1aafaac6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<061d668cf04041f4d3d2f48f11dc739f>> + * @generated SignedSource<> */ /** @@ -127,7 +127,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun enableVirtualViewContainerStateExperimental(): Boolean = false - override fun fixDifferentiatorParentTagForUnflattenCase(): Boolean = false + override fun fixDifferentiatorParentTagForUnflattenCase(): Boolean = true override fun fixMappingOfEventPrioritiesBetweenFabricAndReact(): Boolean = false diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index e0bebd010bc9..e6819ac0f5be 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<8dfc52502bd539e5e43d547f895a6d33>> + * @generated SignedSource<> */ /** @@ -236,7 +236,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool fixDifferentiatorParentTagForUnflattenCase() override { - return false; + return true; } bool fixMappingOfEventPrioritiesBetweenFabricAndReact() override { diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp index 45ea4380e986..6e886866e16e 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp @@ -27,9 +27,14 @@ namespace { class TestFlagsWithUnflattenFix : public ReactNativeFeatureFlagsDefaults { public: + explicit TestFlagsWithUnflattenFix(bool enabled) : enabled_(enabled) {} + bool fixDifferentiatorParentTagForUnflattenCase() override { - return true; + return enabled_; } + + private: + bool enabled_; }; } // namespace @@ -164,6 +169,9 @@ class DifferentiatorUnflattenTest : public ::testing::Test { TEST_F( DifferentiatorUnflattenTest, withoutFix_updateMutationHasWrongParentTag) { + ReactNativeFeatureFlags::dangerouslyForceOverride( + std::make_unique(false)); + applyUnflattenSetup_(); auto mutations = calculateMutations_(); @@ -186,7 +194,7 @@ TEST_F( // as parentTag, and StubViewTree::mutate() succeeds without assertion failure. TEST_F(DifferentiatorUnflattenTest, withFix_updateMutationHasCorrectParentTag) { ReactNativeFeatureFlags::dangerouslyForceOverride( - std::make_unique()); + std::make_unique(true)); applyUnflattenSetup_(); diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 15976d671629..d8e33fe817e4 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -605,7 +605,7 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, fixDifferentiatorParentTagForUnflattenCase: { - defaultValue: false, + defaultValue: true, metadata: { dateAdded: '2026-04-18', description: diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 403f339511aa..d1a25226a318 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<609451fd0a38e0f8eaf685e7cf534e27>> + * @generated SignedSource<<3304b4ee2c718dbf4d56b607ea09054d>> * @flow strict * @noformat */ @@ -424,7 +424,7 @@ export const enableVirtualViewContainerStateExperimental: Getter = crea /** * Fix incorrect parentTag passed as parentTagForUpdate in the unflatten-unflatten branch of calculateShadowViewMutationsFlattener, which causes UPDATE mutations to reference a parent being created in the same batch. */ -export const fixDifferentiatorParentTagForUnflattenCase: Getter = createNativeFlagGetter('fixDifferentiatorParentTagForUnflattenCase', false); +export const fixDifferentiatorParentTagForUnflattenCase: Getter = createNativeFlagGetter('fixDifferentiatorParentTagForUnflattenCase', true); /** * Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React. */