Skip to content

Commit 3d58586

Browse files
yungstersmeta-codesync[bot]
authored andcommitted
Fling: Cleanup virtualViewActivityBehavior
Summary: Cleans up the `virtualViewActivityBehavior` feature flag, which never shipped. More work is needed if we want to use `Activity` without significantly increasing memory usage and increasing the likelihood of OOMs. Changelog: [Internal] Differential Revision: D90335258
1 parent 50c477b commit 3d58586

3 files changed

Lines changed: 3 additions & 31 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
@@ -1063,16 +1063,6 @@ const definitions: FeatureFlagDefinitions = {
10631063
},
10641064
ossReleaseStage: 'none',
10651065
},
1066-
virtualViewActivityBehavior: {
1067-
defaultValue: 'no-activity',
1068-
metadata: {
1069-
dateAdded: '2025-08-27',
1070-
description: 'Changes whether and how `VirtualView` uses `Activity`.',
1071-
expectedReleaseValue: true,
1072-
purpose: 'experimentation',
1073-
},
1074-
ossReleaseStage: 'none',
1075-
},
10761066
},
10771067
};
10781068

packages/react-native/src/private/components/virtualview/VirtualView.js

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@ import type {NativeModeChangeEvent} from './VirtualViewNativeComponent';
1515

1616
import UIManager from '../../../../Libraries/ReactNative/UIManager';
1717
import StyleSheet from '../../../../Libraries/StyleSheet/StyleSheet';
18-
import * as ReactNativeFeatureFlags from '../../featureflags/ReactNativeFeatureFlags';
1918
import {useVirtualViewLogging} from './logger/VirtualViewLogger';
2019
import VirtualViewExperimentalNativeComponent from './VirtualViewExperimentalNativeComponent';
2120
import VirtualViewProperNativeComponent from './VirtualViewNativeComponent';
2221
import nullthrows from 'nullthrows';
2322
import * as React from 'react';
24-
// $FlowFixMe[missing-export]
25-
import {startTransition, unstable_Activity as Activity, useState} from 'react';
23+
import {startTransition, useState} from 'react';
2624

2725
// @see VirtualViewNativeComponent
2826
export enum VirtualViewMode {
@@ -155,17 +153,7 @@ function createVirtualView(initialState: State): VirtualViewComponent {
155153
: style
156154
}
157155
onModeChange={handleModeChange}>
158-
{
159-
match (ReactNativeFeatureFlags.virtualViewActivityBehavior()) {
160-
'activity-without-mode' =>
161-
<Activity>{isHidden ? null : children}</Activity>,
162-
'activity-with-hidden-mode' =>
163-
<Activity mode={isHidden ? 'hidden' : 'visible'}>
164-
{children}
165-
</Activity>,
166-
'no-activity' | _ => isHidden ? null : children,
167-
}
168-
}
156+
{isHidden ? null : children}
169157
</VirtualViewNativeComponent>
170158
);
171159
}

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<<480e58e52425586928349b9f3560ce7f>>
7+
* @generated SignedSource<<fcf8bc19a86d7c5ffc3b36c01348df26>>
88
* @flow strict
99
* @noformat
1010
*/
@@ -41,7 +41,6 @@ export type ReactNativeFeatureFlagsJsOnly = $ReadOnly<{
4141
shouldUseLinkRoleForPressableText: Getter<boolean>,
4242
shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean>,
4343
shouldUseSetNativePropsInFabric: Getter<boolean>,
44-
virtualViewActivityBehavior: Getter<string>,
4544
}>;
4645

4746
export type ReactNativeFeatureFlagsJsOnlyOverrides = OverridesFor<ReactNativeFeatureFlagsJsOnly>;
@@ -199,11 +198,6 @@ export const shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter<boolean> = cre
199198
*/
200199
export const shouldUseSetNativePropsInFabric: Getter<boolean> = createJavaScriptFlagGetter('shouldUseSetNativePropsInFabric', true);
201200

202-
/**
203-
* Changes whether and how `VirtualView` uses `Activity`.
204-
*/
205-
export const virtualViewActivityBehavior: Getter<string> = createJavaScriptFlagGetter('virtualViewActivityBehavior', "no-activity");
206-
207201
/**
208202
* Common flag for testing. Do NOT modify.
209203
*/

0 commit comments

Comments
 (0)