Refactor DefaultReactNativeHost to use the new way of Fabric initialization (#41739)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41739 Refactoring `DefaultReactNativeHost` to use the new way of Fabric initialization through `FabricUIManagerProviderImpl` Reviewed By: philIip Differential Revision: D51719555 fbshipit-source-id: bad471a8a273accecb0641ccaa77223534cd45fd
This commit is contained in:
Родитель
288708f411
Коммит
c30f2b6205
|
@ -14,12 +14,8 @@ 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.UIManager
|
||||
import com.facebook.react.bridge.UIManagerProvider
|
||||
import com.facebook.react.fabric.ComponentFactory
|
||||
import com.facebook.react.fabric.FabricUIManagerProviderImpl
|
||||
import com.facebook.react.fabric.ReactNativeConfig
|
||||
|
@ -46,30 +42,20 @@ protected constructor(
|
|||
null
|
||||
}
|
||||
|
||||
override fun getJSIModulePackage(): JSIModulePackage? =
|
||||
override fun getUIManagerProvider(): UIManagerProvider? =
|
||||
if (isNewArchEnabled) {
|
||||
JSIModulePackage { reactApplicationContext: ReactApplicationContext, _ ->
|
||||
listOf(
|
||||
object : JSIModuleSpec<UIManager> {
|
||||
override fun getJSIModuleType(): JSIModuleType = JSIModuleType.UIManager
|
||||
UIManagerProvider { reactApplicationContext: ReactApplicationContext ->
|
||||
val componentFactory = ComponentFactory()
|
||||
|
||||
override fun getJSIModuleProvider(): JSIModuleProvider<UIManager> {
|
||||
val componentFactory = ComponentFactory()
|
||||
DefaultComponentsRegistry.register(componentFactory)
|
||||
|
||||
DefaultComponentsRegistry.register(componentFactory)
|
||||
val reactInstanceManager: ReactInstanceManager = getReactInstanceManager()
|
||||
|
||||
val reactInstanceManager: ReactInstanceManager = getReactInstanceManager()
|
||||
|
||||
val viewManagers =
|
||||
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)
|
||||
val viewManagerRegistry = ViewManagerRegistry(viewManagers)
|
||||
return FabricUIManagerProviderImpl(
|
||||
reactApplicationContext,
|
||||
componentFactory,
|
||||
ReactNativeConfig.DEFAULT_CONFIG,
|
||||
viewManagerRegistry)
|
||||
}
|
||||
})
|
||||
val viewManagers = reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)
|
||||
val viewManagerRegistry = ViewManagerRegistry(viewManagers)
|
||||
FabricUIManagerProviderImpl(
|
||||
componentFactory, ReactNativeConfig.DEFAULT_CONFIG, viewManagerRegistry)
|
||||
.createUIManager(reactApplicationContext)
|
||||
}
|
||||
} else {
|
||||
null
|
||||
|
|
Загрузка…
Ссылка в новой задаче