mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix AppDelegate not passing props in bridgeless and rename getBundleURL (#41169)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41169 * `initialProperties` should be based on `prepareInitialProps`, not `launchOptions` (which don't seem to have an equivalent in bridgeless) * `getBundleURL` is not idiomatic Objective-C (eg https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html), so rename to `bundleURL` Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D50595790 fbshipit-source-id: b718ebf2590b1d4512bcbd4846c8d11200f486e4
This commit is contained in:
committed by
Facebook GitHub Bot
parent
70acd3f7d9
commit
31cf4c4ead
@@ -139,7 +139,7 @@
|
|||||||
- (BOOL)bridgelessEnabled;
|
- (BOOL)bridgelessEnabled;
|
||||||
|
|
||||||
/// Return the bundle URL for the main bundle.
|
/// Return the bundle URL for the main bundle.
|
||||||
- (NSURL *)getBundleURL;
|
- (NSURL *)bundleURL;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ static NSString *const kRNConcurrentRoot = @"concurrentRoot";
|
|||||||
RCTAppSetupPrepareApp(application, enableTM);
|
RCTAppSetupPrepareApp(application, enableTM);
|
||||||
|
|
||||||
UIView *rootView;
|
UIView *rootView;
|
||||||
|
|
||||||
if (enableBridgeless) {
|
if (enableBridgeless) {
|
||||||
#if RCT_NEW_ARCH_ENABLED
|
#if RCT_NEW_ARCH_ENABLED
|
||||||
// Enable native view config interop only if both bridgeless mode and Fabric is enabled.
|
// Enable native view config interop only if both bridgeless mode and Fabric is enabled.
|
||||||
@@ -101,8 +100,8 @@ static NSString *const kRNConcurrentRoot = @"concurrentRoot";
|
|||||||
[self createReactHost];
|
[self createReactHost];
|
||||||
[self unstable_registerLegacyComponents];
|
[self unstable_registerLegacyComponents];
|
||||||
[RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self;
|
[RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self;
|
||||||
RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:self.moduleName
|
NSDictionary *initProps = [self prepareInitialProps];
|
||||||
initialProperties:launchOptions];
|
RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:self.moduleName initialProperties:initProps];
|
||||||
|
|
||||||
RCTSurfaceHostingProxyRootView *surfaceHostingProxyRootView = [[RCTSurfaceHostingProxyRootView alloc]
|
RCTSurfaceHostingProxyRootView *surfaceHostingProxyRootView = [[RCTSurfaceHostingProxyRootView alloc]
|
||||||
initWithSurface:surface
|
initWithSurface:surface
|
||||||
@@ -284,14 +283,14 @@ static NSString *const kRNConcurrentRoot = @"concurrentRoot";
|
|||||||
- (void)createReactHost
|
- (void)createReactHost
|
||||||
{
|
{
|
||||||
__weak __typeof(self) weakSelf = self;
|
__weak __typeof(self) weakSelf = self;
|
||||||
_reactHost = [[RCTHost alloc] initWithBundleURL:[self getBundleURL]
|
_reactHost = [[RCTHost alloc] initWithBundleURL:[self bundleURL]
|
||||||
hostDelegate:nil
|
hostDelegate:nil
|
||||||
turboModuleManagerDelegate:self
|
turboModuleManagerDelegate:self
|
||||||
jsEngineProvider:^std::shared_ptr<facebook::react::JSEngineInstance>() {
|
jsEngineProvider:^std::shared_ptr<facebook::react::JSEngineInstance>() {
|
||||||
return [weakSelf createJSEngineInstance];
|
return [weakSelf createJSEngineInstance];
|
||||||
}];
|
}];
|
||||||
[_reactHost setBundleURLProvider:^NSURL *() {
|
[_reactHost setBundleURLProvider:^NSURL *() {
|
||||||
return [weakSelf getBundleURL];
|
return [weakSelf bundleURL];
|
||||||
}];
|
}];
|
||||||
[_reactHost setContextContainerHandler:self];
|
[_reactHost setContextContainerHandler:self];
|
||||||
[_reactHost start];
|
[_reactHost start];
|
||||||
@@ -311,9 +310,9 @@ static NSString *const kRNConcurrentRoot = @"concurrentRoot";
|
|||||||
contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
|
contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSURL *)getBundleURL
|
- (NSURL *)bundleURL
|
||||||
{
|
{
|
||||||
[NSException raise:@"RCTAppDelegate::getBundleURL not implemented"
|
[NSException raise:@"RCTAppDelegate::bundleURL not implemented"
|
||||||
format:@"Subclasses must implement a valid getBundleURL method"];
|
format:@"Subclasses must implement a valid getBundleURL method"];
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ NSString *kBundlePath = @"js/RNTesterApp.ios";
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
- (NSURL *)getBundleURL
|
- (NSURL *)bundleURL
|
||||||
{
|
{
|
||||||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:kBundlePath];
|
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:kBundlePath];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user