mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-27 19:25:11 +08:00
[React Native] RCT_EXPORT lvl.2
This commit is contained in:
@@ -49,10 +49,9 @@ RCT_EXPORT_MODULE()
|
||||
* Buttons are displayed in the order they are specified. If "cancel" is used as
|
||||
* the button key, it will be differently highlighted, according to iOS UI conventions.
|
||||
*/
|
||||
- (void)alertWithArgs:(NSDictionary *)args callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(alertWithArgs:(NSDictionary *)args
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
NSString *title = args[@"title"];
|
||||
NSString *message = args[@"message"];
|
||||
NSArray *buttons = args[@"buttons"];
|
||||
|
||||
@@ -33,10 +33,10 @@ static NSString *RCTCurrentAppBackgroundState()
|
||||
NSString *_lastKnownState;
|
||||
}
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
@synthesize bridge = _bridge;
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
#pragma mark - Lifecycle
|
||||
|
||||
- (instancetype)init
|
||||
@@ -81,11 +81,9 @@ RCT_EXPORT_MODULE()
|
||||
/**
|
||||
* Get the current background/foreground state of the app
|
||||
*/
|
||||
- (void)getCurrentAppState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error
|
||||
RCT_EXPORT_METHOD(getCurrentAppState:(RCTResponseSenderBlock)callback
|
||||
error:(__unused RCTResponseSenderBlock)error)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
callback(@[@{@"app_state": _lastKnownState}]);
|
||||
}
|
||||
|
||||
|
||||
@@ -188,10 +188,9 @@ RCT_EXPORT_MODULE()
|
||||
|
||||
#pragma mark - Exported JS Functions
|
||||
|
||||
- (void)multiGet:(NSArray *)keys callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(multiGet:(NSArray *)keys
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
if (!callback) {
|
||||
RCTLogError(@"Called getItem without a callback.");
|
||||
return;
|
||||
@@ -214,10 +213,9 @@ RCT_EXPORT_MODULE()
|
||||
});
|
||||
}
|
||||
|
||||
- (void)multiSet:(NSArray *)kvPairs callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(multiSet:(NSArray *)kvPairs
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(RCTFileQueue(), ^{
|
||||
id errorOut = [self _ensureSetup];
|
||||
if (errorOut) {
|
||||
@@ -236,10 +234,9 @@ RCT_EXPORT_MODULE()
|
||||
});
|
||||
}
|
||||
|
||||
- (void)multiRemove:(NSArray *)keys callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(multiRemove:(NSArray *)keys
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(RCTFileQueue(), ^{
|
||||
id errorOut = [self _ensureSetup];
|
||||
if (errorOut) {
|
||||
@@ -263,10 +260,8 @@ RCT_EXPORT_MODULE()
|
||||
});
|
||||
}
|
||||
|
||||
- (void)clear:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(clear:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(RCTFileQueue(), ^{
|
||||
id errorOut = [self _ensureSetup];
|
||||
if (!errorOut) {
|
||||
@@ -284,10 +279,8 @@ RCT_EXPORT_MODULE()
|
||||
});
|
||||
}
|
||||
|
||||
- (void)getAllKeys:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(getAllKeys:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(RCTFileQueue(), ^{
|
||||
id errorOut = [self _ensureSetup];
|
||||
if (errorOut) {
|
||||
|
||||
@@ -31,10 +31,9 @@ RCT_EXPORT_MODULE()
|
||||
return [self initWithDelegate:nil];
|
||||
}
|
||||
|
||||
- (void)reportUnhandledExceptionWithMessage:(NSString *)message stack:(NSArray *)stack
|
||||
RCT_EXPORT_METHOD(reportUnhandledExceptionWithMessage:(NSString *)message
|
||||
stack:(NSArray *)stack)
|
||||
{
|
||||
RCT_EXPORT(reportUnhandledException);
|
||||
|
||||
if (_delegate) {
|
||||
[_delegate unhandledJSExceptionWithMessage:message stack:stack];
|
||||
} else {
|
||||
@@ -42,10 +41,9 @@ RCT_EXPORT_MODULE()
|
||||
}
|
||||
}
|
||||
|
||||
- (void)updateExceptionMessage:(NSString *)message stack:(NSArray *)stack
|
||||
RCT_EXPORT_METHOD(updateExceptionMessage:(NSString *)message
|
||||
stack:(NSArray *)stack)
|
||||
{
|
||||
RCT_EXPORT(updateExceptionMessage);
|
||||
|
||||
[[RCTRedBox sharedInstance] updateErrorMessage:message withStack:stack];
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
- (void)getScriptText:(RCTResponseSenderBlock)successCallback failureCallback:(RCTResponseSenderBlock)failureCallback
|
||||
RCT_EXPORT_METHOD(getScriptText:(RCTResponseSenderBlock)successCallback
|
||||
failureCallback:(RCTResponseSenderBlock)failureCallback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
if (self.scriptText && self.scriptURL) {
|
||||
successCallback(@[@{@"text": self.scriptText, @"url":[self.scriptURL absoluteString]}]);
|
||||
} else {
|
||||
|
||||
@@ -26,10 +26,9 @@ static BOOL RCTViewControllerBasedStatusBarAppearance()
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
- (void)setStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated
|
||||
RCT_EXPORT_METHOD(setStyle:(UIStatusBarStyle)statusBarStyle
|
||||
animated:(BOOL)animated)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
|
||||
if (RCTViewControllerBasedStatusBarAppearance()) {
|
||||
@@ -42,10 +41,9 @@ RCT_EXPORT_MODULE()
|
||||
});
|
||||
}
|
||||
|
||||
- (void)setHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation
|
||||
RCT_EXPORT_METHOD(setHidden:(BOOL)hidden
|
||||
withAnimation:(UIStatusBarAnimation)animation)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
|
||||
if (RCTViewControllerBasedStatusBarAppearance()) {
|
||||
|
||||
@@ -61,10 +61,10 @@
|
||||
id _updateTimer;
|
||||
}
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
@synthesize bridge = _bridge;
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
RCT_IMPORT_METHOD(RCTJSTimers, callTimers)
|
||||
|
||||
- (instancetype)init
|
||||
@@ -165,34 +165,29 @@ RCT_IMPORT_METHOD(RCTJSTimers, callTimers)
|
||||
* calculating the timer's target time. We calculate this by passing in
|
||||
* Date.now() from JS and then subtracting that from the current time here.
|
||||
*/
|
||||
- (void)createTimer:(NSNumber *)callbackID
|
||||
duration:(double)jsDuration
|
||||
jsSchedulingTime:(double)jsSchedulingTime
|
||||
repeats:(BOOL)repeats
|
||||
RCT_EXPORT_METHOD(createTimer:(NSNumber *)callbackID
|
||||
duration:(NSTimeInterval)jsDuration
|
||||
jsSchedulingTime:(NSDate *)jsSchedulingTime
|
||||
repeats:(BOOL)repeats)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
if (jsDuration == 0 && repeats == NO) {
|
||||
// For super fast, one-off timers, just enqueue them immediately rather than waiting a frame.
|
||||
[_bridge enqueueJSCall:@"RCTJSTimers.callTimers" args:@[@[callbackID]]];
|
||||
return;
|
||||
}
|
||||
|
||||
NSTimeInterval interval = jsDuration / 1000;
|
||||
NSTimeInterval jsCreationTimeSinceUnixEpoch = jsSchedulingTime / 1000;
|
||||
NSTimeInterval currentTimeSinceUnixEpoch = [[NSDate date] timeIntervalSince1970];
|
||||
NSTimeInterval jsSchedulingOverhead = currentTimeSinceUnixEpoch - jsCreationTimeSinceUnixEpoch;
|
||||
NSTimeInterval jsSchedulingOverhead = -jsSchedulingTime.timeIntervalSinceNow;
|
||||
if (jsSchedulingOverhead < 0) {
|
||||
RCTLogWarn(@"jsSchedulingOverhead (%ims) should be positive", (int)(jsSchedulingOverhead * 1000));
|
||||
}
|
||||
|
||||
NSTimeInterval targetTime = interval - jsSchedulingOverhead;
|
||||
if (interval < 0.018) { // Make sure short intervals run each frame
|
||||
interval = 0;
|
||||
NSTimeInterval targetTime = jsDuration - jsSchedulingOverhead;
|
||||
if (jsDuration < 0.018) { // Make sure short intervals run each frame
|
||||
jsDuration = 0;
|
||||
}
|
||||
|
||||
RCTTimer *timer = [[RCTTimer alloc] initWithCallbackID:callbackID
|
||||
interval:interval
|
||||
interval:jsDuration
|
||||
targetTime:targetTime
|
||||
repeats:repeats];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
@@ -201,10 +196,8 @@ RCT_IMPORT_METHOD(RCTJSTimers, callTimers)
|
||||
});
|
||||
}
|
||||
|
||||
- (void)deleteTimer:(NSNumber *)timerID
|
||||
RCT_EXPORT_METHOD(deleteTimer:(NSNumber *)timerID)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
if (timerID) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
_timers[timerID] = nil;
|
||||
|
||||
@@ -195,10 +195,10 @@ static UIViewAnimationCurve UIViewAnimationCurveFromRCTAnimationType(RCTAnimatio
|
||||
NSUInteger _rootTag;
|
||||
}
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
@synthesize bridge = _bridge;
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
/**
|
||||
* Declared in RCTBridge.
|
||||
*/
|
||||
@@ -514,10 +514,8 @@ static NSString *RCTViewNameForModuleName(NSString *moduleName)
|
||||
* A method to be called from JS, which takes a container ID and then releases
|
||||
* all subviews for that container upon receipt.
|
||||
*/
|
||||
- (void)removeSubviewsFromContainerWithID:(NSNumber *)containerID
|
||||
RCT_EXPORT_METHOD(removeSubviewsFromContainerWithID:(NSNumber *)containerID)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
id<RCTViewNodeProtocol> container = _shadowViewRegistry[containerID];
|
||||
RCTAssert(container != nil, @"container view (for ID %@) not found", containerID);
|
||||
|
||||
@@ -571,10 +569,8 @@ static NSString *RCTViewNameForModuleName(NSString *moduleName)
|
||||
}
|
||||
}
|
||||
|
||||
- (void)removeRootView:(NSNumber *)rootReactTag
|
||||
RCT_EXPORT_METHOD(removeRootView:(NSNumber *)rootReactTag)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTShadowView *rootShadowView = _shadowViewRegistry[rootReactTag];
|
||||
RCTAssert(rootShadowView.superview == nil, @"root view cannot have superview (ID %@)", rootReactTag);
|
||||
[self _purgeChildren:rootShadowView.reactSubviews fromRegistry:_shadowViewRegistry];
|
||||
@@ -589,10 +585,8 @@ static NSString *RCTViewNameForModuleName(NSString *moduleName)
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)replaceExistingNonRootView:(NSNumber *)reactTag withView:(NSNumber *)newReactTag
|
||||
RCT_EXPORT_METHOD(replaceExistingNonRootView:(NSNumber *)reactTag withView:(NSNumber *)newReactTag)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
|
||||
RCTAssert(shadowView != nil, @"shadowView (for ID %@) not found", reactTag);
|
||||
|
||||
@@ -611,15 +605,13 @@ static NSString *RCTViewNameForModuleName(NSString *moduleName)
|
||||
removeAtIndices:removeAtIndices];
|
||||
}
|
||||
|
||||
- (void)manageChildren:(NSNumber *)containerReactTag
|
||||
moveFromIndices:(NSArray *)moveFromIndices
|
||||
moveToIndices:(NSArray *)moveToIndices
|
||||
addChildReactTags:(NSArray *)addChildReactTags
|
||||
addAtIndices:(NSArray *)addAtIndices
|
||||
removeAtIndices:(NSArray *)removeAtIndices
|
||||
RCT_EXPORT_METHOD(manageChildren:(NSNumber *)containerReactTag
|
||||
moveFromIndices:(NSArray *)moveFromIndices
|
||||
moveToIndices:(NSArray *)moveToIndices
|
||||
addChildReactTags:(NSArray *)addChildReactTags
|
||||
addAtIndices:(NSArray *)addAtIndices
|
||||
removeAtIndices:(NSArray *)removeAtIndices)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
[self _manageChildren:containerReactTag
|
||||
moveFromIndices:moveFromIndices
|
||||
moveToIndices:moveToIndices
|
||||
@@ -629,7 +621,6 @@ static NSString *RCTViewNameForModuleName(NSString *moduleName)
|
||||
registry:_shadowViewRegistry];
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
|
||||
[uiManager _manageChildren:containerReactTag
|
||||
moveFromIndices:moveFromIndices
|
||||
moveToIndices:moveToIndices
|
||||
@@ -738,12 +729,10 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||
[shadowView updateLayout];
|
||||
}
|
||||
|
||||
- (void)createAndRegisterViewWithReactTag:(NSNumber *)reactTag
|
||||
viewName:(NSString *)viewName
|
||||
props:(NSDictionary *)props
|
||||
RCT_EXPORT_METHOD(createView:(NSNumber *)reactTag
|
||||
viewName:(NSString *)viewName
|
||||
props:(NSDictionary *)props)
|
||||
{
|
||||
RCT_EXPORT(createView);
|
||||
|
||||
RCTViewManager *manager = _viewManagers[viewName];
|
||||
if (manager == nil) {
|
||||
RCTLogWarn(@"No manager class found for view with module name \"%@\"", viewName);
|
||||
@@ -795,10 +784,10 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||
}];
|
||||
}
|
||||
// TODO: remove viewName param as it isn't needed
|
||||
- (void)updateView:(NSNumber *)reactTag viewName:(__unused NSString *)_ props:(NSDictionary *)props
|
||||
RCT_EXPORT_METHOD(updateView:(NSNumber *)reactTag
|
||||
viewName:(__unused NSString *)_
|
||||
props:(NSDictionary *)props)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTViewManager *viewManager = _viewManagerRegistry[reactTag];
|
||||
NSString *viewName = RCTViewNameForModuleName(RCTBridgeModuleNameForClass([viewManager class]));
|
||||
|
||||
@@ -811,10 +800,8 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)becomeResponder:(NSNumber *)reactTag
|
||||
RCT_EXPORT_METHOD(focus:(NSNumber *)reactTag)
|
||||
{
|
||||
RCT_EXPORT(focus);
|
||||
|
||||
if (!reactTag) return;
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
||||
UIView *newResponder = viewRegistry[reactTag];
|
||||
@@ -824,10 +811,8 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)resignResponder:(NSNumber *)reactTag
|
||||
RCT_EXPORT_METHOD(blur:(NSNumber *)reactTag)
|
||||
{
|
||||
RCT_EXPORT(blur);
|
||||
|
||||
if (!reactTag) return;
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
UIView *currentResponder = viewRegistry[reactTag];
|
||||
@@ -892,10 +877,9 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||
});
|
||||
}
|
||||
|
||||
- (void)measure:(NSNumber *)reactTag callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(measure:(NSNumber *)reactTag
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
if (!callback) {
|
||||
RCTLogError(@"Called measure with no callback");
|
||||
return;
|
||||
@@ -968,13 +952,11 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
* anything on the main UI thread. Invokes supplied callback with (x, y, width,
|
||||
* height).
|
||||
*/
|
||||
- (void)measureLayout:(NSNumber *)reactTag
|
||||
relativeTo:(NSNumber *)ancestorReactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(measureLayout:(NSNumber *)reactTag
|
||||
relativeTo:(NSNumber *)ancestorReactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
|
||||
RCTShadowView *ancestorShadowView = _shadowViewRegistry[ancestorReactTag];
|
||||
RCTMeasureLayout(shadowView, ancestorShadowView, callback);
|
||||
@@ -987,12 +969,10 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
* anything on the main UI thread. Invokes supplied callback with (x, y, width,
|
||||
* height).
|
||||
*/
|
||||
- (void)measureLayoutRelativeToParent:(NSNumber *)reactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(measureLayoutRelativeToParent:(NSNumber *)reactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
|
||||
RCTMeasureLayout(shadowView, shadowView.reactSuperview, callback);
|
||||
}
|
||||
@@ -1004,13 +984,11 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
* Only layouts for views that are within the rect passed in are returned. Invokes the error callback if the
|
||||
* passed in parent view does not exist. Invokes the supplied callback with the array of computed layouts.
|
||||
*/
|
||||
- (void)measureViewsInRect:(NSDictionary *)rect
|
||||
parentView:(NSNumber *)reactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback
|
||||
RCT_EXPORT_METHOD(measureViewsInRect:(NSDictionary *)rect
|
||||
parentView:(NSNumber *)reactTag
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
callback:(RCTResponseSenderBlock)callback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
RCTShadowView *shadowView = _shadowViewRegistry[reactTag];
|
||||
if (!shadowView) {
|
||||
RCTLogError(@"Attempting to measure view that does not exist (tag #%@)", reactTag);
|
||||
@@ -1050,10 +1028,8 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
callback(@[results]);
|
||||
}
|
||||
|
||||
- (void)setMainScrollViewTag:(NSNumber *)reactTag
|
||||
RCT_EXPORT_METHOD(setMainScrollViewTag:(NSNumber *)reactTag)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
// - There should be at most one designated "main scroll view"
|
||||
// - There should be at most one designated "`nativeMainScrollDelegate`"
|
||||
@@ -1076,10 +1052,10 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)scrollToOffsetWithView:(NSNumber *)reactTag scrollToOffsetX:(NSNumber *)offsetX offsetY:(NSNumber *)offsetY
|
||||
RCT_EXPORT_METHOD(scrollTo:(NSNumber *)reactTag
|
||||
withOffsetX:(NSNumber *)offsetX
|
||||
offsetY:(NSNumber *)offsetY)
|
||||
{
|
||||
RCT_EXPORT(scrollTo);
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
UIView *view = viewRegistry[reactTag];
|
||||
if ([view conformsToProtocol:@protocol(RCTScrollableProtocol)]) {
|
||||
@@ -1090,10 +1066,10 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)scrollWithoutAnimationToOffsetWithView:(NSNumber *)reactTag scrollToOffsetX:(NSNumber *)offsetX offsetY:(NSNumber *)offsetY
|
||||
RCT_EXPORT_METHOD(scrollWithoutAnimationTo:(NSNumber *)reactTag
|
||||
offsetX:(NSNumber *)offsetX
|
||||
offsetY:(NSNumber *)offsetY)
|
||||
{
|
||||
RCT_EXPORT(scrollWithoutAnimationTo);
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
UIView *view = viewRegistry[reactTag];
|
||||
if ([view conformsToProtocol:@protocol(RCTScrollableProtocol)]) {
|
||||
@@ -1104,10 +1080,9 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)zoomToRectWithView:(NSNumber *)reactTag rect:(NSDictionary *)rectDict
|
||||
RCT_EXPORT_METHOD(zoomToRect:(NSNumber *)reactTag
|
||||
withRect:(NSDictionary *)rectDict)
|
||||
{
|
||||
RCT_EXPORT(zoomToRect);
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||
UIView *view = viewRegistry[reactTag];
|
||||
if ([view conformsToProtocol:@protocol(RCTScrollableProtocol)]) {
|
||||
@@ -1122,10 +1097,8 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
* JS sets what *it* considers to be the responder. Later, scroll views can use
|
||||
* this in order to determine if scrolling is appropriate.
|
||||
*/
|
||||
- (void)setJSResponder:(NSNumber *)reactTag
|
||||
RCT_EXPORT_METHOD(setJSResponder:(NSNumber *)reactTag)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
||||
_jsResponder = viewRegistry[reactTag];
|
||||
if (!_jsResponder) {
|
||||
@@ -1134,10 +1107,8 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)clearJSResponder
|
||||
RCT_EXPORT_METHOD(clearJSResponder)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
||||
_jsResponder = nil;
|
||||
}];
|
||||
@@ -1407,12 +1378,10 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
return allJSConstants;
|
||||
}
|
||||
|
||||
- (void)configureNextLayoutAnimation:(NSDictionary *)config
|
||||
withCallback:(RCTResponseSenderBlock)callback
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback
|
||||
RCT_EXPORT_METHOD(configureNextLayoutAnimation:(NSDictionary *)config
|
||||
withCallback:(RCTResponseSenderBlock)callback
|
||||
errorCallback:(RCTResponseSenderBlock)errorCallback)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
if (_nextLayoutAnimation) {
|
||||
RCTLogWarn(@"Warning: Overriding previous layout animation with new one before the first began:\n%@ -> %@.",
|
||||
_nextLayoutAnimation, config);
|
||||
@@ -1424,10 +1393,8 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
callback:callback];
|
||||
}
|
||||
|
||||
- (void)startOrResetInteractionTiming
|
||||
RCT_EXPORT_METHOD(startOrResetInteractionTiming)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
NSSet *rootViewTags = [_rootViewTags copy];
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
||||
for (NSNumber *reactTag in rootViewTags) {
|
||||
@@ -1439,11 +1406,9 @@ static void RCTMeasureLayout(RCTShadowView *view,
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)endAndResetInteractionTiming:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(RCTResponseSenderBlock)onError
|
||||
RCT_EXPORT_METHOD(endAndResetInteractionTiming:(RCTResponseSenderBlock)onSuccess
|
||||
onError:(RCTResponseSenderBlock)onError)
|
||||
{
|
||||
RCT_EXPORT();
|
||||
|
||||
NSSet *rootViewTags = [_rootViewTags copy];
|
||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
||||
NSMutableDictionary *timingData = [[NSMutableDictionary alloc] init];
|
||||
|
||||
Reference in New Issue
Block a user