Splitting `RCTRootView.m`, decoupling RCTRootContentView
Reviewed By: javache Differential Revision: D4570067 fbshipit-source-id: 91305d0c175af135ce2f22d7992bee68c13da80e
This commit is contained in:
parent
ba170ec78c
commit
c02c78a681
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import <React/RCTInvalidating.h>
|
||||
#import <React/RCTRootView.h>
|
||||
#import <React/RCTView.h>
|
||||
|
||||
@class RCTBridge;
|
||||
@class RCTTouchHandler;
|
||||
|
||||
@interface RCTRootContentView : RCTView <RCTInvalidating>
|
||||
|
||||
@property (nonatomic, readonly) BOOL contentHasAppeared;
|
||||
@property (nonatomic, readonly, strong) RCTTouchHandler *touchHandler;
|
||||
@property (nonatomic, assign) BOOL passThroughTouches;
|
||||
@property (nonatomic, assign) RCTRootViewSizeFlexibility sizeFlexibility;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
bridge:(RCTBridge *)bridge
|
||||
reactTag:(NSNumber *)reactTag
|
||||
sizeFlexiblity:(RCTRootViewSizeFlexibility)sizeFlexibility NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
|
@ -0,0 +1,126 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
#import "RCTRootContentView.h"
|
||||
|
||||
#import "RCTBridge.h"
|
||||
#import "RCTPerformanceLogger.h"
|
||||
#import "RCTRootView.h"
|
||||
#import "RCTRootViewInternal.h"
|
||||
#import "RCTTouchHandler.h"
|
||||
#import "RCTUIManager.h"
|
||||
#import "UIView+React.h"
|
||||
|
||||
@implementation RCTRootContentView
|
||||
{
|
||||
__weak RCTBridge *_bridge;
|
||||
UIColor *_backgroundColor;
|
||||
}
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
bridge:(RCTBridge *)bridge
|
||||
reactTag:(NSNumber *)reactTag
|
||||
sizeFlexiblity:(RCTRootViewSizeFlexibility)sizeFlexibility
|
||||
{
|
||||
if ((self = [super initWithFrame:frame])) {
|
||||
_bridge = bridge;
|
||||
self.reactTag = reactTag;
|
||||
_sizeFlexibility = sizeFlexibility;
|
||||
_touchHandler = [[RCTTouchHandler alloc] initWithBridge:_bridge];
|
||||
[_touchHandler attachToView:self];
|
||||
[_bridge.uiManager registerRootView:self];
|
||||
self.layer.backgroundColor = NULL;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame:(CGRect)frame)
|
||||
RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder:(nonnull NSCoder *)aDecoder)
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
[self updateAvailableSize];
|
||||
}
|
||||
|
||||
- (void)insertReactSubview:(UIView *)subview atIndex:(NSInteger)atIndex
|
||||
{
|
||||
[super insertReactSubview:subview atIndex:atIndex];
|
||||
[_bridge.performanceLogger markStopForTag:RCTPLTTI];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (!self->_contentHasAppeared) {
|
||||
self->_contentHasAppeared = YES;
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:RCTContentDidAppearNotification
|
||||
object:self.superview];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setSizeFlexibility:(RCTRootViewSizeFlexibility)sizeFlexibility
|
||||
{
|
||||
if (_sizeFlexibility == sizeFlexibility) {
|
||||
return;
|
||||
}
|
||||
|
||||
_sizeFlexibility = sizeFlexibility;
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)updateAvailableSize
|
||||
{
|
||||
if (!self.reactTag || !_bridge.isValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
CGSize size = self.bounds.size;
|
||||
CGSize availableSize =
|
||||
CGSizeMake(
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityWidth ? INFINITY : size.width,
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityHeight ? INFINITY : size.height
|
||||
);
|
||||
|
||||
[_bridge.uiManager setAvailableSize:availableSize forRootView:self];
|
||||
}
|
||||
|
||||
- (void)setBackgroundColor:(UIColor *)backgroundColor
|
||||
{
|
||||
_backgroundColor = backgroundColor;
|
||||
if (self.reactTag && _bridge.isValid) {
|
||||
[_bridge.uiManager setBackgroundColor:backgroundColor forView:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIColor *)backgroundColor
|
||||
{
|
||||
return _backgroundColor;
|
||||
}
|
||||
|
||||
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
|
||||
{
|
||||
// The root content view itself should never receive touches
|
||||
UIView *hitView = [super hitTest:point withEvent:event];
|
||||
if (_passThroughTouches && hitView == self) {
|
||||
return nil;
|
||||
}
|
||||
return hitView;
|
||||
}
|
||||
|
||||
- (void)invalidate
|
||||
{
|
||||
if (self.userInteractionEnabled) {
|
||||
self.userInteractionEnabled = NO;
|
||||
[(RCTRootView *)self.superview contentViewInvalidated];
|
||||
[_bridge enqueueJSCall:@"AppRegistry"
|
||||
method:@"unmountApplicationComponentAtRootTag"
|
||||
args:@[self.reactTag]
|
||||
completion:NULL];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
|
@ -19,11 +19,11 @@
|
|||
#import "RCTEventDispatcher.h"
|
||||
#import "RCTKeyCommands.h"
|
||||
#import "RCTLog.h"
|
||||
#import "RCTPerformanceLogger.h"
|
||||
#import "RCTTouchHandler.h"
|
||||
#import "RCTUIManager.h"
|
||||
#import "RCTUtils.h"
|
||||
#import "RCTView.h"
|
||||
#import "RCTRootContentView.h"
|
||||
#import "UIView+React.h"
|
||||
#import "RCTProfile.h"
|
||||
|
||||
|
@ -40,19 +40,6 @@ NSString *const RCTContentDidAppearNotification = @"RCTContentDidAppearNotificat
|
|||
|
||||
@end
|
||||
|
||||
@interface RCTRootContentView : RCTView <RCTInvalidating>
|
||||
|
||||
@property (nonatomic, readonly) BOOL contentHasAppeared;
|
||||
@property (nonatomic, readonly, strong) RCTTouchHandler *touchHandler;
|
||||
@property (nonatomic, assign) BOOL passThroughTouches;
|
||||
@property (nonatomic, assign) RCTRootViewSizeFlexibility sizeFlexibility;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
bridge:(RCTBridge *)bridge
|
||||
reactTag:(NSNumber *)reactTag
|
||||
sizeFlexiblity:(RCTRootViewSizeFlexibility)sizeFlexibility NS_DESIGNATED_INITIALIZER;
|
||||
@end
|
||||
|
||||
@implementation RCTRootView
|
||||
{
|
||||
RCTBridge *_bridge;
|
||||
|
@ -374,111 +361,3 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
|
|||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation RCTRootContentView
|
||||
{
|
||||
__weak RCTBridge *_bridge;
|
||||
UIColor *_backgroundColor;
|
||||
}
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
bridge:(RCTBridge *)bridge
|
||||
reactTag:(NSNumber *)reactTag
|
||||
sizeFlexiblity:(RCTRootViewSizeFlexibility)sizeFlexibility
|
||||
{
|
||||
if ((self = [super initWithFrame:frame])) {
|
||||
_bridge = bridge;
|
||||
self.reactTag = reactTag;
|
||||
_sizeFlexibility = sizeFlexibility;
|
||||
_touchHandler = [[RCTTouchHandler alloc] initWithBridge:_bridge];
|
||||
[_touchHandler attachToView:self];
|
||||
[_bridge.uiManager registerRootView:self];
|
||||
self.layer.backgroundColor = NULL;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame:(CGRect)frame)
|
||||
RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder:(nonnull NSCoder *)aDecoder)
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
[self updateAvailableSize];
|
||||
}
|
||||
|
||||
- (void)insertReactSubview:(UIView *)subview atIndex:(NSInteger)atIndex
|
||||
{
|
||||
[super insertReactSubview:subview atIndex:atIndex];
|
||||
[_bridge.performanceLogger markStopForTag:RCTPLTTI];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (!self->_contentHasAppeared) {
|
||||
self->_contentHasAppeared = YES;
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:RCTContentDidAppearNotification
|
||||
object:self.superview];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setSizeFlexibility:(RCTRootViewSizeFlexibility)sizeFlexibility
|
||||
{
|
||||
if (_sizeFlexibility == sizeFlexibility) {
|
||||
return;
|
||||
}
|
||||
|
||||
_sizeFlexibility = sizeFlexibility;
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)updateAvailableSize
|
||||
{
|
||||
if (!self.reactTag || !_bridge.isValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
CGSize size = self.bounds.size;
|
||||
CGSize availableSize =
|
||||
CGSizeMake(
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityWidth ? INFINITY : size.width,
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityHeight ? INFINITY : size.height
|
||||
);
|
||||
|
||||
[_bridge.uiManager setAvailableSize:availableSize forRootView:self];
|
||||
}
|
||||
|
||||
- (void)setBackgroundColor:(UIColor *)backgroundColor
|
||||
{
|
||||
_backgroundColor = backgroundColor;
|
||||
if (self.reactTag && _bridge.isValid) {
|
||||
[_bridge.uiManager setBackgroundColor:backgroundColor forView:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIColor *)backgroundColor
|
||||
{
|
||||
return _backgroundColor;
|
||||
}
|
||||
|
||||
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
|
||||
{
|
||||
// The root content view itself should never receive touches
|
||||
UIView *hitView = [super hitTest:point withEvent:event];
|
||||
if (_passThroughTouches && hitView == self) {
|
||||
return nil;
|
||||
}
|
||||
return hitView;
|
||||
}
|
||||
|
||||
- (void)invalidate
|
||||
{
|
||||
if (self.userInteractionEnabled) {
|
||||
self.userInteractionEnabled = NO;
|
||||
[(RCTRootView *)self.superview contentViewInvalidated];
|
||||
[_bridge enqueueJSCall:@"AppRegistry"
|
||||
method:@"unmountApplicationComponentAtRootTag"
|
||||
args:@[self.reactTag]
|
||||
completion:NULL];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -30,4 +30,6 @@
|
|||
@property (nonatomic, strong) UIView *reactPreferredFocusedView;
|
||||
#endif
|
||||
|
||||
- (void)contentViewInvalidated;
|
||||
|
||||
@end
|
||||
|
|
|
@ -713,6 +713,10 @@
|
|||
594AD5D21E46D87500B07237 /* RCTScrollContentViewManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 594AD5CB1E46D87500B07237 /* RCTScrollContentViewManager.h */; };
|
||||
594AD5D31E46D87500B07237 /* RCTScrollContentViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 594AD5CC1E46D87500B07237 /* RCTScrollContentViewManager.m */; };
|
||||
594AD5D41E46D87500B07237 /* RCTScrollContentViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 594AD5CC1E46D87500B07237 /* RCTScrollContentViewManager.m */; };
|
||||
597AD1BD1E577D7800152581 /* RCTRootContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 597AD1BB1E577D7800152581 /* RCTRootContentView.h */; };
|
||||
597AD1BE1E577D7800152581 /* RCTRootContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 597AD1BB1E577D7800152581 /* RCTRootContentView.h */; };
|
||||
597AD1BF1E577D7800152581 /* RCTRootContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 597AD1BC1E577D7800152581 /* RCTRootContentView.m */; };
|
||||
597AD1C01E577D7800152581 /* RCTRootContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 597AD1BC1E577D7800152581 /* RCTRootContentView.m */; };
|
||||
68EFE4EE1CF6EB3900A1DE13 /* RCTBundleURLProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */; };
|
||||
830A229E1A66C68A008503DA /* RCTRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = 830A229D1A66C68A008503DA /* RCTRootView.m */; };
|
||||
83392EB31B6634E10013B15F /* RCTModalHostViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83392EB21B6634E10013B15F /* RCTModalHostViewController.m */; };
|
||||
|
@ -1335,6 +1339,8 @@
|
|||
594AD5CA1E46D87500B07237 /* RCTScrollContentShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTScrollContentShadowView.m; sourceTree = "<group>"; };
|
||||
594AD5CB1E46D87500B07237 /* RCTScrollContentViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollContentViewManager.h; sourceTree = "<group>"; };
|
||||
594AD5CC1E46D87500B07237 /* RCTScrollContentViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTScrollContentViewManager.m; sourceTree = "<group>"; };
|
||||
597AD1BB1E577D7800152581 /* RCTRootContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootContentView.h; sourceTree = "<group>"; };
|
||||
597AD1BC1E577D7800152581 /* RCTRootContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootContentView.m; sourceTree = "<group>"; };
|
||||
68EFE4EC1CF6EB3000A1DE13 /* RCTBundleURLProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBundleURLProvider.h; sourceTree = "<group>"; };
|
||||
68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBundleURLProvider.m; sourceTree = "<group>"; };
|
||||
6A15FB0C1BDF663500531DFB /* RCTRootViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootViewInternal.h; sourceTree = "<group>"; };
|
||||
|
@ -1771,6 +1777,8 @@
|
|||
3D7749431DC1065C007EC8D8 /* RCTPlatform.m */,
|
||||
A2440AA01DF8D854006E7BFC /* RCTReloadCommand.h */,
|
||||
A2440AA11DF8D854006E7BFC /* RCTReloadCommand.m */,
|
||||
597AD1BB1E577D7800152581 /* RCTRootContentView.h */,
|
||||
597AD1BC1E577D7800152581 /* RCTRootContentView.m */,
|
||||
830A229C1A66C68A008503DA /* RCTRootView.h */,
|
||||
830A229D1A66C68A008503DA /* RCTRootView.m */,
|
||||
13AFBCA21C07287B00BBAEAA /* RCTRootViewDelegate.h */,
|
||||
|
@ -1880,6 +1888,7 @@
|
|||
3D302F681DF828F800D6DDAE /* RCTMacros.h in Headers */,
|
||||
3D302F691DF828F800D6DDAE /* RCTProfile.h in Headers */,
|
||||
3D302F6A1DF828F800D6DDAE /* RCTActivityIndicatorView.h in Headers */,
|
||||
597AD1BE1E577D7800152581 /* RCTRootContentView.h in Headers */,
|
||||
3D302F6B1DF828F800D6DDAE /* RCTActivityIndicatorViewManager.h in Headers */,
|
||||
3D302F6C1DF828F800D6DDAE /* RCTAnimationType.h in Headers */,
|
||||
3D302F6D1DF828F800D6DDAE /* RCTAutoInsetsProtocol.h in Headers */,
|
||||
|
@ -2016,6 +2025,7 @@
|
|||
3D80DA2B1DF820620028D040 /* RCTErrorInfo.h in Headers */,
|
||||
3D80DA2C1DF820620028D040 /* RCTEventDispatcher.h in Headers */,
|
||||
3D80DA2D1DF820620028D040 /* RCTFrameUpdate.h in Headers */,
|
||||
597AD1BD1E577D7800152581 /* RCTRootContentView.h in Headers */,
|
||||
3D80DA2E1DF820620028D040 /* RCTImageSource.h in Headers */,
|
||||
3D80DA2F1DF820620028D040 /* RCTInvalidating.h in Headers */,
|
||||
3D80DA301DF820620028D040 /* RCTJavaScriptExecutor.h in Headers */,
|
||||
|
@ -2467,6 +2477,7 @@
|
|||
2D3B5ED91D9B098E00451313 /* RCTNavItem.m in Sources */,
|
||||
2D74EAFA1DAE9590003B751B /* RCTMultipartDataTask.m in Sources */,
|
||||
2D3B5EC51D9B094D00451313 /* RCTProfileTrampoline-i386.S in Sources */,
|
||||
597AD1C01E577D7800152581 /* RCTRootContentView.m in Sources */,
|
||||
2D3B5EC41D9B094B00451313 /* RCTProfileTrampoline-arm64.S in Sources */,
|
||||
2D3B5EBB1D9B092300451313 /* RCTI18nManager.m in Sources */,
|
||||
2D3B5EBE1D9B092D00451313 /* RCTUIManager.m in Sources */,
|
||||
|
@ -2537,6 +2548,7 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
597AD1BF1E577D7800152581 /* RCTRootContentView.m in Sources */,
|
||||
13456E961ADAD482009F94A7 /* RCTConvert+MapKit.m in Sources */,
|
||||
13723B501A82FD3C00F88898 /* RCTStatusBarManager.m in Sources */,
|
||||
000E6CEB1AB0E980000CDF4D /* RCTSourceCode.m in Sources */,
|
||||
|
|
|
@ -780,6 +780,8 @@
|
|||
58114A171AAE854800E7D092 /* RCTPickerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58114A151AAE854800E7D092 /* RCTPickerManager.m */; };
|
||||
58114A501AAE93D500E7D092 /* RCTAsyncLocalStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 58114A4E1AAE93D500E7D092 /* RCTAsyncLocalStorage.m */; };
|
||||
58C571C11AA56C1900CDF9C8 /* RCTDatePickerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */; };
|
||||
59A7B9FD1E577DBF0068EDBF /* RCTRootContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 59A7B9FB1E577DBF0068EDBF /* RCTRootContentView.h */; };
|
||||
59A7B9FE1E577DBF0068EDBF /* RCTRootContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 59A7B9FC1E577DBF0068EDBF /* RCTRootContentView.m */; };
|
||||
59FBEFB01E46D91C0095D885 /* RCTScrollContentShadowView.h in Headers */ = {isa = PBXBuildFile; fileRef = 59FBEFAC1E46D91C0095D885 /* RCTScrollContentShadowView.h */; };
|
||||
59FBEFB11E46D91C0095D885 /* RCTScrollContentShadowView.h in Headers */ = {isa = PBXBuildFile; fileRef = 59FBEFAC1E46D91C0095D885 /* RCTScrollContentShadowView.h */; };
|
||||
59FBEFB21E46D91C0095D885 /* RCTScrollContentShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 59FBEFAD1E46D91C0095D885 /* RCTScrollContentShadowView.m */; };
|
||||
|
@ -1437,6 +1439,8 @@
|
|||
58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAsyncLocalStorage.h; sourceTree = "<group>"; };
|
||||
58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePickerManager.m; sourceTree = "<group>"; };
|
||||
58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = RCTDatePickerManager.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
59A7B9FB1E577DBF0068EDBF /* RCTRootContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootContentView.h; sourceTree = "<group>"; };
|
||||
59A7B9FC1E577DBF0068EDBF /* RCTRootContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootContentView.m; sourceTree = "<group>"; };
|
||||
59FBEFAC1E46D91C0095D885 /* RCTScrollContentShadowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollContentShadowView.h; sourceTree = "<group>"; };
|
||||
59FBEFAD1E46D91C0095D885 /* RCTScrollContentShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTScrollContentShadowView.m; sourceTree = "<group>"; };
|
||||
59FBEFAE1E46D91C0095D885 /* RCTScrollContentViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollContentViewManager.h; sourceTree = "<group>"; };
|
||||
|
@ -2052,6 +2056,8 @@
|
|||
3D7749431DC1065C007EC8D8 /* RCTPlatform.m */,
|
||||
A2440AA01DF8D854006E7BFC /* RCTReloadCommand.h */,
|
||||
A2440AA11DF8D854006E7BFC /* RCTReloadCommand.m */,
|
||||
59A7B9FB1E577DBF0068EDBF /* RCTRootContentView.h */,
|
||||
59A7B9FC1E577DBF0068EDBF /* RCTRootContentView.m */,
|
||||
830A229C1A66C68A008503DA /* RCTRootView.h */,
|
||||
830A229D1A66C68A008503DA /* RCTRootView.m */,
|
||||
13AFBCA21C07287B00BBAEAA /* RCTRootViewDelegate.h */,
|
||||
|
@ -2485,6 +2491,7 @@
|
|||
3D80DA4F1DF820620028D040 /* RCTDevLoadingView.h in Headers */,
|
||||
3D80DA501DF820620028D040 /* RCTDevMenu.h in Headers */,
|
||||
3D80DA511DF820620028D040 /* RCTEventEmitter.h in Headers */,
|
||||
59A7B9FD1E577DBF0068EDBF /* RCTRootContentView.h in Headers */,
|
||||
3D80DA521DF820620028D040 /* RCTExceptionsManager.h in Headers */,
|
||||
3D80DA531DF820620028D040 /* RCTI18nManager.h in Headers */,
|
||||
3D80DA541DF820620028D040 /* RCTI18nUtil.h in Headers */,
|
||||
|
@ -3178,6 +3185,7 @@
|
|||
13A0C2891B74F71200B29F6F /* RCTDevLoadingView.m in Sources */,
|
||||
13B07FF21A69327A00A75B9A /* RCTTiming.m in Sources */,
|
||||
1372B70A1AB030C200659ED6 /* RCTAppState.m in Sources */,
|
||||
59A7B9FE1E577DBF0068EDBF /* RCTRootContentView.m in Sources */,
|
||||
134FCB3D1A6E7F0800051CC8 /* RCTJSCExecutor.mm in Sources */,
|
||||
14C2CA781B3ACB0400E6CBB2 /* RCTBatchedBridge.m in Sources */,
|
||||
13E067591A70F44B002CDEE1 /* UIView+React.m in Sources */,
|
||||
|
|
Loading…
Reference in New Issue