Skip to content

Commit 02aef9b

Browse files
rubennortemeta-codesync[bot]
authored andcommitted
Remove enableImperativeEvents_DEPRECATED feature flag (#59183)
Summary: Pull Request resolved: #59183 The JS-only `enableImperativeEvents_DEPRECATED` flag was kept so JS bundles delivered to older native builds, where the common `enableImperativeEvents` flag was unavailable, could still enable the feature. Those builds are gone, so remove the deprecated flag and gate `ReactNativeElement` and `ReadOnlyText` solely on the common flag. Changelog: [Internal] Reviewed By: javache Differential Revision: D126047688 fbshipit-source-id: 7a35822b2fafb4535bd309677730c9b8c4d349cc
1 parent 3f5c2f3 commit 02aef9b

4 files changed

Lines changed: 9 additions & 29 deletions

File tree

‎packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,16 +1116,6 @@ const definitions: FeatureFlagDefinitions = {
11161116
},
11171117
ossReleaseStage: 'none',
11181118
},
1119-
enableImperativeEvents_DEPRECATED: {
1120-
defaultValue: false,
1121-
metadata: {
1122-
description:
1123-
'Deprecated in favor of the common flag with the same name, which is the one that can be configured by OSS release stage. This is only kept so JS bundles delivered to older native builds, where the common flag is unavailable, can still enable the feature.',
1124-
expectedReleaseValue: true,
1125-
purpose: 'release',
1126-
},
1127-
ossReleaseStage: 'none',
1128-
},
11291119
enableNativeEventTargetEventDispatching: {
11301120
defaultValue: true,
11311121
metadata: {

‎packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<4eb26b4190d023d26a50f54b6e3ea5eb>>
7+
* @generated SignedSource<<f36d78d946c018d3dd3fc30f6071ee76>>
88
* @flow strict
99
* @noformat
1010
*/
@@ -34,7 +34,6 @@ export type ReactNativeFeatureFlagsJsOnly = Readonly<{
3434
animatedKeepListenersOnDetach: Getter<boolean>,
3535
animatedShouldSyncValueBeforeStartCallback: Getter<boolean>,
3636
deferFlatListFocusChangeRenderUpdate: Getter<boolean>,
37-
enableImperativeEvents_DEPRECATED: Getter<boolean>,
3837
enableNativeEventTargetEventDispatching: Getter<boolean>,
3938
externalElementInspectionEnabled: Getter<boolean>,
4039
fixCrossOrientationNestedListViewability: Getter<boolean>,
@@ -176,11 +175,6 @@ export const animatedShouldSyncValueBeforeStartCallback: Getter<boolean> = creat
176175
*/
177176
export const deferFlatListFocusChangeRenderUpdate: Getter<boolean> = createJavaScriptFlagGetter('deferFlatListFocusChangeRenderUpdate', false);
178177

179-
/**
180-
* Deprecated in favor of the common flag with the same name, which is the one that can be configured by OSS release stage. This is only kept so JS bundles delivered to older native builds, where the common flag is unavailable, can still enable the feature.
181-
*/
182-
export const enableImperativeEvents_DEPRECATED: Getter<boolean> = createJavaScriptFlagGetter('enableImperativeEvents_DEPRECATED', false);
183-
184178
/**
185179
* When enabled, the React Native renderer dispatches events through the W3C EventTarget API (addEventListener/dispatchEvent) instead of the legacy plugin-based system.
186180
*/

‎packages/react-native/src/private/webapis/dom/nodes/ReactNativeElement.js‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -360,14 +360,12 @@ ReactNativeElement_public.prototype = ReactNativeElement.prototype;
360360
// `removeEventListener`, `dispatchEvent`) is only inherited by this final class
361361
// when `enableNativeEventTargetEventDispatching` is enabled (which makes
362362
// `ReadOnlyNode` extend `EventTarget`). Until that public API is finalized, it
363-
// is gated behind `enableImperativeEvents` (or its deprecated JS-only
364-
// counterpart, `enableImperativeEvents_DEPRECATED`): when both flags are off we
365-
// remove those methods from this final class. Native/internal event dispatch
366-
// does not rely on these public methods, so removing them is safe.
363+
// is gated behind `enableImperativeEvents`: when off we remove those methods
364+
// from this final class. Native/internal event dispatch does not rely on these
365+
// public methods, so removing them is safe.
367366
if (
368367
ReactNativeFeatureFlags.enableNativeEventTargetEventDispatching() &&
369-
!ReactNativeFeatureFlags.enableImperativeEvents() &&
370-
!ReactNativeFeatureFlags.enableImperativeEvents_DEPRECATED()
368+
!ReactNativeFeatureFlags.enableImperativeEvents()
371369
) {
372370
const prototype: interface {
373371
addEventListener?: unknown,

‎packages/react-native/src/private/webapis/dom/nodes/ReadOnlyText.js‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,12 @@ ReadOnlyText_public.prototype = ReadOnlyText.prototype;
4545
// `removeEventListener`, `dispatchEvent`) is only inherited by this final class
4646
// when `enableNativeEventTargetEventDispatching` is enabled (which makes
4747
// `ReadOnlyNode` extend `EventTarget`). Until that public API is finalized, it
48-
// is gated behind `enableImperativeEvents` (or its deprecated JS-only
49-
// counterpart, `enableImperativeEvents_DEPRECATED`): when both flags are off we
50-
// remove those methods from this final class. Native/internal event dispatch
51-
// does not rely on these public methods, so removing them is safe.
48+
// is gated behind `enableImperativeEvents`: when off we remove those methods
49+
// from this final class. Native/internal event dispatch does not rely on these
50+
// public methods, so removing them is safe.
5251
if (
5352
ReactNativeFeatureFlags.enableNativeEventTargetEventDispatching() &&
54-
!ReactNativeFeatureFlags.enableImperativeEvents() &&
55-
!ReactNativeFeatureFlags.enableImperativeEvents_DEPRECATED()
53+
!ReactNativeFeatureFlags.enableImperativeEvents()
5654
) {
5755
const prototype: interface {
5856
addEventListener?: unknown,

0 commit comments

Comments
 (0)