Add guard for custom module provider lookup in TMManager (#49738)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/49738

**Context**

- D70012142 added TM module provider support
- This was causing RN MacOS to silently fail to load any platform modules since it didn't implement the delegate method

Changelog:
[iOS][Fixed] - Add guard for custom module provider lookup in TMManager

Reviewed By: sbuggay

Differential Revision: D70357542

fbshipit-source-id: 5b338616655ecb84cdb3c60e243fdb99444af657
This commit is contained in:
Shawn Dempsey
2025-02-27 18:41:41 -08:00
committed by Facebook GitHub Bot
parent 587d849c23
commit d0a101fbea
@@ -493,19 +493,21 @@ typedef struct {
- (id<RCTModuleProvider>)_moduleProviderForName:(const char *)moduleName
{
id<RCTModuleProvider> moduleProvider = [_delegate getModuleProvider:moduleName];
BOOL isTurboModule = [self _isTurboModule:moduleName];
if (RCTTurboModuleEnabled() && !isTurboModule && !moduleProvider) {
return nil;
}
if ([_delegate respondsToSelector:@selector(getModuleProvider:)]) {
id<RCTModuleProvider> moduleProvider = [_delegate getModuleProvider:moduleName];
BOOL isTurboModule = [self _isTurboModule:moduleName];
if (RCTTurboModuleEnabled() && !isTurboModule && !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<RCTModuleProvider>)[self _provideObjCModule:moduleName moduleProvider:moduleProvider];
if (moduleProvider) {
if ([moduleProvider conformsToProtocol:@protocol(RCTTurboModule)]) {
// moduleProvider is also a TM, we need to initialize objectiveC properties, like the dispatch queue
return (id<RCTModuleProvider>)[self _provideObjCModule:moduleName moduleProvider:moduleProvider];
}
// module is Cxx module
return moduleProvider;
}
// module is Cxx module
return moduleProvider;
}
// No module provider, the Module is registered without Codegen