@rnx-kit/react-native-host 0.4.9 → 0.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cocoa/RNXBridgelessHeaders.h +28 -0
- package/cocoa/ReactNativeHost.mm +17 -10
- package/package.json +1 -1
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
|
|
13
13
|
#import <react/config/ReactNativeConfig.h>
|
|
14
14
|
|
|
15
|
+
#if __has_include(<react/featureflags/ReactNativeFeatureFlags.h>)
|
|
16
|
+
#import <react/featureflags/ReactNativeFeatureFlags.h>
|
|
17
|
+
#import <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
|
|
18
|
+
#define USE_FEATURE_FLAGS
|
|
19
|
+
#endif // __has_include(<react/featureflags/ReactNativeFeatureFlags.h>)
|
|
20
|
+
|
|
15
21
|
#if __has_include(<react/runtime/JSEngineInstance.h>)
|
|
16
22
|
using SharedJSRuntimeFactory = std::shared_ptr<facebook::react::JSEngineInstance>;
|
|
17
23
|
#else
|
|
@@ -42,6 +48,28 @@ using SharedJSRuntimeFactory = std::shared_ptr<facebook::react::JSRuntimeFactory
|
|
|
42
48
|
- (RCTSurfacePresenter *)getSurfacePresenter; // Deprecated in 0.74, and removed in 0.75
|
|
43
49
|
@end
|
|
44
50
|
|
|
51
|
+
#ifdef USE_FEATURE_FLAGS
|
|
52
|
+
// https://github.com/facebook/react-native/blob/0.74-stable/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm#L272-L286
|
|
53
|
+
class RNXBridgelessFeatureFlags : public facebook::react::ReactNativeFeatureFlagsDefaults
|
|
54
|
+
{
|
|
55
|
+
public:
|
|
56
|
+
bool useModernRuntimeScheduler() override
|
|
57
|
+
{
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
bool enableMicrotasks() override
|
|
62
|
+
{
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
bool batchRenderingUpdatesInEventLoop() override
|
|
67
|
+
{
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
#endif // USE_FEATURE_FLAGS
|
|
72
|
+
|
|
45
73
|
#elif USE_FABRIC
|
|
46
74
|
|
|
47
75
|
#import <React/RCTSurfacePresenterBridgeAdapter.h>
|
package/cocoa/ReactNativeHost.mm
CHANGED
|
@@ -49,6 +49,23 @@ using ReactNativeConfig = facebook::react::EmptyReactNativeConfig const;
|
|
|
49
49
|
- (instancetype)initWithConfig:(id<RNXHostConfig>)config launchOptions:(NSDictionary *)launchOptions
|
|
50
50
|
{
|
|
51
51
|
if (self = [super init]) {
|
|
52
|
+
_config = config;
|
|
53
|
+
_launchOptions = launchOptions;
|
|
54
|
+
[self enableTurboModule];
|
|
55
|
+
_isShuttingDown = [[NSLock alloc] init];
|
|
56
|
+
|
|
57
|
+
if ([config respondsToSelector:@selector(shouldReleaseBridgeWhenBackgrounded)] &&
|
|
58
|
+
[config shouldReleaseBridgeWhenBackgrounded]) {
|
|
59
|
+
_hostReleaser = [[RNXHostReleaser alloc] initWithHost:self];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
#ifdef USE_FEATURE_FLAGS
|
|
63
|
+
if (self.isBridgelessEnabled) {
|
|
64
|
+
facebook::react::ReactNativeFeatureFlags::override(
|
|
65
|
+
std::make_unique<RNXBridgelessFeatureFlags>());
|
|
66
|
+
}
|
|
67
|
+
#endif // USE_FEATURE_FLAGS
|
|
68
|
+
|
|
52
69
|
if ([config respondsToSelector:@selector(isDevLoadingViewEnabled)]) {
|
|
53
70
|
RCTDevLoadingViewSetEnabled([config isDevLoadingViewEnabled]);
|
|
54
71
|
}
|
|
@@ -69,16 +86,6 @@ using ReactNativeConfig = facebook::react::EmptyReactNativeConfig const;
|
|
|
69
86
|
});
|
|
70
87
|
}
|
|
71
88
|
|
|
72
|
-
_config = config;
|
|
73
|
-
_launchOptions = launchOptions;
|
|
74
|
-
[self enableTurboModule];
|
|
75
|
-
_isShuttingDown = [[NSLock alloc] init];
|
|
76
|
-
|
|
77
|
-
if ([config respondsToSelector:@selector(shouldReleaseBridgeWhenBackgrounded)] &&
|
|
78
|
-
[config shouldReleaseBridgeWhenBackgrounded]) {
|
|
79
|
-
_hostReleaser = [[RNXHostReleaser alloc] initWithHost:self];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
89
|
[self initializeReactHost];
|
|
83
90
|
}
|
|
84
91
|
return self;
|
package/package.json
CHANGED