mirror of
https://github.com/status-im/react-native.git
synced 2025-01-13 11:05:21 +00:00
099b28006b
Summary: We are removing `reactBridgeDidFinishTransaction`. Why? * It is a performance drain. Supporting this requires dispatching main-thread block on every single transaction complete; * It has "too broad" non-conceptual semantic which encouraged using this as a "band-aid solution" for poorly designed components; * It is conceptually incompatible with new approaches that we are trying to implement to optimize the render layer; * It was deprecated for very long time. This diff replaces usage of `reactBridgeDidFinishTransaction` with `uiManagerDidPerformMounting` which has very similar semantic except that fact that `uiManagerDidPerformMounting` is called asynchronously on the next run loop tick. And this should be okay because new React partial rendering does not guarantee synchronous execution anyways. Reviewed By: mmmulani Differential Revision: D6549217 fbshipit-source-id: 2649e943e82e6fbe02c7678583a97db3f5800201
37 lines
1.1 KiB
Objective-C
37 lines
1.1 KiB
Objective-C
/**
|
|
* 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/RCTFrameUpdate.h>
|
|
|
|
@class RCTBridge;
|
|
|
|
@interface RCTNavigator : UIView <RCTFrameUpdateObserver>
|
|
|
|
@property (nonatomic, strong) UIView *reactNavSuperviewLink;
|
|
@property (nonatomic, assign) NSInteger requestedTopOfStack;
|
|
@property (nonatomic, assign) BOOL interactivePopGestureEnabled;
|
|
|
|
- (instancetype)initWithBridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER;
|
|
|
|
/**
|
|
* Schedules a JavaScript navigation and prevents `UIKit` from navigating until
|
|
* JavaScript has sent its scheduled navigation.
|
|
*
|
|
* @returns Whether or not a JavaScript driven navigation could be
|
|
* scheduled/reserved. If returning `NO`, JavaScript should usually just do
|
|
* nothing at all.
|
|
*/
|
|
- (BOOL)requestSchedulingJavaScriptNavigation;
|
|
|
|
- (void)uiManagerDidPerformMounting;
|
|
|
|
@end
|