mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
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:
committed by
Facebook GitHub Bot
parent
587d849c23
commit
d0a101fbea
+13
-11
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user