Refactor app template setup util functions

Summary:
Changelog: [internal] Refactor RCTAppSetupUtils to c functions.

Since RCTAppSetupUtils doesn't retain any states, we don't need it to be a class.

Reviewed By: philIip

Differential Revision: D33084352

fbshipit-source-id: 1372a2737eafffa46ee6e5164a970dd12699c71c
This commit is contained in:
Sota Ogo
2021-12-15 18:14:36 -08:00
committed by Facebook GitHub Bot
parent c0c5439959
commit 1cd8f05ee8
3 changed files with 22 additions and 28 deletions
+10 -10
View File
@@ -28,16 +28,16 @@
#import <ReactCommon/RCTTurboModuleManager.h>
#endif
@interface RCTAppSetupUtils : NSObject
+ (void)prepareApp:(UIApplication *_Nonnull)application;
+ (UIView *_Nonnull)defaultRootViewWithBridge:(RCTBridge *_Nonnull)bridge
moduleName:(NSString *_Nonnull)moduleName
initialProperties:(nullable NSDictionary *)initialProperties;
RCT_EXTERN_C_BEGIN
void RCTAppSetupPrepareApp(UIApplication *application);
UIView *RCTAppSetupDefaultRootView(RCTBridge *bridge, NSString *moduleName, NSDictionary *initialProperties);
#if RCT_NEW_ARCH_ENABLED
+ (id<RCTTurboModule> _Nonnull)defaultModuleInstanceFromClass:(Class _Nonnull)moduleClass;
+ (std::unique_ptr<facebook::react::JSExecutorFactory>)
defaultJsExecutorFactoryForBridge:(RCTBridge *_Nonnull)bridge
withTurboModuleManager:(RCTTurboModuleManager *_Nonnull)turboModuleManager;
id<RCTTurboModule> RCTAppSetupDefaultModuleFromClass(Class moduleClass);
std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupDefaultJsexecutorFactory(
RCTBridge *bridge,
RCTTurboModuleManager *turboModuleManager);
#endif
@end
RCT_EXTERN_C_END
+6 -12
View File
@@ -44,9 +44,7 @@ static void InitializeFlipper(UIApplication *application)
}
#endif
@implementation RCTAppSetupUtils
+ (void)prepareApp:(UIApplication *)application
void RCTAppSetupPrepareApp(UIApplication *application)
{
#ifdef FB_SONARKIT_ENABLED
InitializeFlipper(application);
@@ -57,9 +55,7 @@ static void InitializeFlipper(UIApplication *application)
#endif
}
+ (UIView *)defaultRootViewWithBridge:(RCTBridge *)bridge
moduleName:(NSString *)moduleName
initialProperties:(NSDictionary *)initialProperties
UIView *RCTAppSetupDefaultRootView(RCTBridge *bridge, NSString *moduleName, NSDictionary *initialProperties)
{
#if RCT_NEW_ARCH_ENABLED
return [[RCTFabricSurfaceHostingProxyRootView alloc] initWithBridge:bridge
@@ -71,7 +67,7 @@ static void InitializeFlipper(UIApplication *application)
}
#if RCT_NEW_ARCH_ENABLED
+ (id<RCTTurboModule>)defaultModuleInstanceFromClass:(Class)moduleClass
id<RCTTurboModule> RCTAppSetupDefaultModuleFromClass(Class moduleClass)
{
// Set up the default RCTImageLoader and RCTNetworking modules.
if (moduleClass == RCTImageLoader.class) {
@@ -96,9 +92,9 @@ static void InitializeFlipper(UIApplication *application)
return [moduleClass new];
}
+ (std::unique_ptr<facebook::react::JSExecutorFactory>)defaultJsExecutorFactoryForBridge:(RCTBridge *)bridge
withTurboModuleManager:
(RCTTurboModuleManager *)turboModuleManager;
std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupDefaultJsExecutorFactory(
RCTBridge *bridge,
RCTTurboModuleManager *turboModuleManager)
{
// Necessary to allow NativeModules to lookup TurboModules
[bridge setRCTTurboModuleRegistry:turboModuleManager];
@@ -131,5 +127,3 @@ static void InitializeFlipper(UIApplication *application)
}
#endif
@end
+6 -6
View File
@@ -25,11 +25,13 @@
@end
#endif
using namespace facebook::react;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[RCTAppSetupUtils prepareApp: application];
RCTAppSetupPrepareApp(application);
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
@@ -41,9 +43,7 @@
bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;
#endif
UIView *rootView = [RCTAppSetupUtils defaultRootViewWithBridge:bridge
moduleName:@"HelloWorld"
initialProperties:nil];
UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"HelloWorld", nil);
if (@available(iOS 13.0, *)) {
rootView.backgroundColor = [UIColor systemBackgroundColor];
@@ -77,7 +77,7 @@
_turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge
delegate:self
jsInvoker:bridge.jsCallInvoker];
return [RCTAppSetupUtils defaultJsExecutorFactoryForBridge:bridge withTurboModuleManager:_turboModuleManager];
return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);
}
#pragma mark RCTTurboModuleManagerDelegate
@@ -101,7 +101,7 @@
- (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass
{
return [RCTAppSetupUtils defaultModuleInstanceFromClass: moduleClass];
return RCTAppSetupDefaultModuleFromClass(moduleClass);
}
#endif