/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import "RCTAppDelegate.h" #import #import #import #import #import #include #import #import "RCTAppSetupUtils.h" #import "RCTDependencyProvider.h" #if RN_DISABLE_OSS_PLUGIN_HEADER #import #else #import #endif #import #import #import using namespace facebook::react; @implementation RCTAppDelegate - (instancetype)init { if (self = [super init]) { _automaticallyLoadReactNativeWindow = YES; } return self; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:self]; if (self.automaticallyLoadReactNativeWindow) { [self loadReactNativeWindow:launchOptions]; } return YES; } - (void)loadReactNativeWindow:(NSDictionary *)launchOptions { UIView *rootView = [self.rootViewFactory viewWithModuleName:self.moduleName initialProperties:self.initialProps launchOptions:launchOptions]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self createRootViewController]; [self setRootView:rootView toRootViewController:rootViewController]; _window.rootViewController = rootViewController; [_window makeKeyAndVisible]; } - (RCTRootViewFactory *)rootViewFactory { return self.reactNativeFactory.rootViewFactory; } - (RCTBridge *)bridge { return self.rootViewFactory.bridge; } - (RCTSurfacePresenterBridgeAdapter *)bridgeAdapter { return self.rootViewFactory.bridgeAdapter; } - (void)setBridge:(RCTBridge *)bridge { self.reactNativeFactory.rootViewFactory.bridge = bridge; } - (void)setBridgeAdapter:(RCTSurfacePresenterBridgeAdapter *)bridgeAdapter { self.reactNativeFactory.rootViewFactory.bridgeAdapter = bridgeAdapter; } @end