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