11import UIKit
22import React
33import React_RCTAppDelegate
4- import ReactAppDependencyProvider
54
6- open class ReactAppProvider : RCTAppDelegate {
5+ open class ReactAppProvider : RCTDefaultReactNativeFactoryDelegate , UIApplicationDelegate {
76
87 public static let defaultName = " App "
8+
9+ public var window : UIWindow ?
10+ public var reactNativeFactory : RCTReactNativeFactory ?
11+ public var moduleName : String = defaultName
912
1013 var reactRootViewName : String = defaultName
1114
12- public func setUpProvider( moduleName: String = ReactAppProvider . defaultName, reactRootViewName: String = ReactAppProvider . defaultName) {
15+ public func setUpProvider(
16+ moduleName: String = ReactAppProvider . defaultName,
17+ reactRootViewName: String = ReactAppProvider . defaultName,
18+ dependencyProvider: ( any RCTDependencyProvider ) ? = nil
19+ ) {
1320 self . moduleName = moduleName
1421 self . reactRootViewName = reactRootViewName
15- automaticallyLoadReactNativeWindow = false
16- dependencyProvider = RCTAppDependencyProvider ( )
22+ if let dependencyProvider {
23+ self . dependencyProvider = dependencyProvider
24+ }
1725 window = MendixReactWindow ( frame: UIScreen . main. bounds)
26+ reactNativeFactory = RCTReactNativeFactory ( delegate: self )
1827 }
19-
20- public override func sourceURL ( for bridge : RCTBridge ) -> URL ? {
21- return self . bundleURL ( )
28+
29+ open func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ? = nil ) -> Bool {
30+ true
2231 }
2332
2433 open override func bundleURL( ) -> URL ? {
2534 return ReactNative . shared. bundleURL ( )
2635 }
36+
37+ open override func sourceURL( for bridge: RCTBridge ) -> URL ? {
38+ return self . bundleURL ( )
39+ }
2740
2841 public func setReactViewController( _ controller: UIViewController ) {
2942 controller. view = reactAppView ( )
3043 changeRoot ( to: controller)
3144 }
3245
3346 public func reactAppView( ) -> UIView ? {
34- let view = rootViewFactory ( ) . view ( withModuleName: reactRootViewName)
47+ guard let view = reactNativeFactory? . rootViewFactory. view ( withModuleName: reactRootViewName) else {
48+ return nil
49+ }
3550 view. autoresizingMask = [ . flexibleWidth, . flexibleHeight]
36- view. frame = window. rootViewController? . view. frame ?? . zero
51+ view. frame = window? . rootViewController? . view. frame ?? . zero
3752 return view
3853 }
3954
@@ -53,12 +68,12 @@ open class ReactAppProvider: RCTAppDelegate {
5368 }
5469
5570 public func changeRoot( to controller: UIViewController ) {
56- window. rootViewController = controller
57- window. makeKeyAndVisible ( )
71+ window? . rootViewController = controller
72+ window? . makeKeyAndVisible ( )
5873 }
5974
6075 public var rootView : UIView ? {
61- return window. rootViewController? . view
76+ return window? . rootViewController? . view
6277 }
6378
6479 public static func getModule< T: NSObject > ( type: T . Type ) -> T ? {
0 commit comments