package com.swmansion.rnscreens import com.facebook.react.TurboReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.annotations.ReactModuleList import com.facebook.react.module.model.ReactModuleInfo import com.facebook.react.module.model.ReactModuleInfoProvider import com.facebook.react.uimanager.ViewManager @ReactModuleList( nativeModules = [ ScreensModule::class ] ) class RNScreensPackage : TurboReactPackage() { override fun createViewManagers(reactContext: ReactApplicationContext) = listOf>( ScreenContainerViewManager(), ScreenViewManager(), ModalScreenViewManager(), ScreenStackViewManager(), ScreenStackHeaderConfigViewManager(), ScreenStackHeaderSubviewManager(), SearchBarManager() ) override fun getModule( s: String, reactApplicationContext: ReactApplicationContext ): NativeModule? { when (s) { ScreensModule.NAME -> return ScreensModule(reactApplicationContext) } return null } override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { return ReactModuleInfoProvider { val moduleInfos: MutableMap = HashMap() val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED moduleInfos[ScreensModule.NAME] = ReactModuleInfo( ScreensModule.NAME, ScreensModule.NAME, false, // canOverrideExistingModule false, // needsEagerInit true, // hasConstants false, // isCxxModule isTurboModule ) moduleInfos } } }