diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm index b784ba5942ae51..81dd4ef34db390 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm @@ -493,21 +493,22 @@ - (BOOL)_isLegacyModuleClass:(Class)moduleClass - (id)_moduleProviderForName:(const char *)moduleName { + id moduleProvider = nil; if ([_delegate respondsToSelector:@selector(getModuleProvider:)]) { - id moduleProvider = [_delegate getModuleProvider:moduleName]; - BOOL isTurboModule = [self _isTurboModule:moduleName]; - if (RCTTurboModuleEnabled() && !isTurboModule && !moduleProvider) { - return nil; - } + moduleProvider = [_delegate getModuleProvider:moduleName]; + } - if (moduleProvider) { - if ([moduleProvider conformsToProtocol:@protocol(RCTTurboModule)]) { - // moduleProvider is also a TM, we need to initialize objectiveC properties, like the dispatch queue - return (id)[self _provideObjCModule:moduleName moduleProvider:moduleProvider]; - } - // module is Cxx module - return moduleProvider; + if (RCTTurboModuleInteropEnabled() && ![self _isTurboModule:moduleName] && !moduleProvider) { + return nil; + } + + if (moduleProvider) { + if ([moduleProvider conformsToProtocol:@protocol(RCTTurboModule)]) { + // moduleProvider is also a TM, we need to initialize objectiveC properties, like the dispatch queue + return (id)[self _provideObjCModule:moduleName moduleProvider:moduleProvider]; } + // module is Cxx module + return moduleProvider; } // No module provider, the Module is registered without Codegen