1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #import <Foundation/Foundation.h>
- #import <React/RCTDefines.h>
- #import <React/RCTLog.h>
- NS_ASSUME_NONNULL_BEGIN
- @protocol RCTScrollViewProtocol <NSObject>
- - (void)flashScrollIndicators;
- - (void)scrollTo:(double)x y:(double)y animated:(BOOL)animated;
- - (void)scrollToEnd:(BOOL)animated;
- @end
- RCT_EXTERN inline void
- RCTScrollViewHandleCommand(id<RCTScrollViewProtocol> componentView, NSString const *commandName, NSArray const *args)
- {
- if ([commandName isEqualToString:@"flashScrollIndicators"]) {
- #if RCT_DEBUG
- if ([args count] != 0) {
- RCTLogError(
- @"%@ command %@ received %d arguments, expected %d.", @"ScrollView", commandName, (int)[args count], 1);
- return;
- }
- #endif
- [componentView flashScrollIndicators];
- return;
- }
- if ([commandName isEqualToString:@"scrollTo"]) {
- #if RCT_DEBUG
- if ([args count] != 3) {
- RCTLogError(
- @"%@ command %@ received %d arguments, expected %d.", @"ScrollView", commandName, (int)[args count], 3);
- return;
- }
- #endif
- NSObject *arg0 = args[0];
- #if RCT_DEBUG
- if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"float", @"ScrollView", commandName, @"1st")) {
- return;
- }
- #endif
- NSObject *arg1 = args[1];
- #if RCT_DEBUG
- if (!RCTValidateTypeOfViewCommandArgument(arg1, [NSNumber class], @"float", @"ScrollView", commandName, @"2nd")) {
- return;
- }
- #endif
- NSObject *arg2 = args[2];
- #if RCT_DEBUG
- if (!RCTValidateTypeOfViewCommandArgument(arg2, [NSNumber class], @"boolean", @"ScrollView", commandName, @"3rd")) {
- return;
- }
- #endif
- double x = [(NSNumber *)arg0 doubleValue];
- double y = [(NSNumber *)arg1 doubleValue];
- BOOL animated = [(NSNumber *)arg2 boolValue];
- [componentView scrollTo:x y:y animated:animated];
- return;
- }
- if ([commandName isEqualToString:@"scrollToEnd"]) {
- #if RCT_DEBUG
- if ([args count] != 1) {
- RCTLogError(
- @"%@ command %@ received %d arguments, expected %d.", @"ScrollView", commandName, (int)[args count], 1);
- return;
- }
- #endif
- NSObject *arg0 = args[0];
- #if RCT_DEBUG
- if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"boolean", @"ScrollView", commandName, @"1st")) {
- return;
- }
- #endif
- BOOL animated = [(NSNumber *)arg0 boolValue];
- [componentView scrollToEnd:animated];
- return;
- }
- }
- NS_ASSUME_NONNULL_END
|