package com.freshworks.freshdesk.reactnative import com.facebook.react.TurboReactPackage import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.model.ReactModuleInfo import com.facebook.react.module.model.ReactModuleInfoProvider /** * React Native package for the Freshdesk SDK. * * [TurboReactPackage] serves the same [FreshdeskModule] class on both * architectures: as a TurboModule on the New Architecture, and as a legacy * bridge module on the Old Architecture. */ class FreshdeskPackage : TurboReactPackage() { override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? = if (name == FreshdeskModule.NAME) FreshdeskModule(reactContext) else null override fun getReactModuleInfoProvider() = ReactModuleInfoProvider { val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED mapOf( FreshdeskModule.NAME to ReactModuleInfo( // 6-arg ReactModuleInfo constructor (the `hasConstants` parameter // was removed around RN 0.74). Matches the supported RN 0.75+ range. FreshdeskModule.NAME, // name FreshdeskModule.NAME, // className false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule isTurboModule // isTurboModule ) ) } }