Allow Custom ReactNativeFeatureFlags for Shell 2.0 (#51177)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/51177

Introduce DefaultNewArchitectureEntryPoint.loadWithFeatureFlags() to allow custom feature flags while using DefaultNewArchitectureEntryPoint

Reviewed By: arushikesarwani94

Differential Revision: D74228467

fbshipit-source-id: ec3fe7edd31cc9713498b316d6306eaa3686398b
This commit is contained in:
Maddie Lord
2025-05-07 18:58:21 -07:00
committed by Facebook GitHub Bot
parent a96aeab147
commit bbc1e121c7
2 changed files with 14 additions and 0 deletions
@@ -1895,6 +1895,7 @@ public final class com/facebook/react/defaults/DefaultNewArchitectureEntryPoint
public static final fun load (ZZ)V
public static final fun load (ZZZ)V
public static synthetic fun load$default (ZZZILjava/lang/Object;)V
public static final fun loadWithFeatureFlags (Lcom/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider;)V
public final fun setReleaseLevel (Lcom/facebook/react/common/ReleaseLevel;)V
}
@@ -15,6 +15,7 @@ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsProvider
/**
* A utility class that serves as an entry point for users setup the New Architecture.
@@ -68,6 +69,18 @@ public object DefaultNewArchitectureEntryPoint {
DefaultSoLoader.maybeLoadSoLibrary()
}
@JvmStatic
public fun loadWithFeatureFlags(featureFlags: ReactNativeFeatureFlagsProvider) {
ReactNativeFeatureFlags.override(featureFlags)
privateFabricEnabled = featureFlags.enableFabricRenderer()
privateTurboModulesEnabled = featureFlags.useTurboModules()
privateConcurrentReactEnabled = featureFlags.enableFabricRenderer()
privateBridgelessEnabled = featureFlags.enableBridgelessArchitecture()
DefaultSoLoader.maybeLoadSoLibrary()
}
private var privateFabricEnabled: Boolean = false
@JvmStatic