reactBridgeDidFinishTransaction was finally removed
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. Reviewed By: mmmulani Differential Revision: D6549729 fbshipit-source-id: 58094aab982c67cec3d7fa3b616c637cb84d697f
This commit is contained in:
parent
b263560c73
commit
d2dc451407
|
@ -68,8 +68,6 @@ NSString *const RCTUIManagerWillUpdateViewsDueToContentSizeMultiplierChangeNotif
|
|||
|
||||
// Keyed by viewName
|
||||
NSDictionary *_componentDataByName;
|
||||
|
||||
NSMutableSet<id<RCTComponent>> *_bridgeTransactionListeners;
|
||||
}
|
||||
|
||||
@synthesize bridge = _bridge;
|
||||
|
@ -107,7 +105,6 @@ RCT_EXPORT_MODULE()
|
|||
self->_rootViewTags = nil;
|
||||
self->_shadowViewRegistry = nil;
|
||||
self->_viewRegistry = nil;
|
||||
self->_bridgeTransactionListeners = nil;
|
||||
self->_bridge = nil;
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
@ -145,7 +142,6 @@ RCT_EXPORT_MODULE()
|
|||
_pendingUIBlocks = [NSMutableArray new];
|
||||
_rootViewTags = [NSMutableSet new];
|
||||
|
||||
_bridgeTransactionListeners = [NSMutableSet new];
|
||||
_observerCoordinator = [RCTUIManagerObserverCoordinator new];
|
||||
|
||||
// Get view managers from bridge
|
||||
|
@ -448,10 +444,6 @@ static NSDictionary *deviceOrientationEventBody(UIDeviceOrientation orientation)
|
|||
[(id<RCTInvalidating>)subview invalidate];
|
||||
}
|
||||
[registry removeObjectForKey:subview.reactTag];
|
||||
|
||||
if (registry == (NSMutableDictionary<NSNumber *, id<RCTComponent>> *)self->_viewRegistry) {
|
||||
[self->_bridgeTransactionListeners removeObject:subview];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -996,9 +988,7 @@ RCT_EXPORT_METHOD(createView:(nonnull NSNumber *)reactTag
|
|||
if ([view respondsToSelector:@selector(setBackgroundColor:)]) {
|
||||
((UIView *)view).backgroundColor = backgroundColor;
|
||||
}
|
||||
if ([view respondsToSelector:@selector(reactBridgeDidFinishTransaction)]) {
|
||||
[uiManager->_bridgeTransactionListeners addObject:view];
|
||||
}
|
||||
|
||||
uiManager->_viewRegistry[reactTag] = view;
|
||||
|
||||
#if RCT_DEV
|
||||
|
@ -1117,15 +1107,6 @@ RCT_EXPORT_METHOD(dispatchViewManagerCommand:(nonnull NSNumber *)reactTag
|
|||
[self _amendPendingUIBlocksWithStylePropagationUpdateForShadowView:rootView];
|
||||
}
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
||||
/**
|
||||
* TODO(tadeu): Remove it once and for all
|
||||
*/
|
||||
for (id<RCTComponent> node in uiManager->_bridgeTransactionListeners) {
|
||||
[node reactBridgeDidFinishTransaction];
|
||||
}
|
||||
}];
|
||||
|
||||
[_observerCoordinator uiManagerWillPerformMounting:self];
|
||||
|
||||
[self flushUIBlocksWithCompletion:^{
|
||||
|
|
|
@ -50,11 +50,6 @@ typedef void (^RCTBubblingEventBlock)(NSDictionary *body);
|
|||
*/
|
||||
- (void)didUpdateReactSubviews;
|
||||
|
||||
// TODO: Deprecate this
|
||||
// This method is called after layout has been performed for all views known
|
||||
// to the RCTViewManager. It is only called on UIViews, not shadow views.
|
||||
- (void)reactBridgeDidFinishTransaction;
|
||||
|
||||
@end
|
||||
|
||||
// TODO: this is kinda dumb - let's come up with a
|
||||
|
|
Loading…
Reference in New Issue