Skip to content

Commit

Permalink
Back out "Refactor DefaultReactNativeHost to use the new way of Fabri…
Browse files Browse the repository at this point in the history
…c initialization" (facebook#41414)

Summary: Pull Request resolved: facebook#41414

Reviewed By: philIip

Differential Revision: D51223865
  • Loading branch information
arushikesarwani94 authored and facebook-github-bot committed Nov 11, 2023
1 parent a9c23fb commit 196c978
Showing 1 changed file with 25 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,12 @@ import com.facebook.react.ReactHost
import com.facebook.react.ReactInstanceManager
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackageTurboModuleManagerDelegate
import com.facebook.react.bridge.JSIModulePackage
import com.facebook.react.bridge.JSIModuleProvider
import com.facebook.react.bridge.JSIModuleSpec
import com.facebook.react.bridge.JSIModuleType
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.UIManagerProvider
import com.facebook.react.bridge.UIManager
import com.facebook.react.fabric.ComponentFactory
import com.facebook.react.fabric.FabricUIManagerProviderImpl
import com.facebook.react.fabric.ReactNativeConfig
Expand All @@ -42,20 +46,30 @@ protected constructor(
null
}

override fun getUIManagerProvider(): UIManagerProvider? =
override fun getJSIModulePackage(): JSIModulePackage? =
if (isNewArchEnabled) {
UIManagerProvider { reactApplicationContext: ReactApplicationContext ->
val componentFactory = ComponentFactory()
JSIModulePackage { reactApplicationContext: ReactApplicationContext, _ ->
listOf(
object : JSIModuleSpec<UIManager> {
override fun getJSIModuleType(): JSIModuleType = JSIModuleType.UIManager

DefaultComponentsRegistry.register(componentFactory)
override fun getJSIModuleProvider(): JSIModuleProvider<UIManager> {
val componentFactory = ComponentFactory()

val reactInstanceManager: ReactInstanceManager = getReactInstanceManager()
DefaultComponentsRegistry.register(componentFactory)

val viewManagers = reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)
val viewManagerRegistry = ViewManagerRegistry(viewManagers)
FabricUIManagerProviderImpl(
componentFactory, ReactNativeConfig.DEFAULT_CONFIG, viewManagerRegistry)
.createUIManager(reactApplicationContext)
val reactInstanceManager: ReactInstanceManager = getReactInstanceManager()

val viewManagers =
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)
val viewManagerRegistry = ViewManagerRegistry(viewManagers)
return FabricUIManagerProviderImpl(
reactApplicationContext,
componentFactory,
ReactNativeConfig.DEFAULT_CONFIG,
viewManagerRegistry)
}
})
}
} else {
null
Expand Down

0 comments on commit 196c978

Please sign in to comment.