From 7deb5457619385cc13670b534263fced2441a38a Mon Sep 17 00:00:00 2001 From: Bao Nguyen Date: Thu, 13 Aug 2026 19:42:41 +0700 Subject: [PATCH] Route virtualized-lists feature flags through the private interface --- packages/react-native/src/react-private-interface.js | 4 ++++ packages/react-native/src/react-private-interface.js.flow | 1 + packages/virtualized-lists/Lists/VirtualizeUtils.js | 2 +- packages/virtualized-lists/Lists/VirtualizedList.js | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/react-native/src/react-private-interface.js b/packages/react-native/src/react-private-interface.js index 6e965490ebc9..2d81f4634b08 100644 --- a/packages/react-native/src/react-private-interface.js +++ b/packages/react-native/src/react-private-interface.js @@ -48,6 +48,7 @@ import type {DangerouslyImpreciseStyleProp} from '../Libraries/StyleSheet/StyleS import typeof deepFreezeAndThrowOnMutationInDev from '../Libraries/Utilities/deepFreezeAndThrowOnMutationInDev'; import typeof deepDiffer from '../Libraries/Utilities/differ/deepDiffer'; import typeof Platform from '../Libraries/Utilities/Platform'; +import typeof * as ReactNativeFeatureFlags from './private/featureflags/ReactNativeFeatureFlags'; import typeof dispatchNativeEvent from './private/renderer/events/dispatchNativeEvent'; import typeof CustomEvent from './private/webapis/dom/events/CustomEvent'; @@ -69,6 +70,9 @@ module.exports = { get RCTEventEmitter(): RCTEventEmitter { return require('../Libraries/EventEmitter/RCTEventEmitter').default; }, + get ReactNativeFeatureFlags(): ReactNativeFeatureFlags { + return require('./private/featureflags/ReactNativeFeatureFlags'); + }, get ReactNativeViewConfigRegistry(): ReactNativeViewConfigRegistry { return require('../Libraries/Renderer/shims/ReactNativeViewConfigRegistry'); }, diff --git a/packages/react-native/src/react-private-interface.js.flow b/packages/react-native/src/react-private-interface.js.flow index b30331d119f8..6df0e5e43b85 100644 --- a/packages/react-native/src/react-private-interface.js.flow +++ b/packages/react-native/src/react-private-interface.js.flow @@ -23,6 +23,7 @@ export {default as BatchedBridge} from '../Libraries/BatchedBridge/BatchedBridge export {default as ExceptionsManager} from '../Libraries/Core/ExceptionsManager'; export {default as Platform} from '../Libraries/Utilities/Platform'; export {default as RCTEventEmitter} from '../Libraries/EventEmitter/RCTEventEmitter'; +export * as ReactNativeFeatureFlags from './private/featureflags/ReactNativeFeatureFlags'; export * as ReactNativeViewConfigRegistry from '../Libraries/Renderer/shims/ReactNativeViewConfigRegistry'; export {default as TextInputState} from '../Libraries/Components/TextInput/TextInputState'; export {default as UIManager} from '../Libraries/ReactNative/UIManager'; diff --git a/packages/virtualized-lists/Lists/VirtualizeUtils.js b/packages/virtualized-lists/Lists/VirtualizeUtils.js index 598eb2e7c9b0..4e5c6877fc77 100644 --- a/packages/virtualized-lists/Lists/VirtualizeUtils.js +++ b/packages/virtualized-lists/Lists/VirtualizeUtils.js @@ -13,7 +13,7 @@ import type ListMetricsAggregator from './ListMetricsAggregator'; import type {CellMetricProps} from './ListMetricsAggregator'; -import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags'; +import {ReactNativeFeatureFlags} from 'react-native/react-private-interface'; /** * Used to find the indices of the frames that overlap the given offsets. Useful for finding the diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index 8545ba4c6ff8..3fd58cc7370d 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -64,7 +64,7 @@ import { View, findNodeHandle, } from 'react-native'; -import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags'; +import {ReactNativeFeatureFlags} from 'react-native/react-private-interface'; export type {ListRenderItemInfo, ListRenderItem, Separators};