Skip to content

Commit 85b47af

Browse files
cipolleschifacebook-github-bot
authored andcommitted
Check delegate for getModuleForClass and getModuleInstanceFromClass (#53207)
Summary: Pull Request resolved: #53207 When restructuring the RCTReactNativeFactory, we forgot to add a couple of methods to check whether the delegate was implementing the RCTTurboModuleManager delegate methods. This has been reported [here](react-native-community/discussions-and-proposals#916) This change fixes it. ## Changelog: [iOS][Fixed] - Ask the delegate for `getModuleForClass` and `getModuleInstanceFromClass` Reviewed By: cortinico Differential Revision: D79998104 fbshipit-source-id: 68069a9f93182d4fa416b5799bf4eec4d107552b
1 parent 9c9a39b commit 85b47af

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

packages/react-native/Libraries/AppDelegate/RCTReactNativeFactory.mm

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@ - (Class)getModuleClassFromName:(const char *)name
146146
#if RN_DISABLE_OSS_PLUGIN_HEADER
147147
return RCTTurboModulePluginClassProvider(name);
148148
#else
149+
if ([_delegate respondsToSelector:@selector(getModuleClassFromName:)]) {
150+
Class moduleClass = [_delegate getModuleClassFromName:name];
151+
if (moduleClass != nil) {
152+
return moduleClass;
153+
}
154+
}
149155
return RCTCoreModulesClassProvider(name);
150156
#endif
151157
}
@@ -176,7 +182,12 @@ - (Class)getModuleClassFromName:(const char *)name
176182
format:@"Delegate must provide a valid dependencyProvider"];
177183
}
178184
#endif
179-
185+
if ([_delegate respondsToSelector:@selector(getModuleInstanceFromClass:)]) {
186+
id<RCTTurboModule> moduleInstance = [_delegate getModuleInstanceFromClass:moduleClass];
187+
if (moduleInstance != nil) {
188+
return moduleInstance;
189+
}
190+
}
180191
return RCTAppSetupDefaultModuleFromClass(moduleClass, self.delegate.dependencyProvider);
181192
}
182193

0 commit comments

Comments
 (0)