Skip to content

Commit a29fd40

Browse files
author
Nazar Sydiaha
committed
chore: refactor factory initializer
1 parent 9264071 commit a29fd40

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

ios/ReactNativeBrownfield.swift

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,6 @@ class ReactNativeBrownfieldDelegate: RCTDefaultReactNativeFactoryDelegate {
3232
private var onBundleLoaded: (() -> Void)?
3333
private var delegate = ReactNativeBrownfieldDelegate()
3434

35-
private func checkFactoryInitialized(launchOptions: [AnyHashable: Any]? = nil) {
36-
if reactNativeFactory == nil {
37-
delegate.dependencyProvider = RCTAppDependencyProvider()
38-
self.reactNativeFactory = RCTReactNativeFactory(delegate: delegate)
39-
}
40-
}
4135

4236
/**
4337
* Path to JavaScript root.
@@ -76,12 +70,23 @@ class ReactNativeBrownfieldDelegate: RCTDefaultReactNativeFactoryDelegate {
7670
* Default value: nil
7771
*/
7872
private var reactNativeFactory: RCTReactNativeFactory? = nil
73+
74+
private var factory: RCTReactNativeFactory? {
75+
if let existingFactory = reactNativeFactory {
76+
return existingFactory
77+
}
78+
79+
delegate.dependencyProvider = RCTAppDependencyProvider()
80+
let createdFactory = RCTReactNativeFactory(delegate: delegate)
81+
reactNativeFactory = createdFactory
82+
return createdFactory
83+
}
7984
/**
8085
* Root view factory used to create React Native views.
8186
*/
82-
lazy private var rootViewFactory: RCTRootViewFactory? = {
83-
return reactNativeFactory?.rootViewFactory
84-
}()
87+
private var rootViewFactory: RCTRootViewFactory? {
88+
factory?.rootViewFactory
89+
}
8590

8691
/**
8792
* Starts React Native with default parameters.
@@ -95,9 +100,9 @@ class ReactNativeBrownfieldDelegate: RCTDefaultReactNativeFactoryDelegate {
95100
initialProps: [AnyHashable: Any]?,
96101
launchOptions: [AnyHashable: Any]? = nil
97102
) -> UIView? {
98-
checkFactoryInitialized(launchOptions: launchOptions)
99-
100-
return reactNativeFactory?.rootViewFactory.view(
103+
guard let rootViewFactory else { return nil }
104+
105+
return rootViewFactory.view(
101106
withModuleName: moduleName,
102107
initialProperties: initialProps,
103108
launchOptions: launchOptions
@@ -121,7 +126,7 @@ class ReactNativeBrownfieldDelegate: RCTDefaultReactNativeFactoryDelegate {
121126
*/
122127
@objc public func startReactNative(onBundleLoaded: (() -> Void)?, launchOptions: [AnyHashable: Any]?) {
123128
guard reactNativeFactory == nil else { return }
124-
checkFactoryInitialized(launchOptions: launchOptions)
129+
_ = factory
125130

126131
if let onBundleLoaded {
127132
self.onBundleLoaded = onBundleLoaded

0 commit comments

Comments
 (0)