From de20eb7e11b397393c319e4da987aaa5104c4acf Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Wed, 2 Oct 2019 11:03:19 -0700 Subject: [PATCH] Refactor RCTActionSheetManager to use RCTConvertVecToArray and RCTConvertOptionalVecToArray Summary: Previously, I introduced methods to convert `facebook::react::LazyVector` to `NSArray*`, but I realized that there are already methods available in `RCTConvertHelpers` that do this for us. So, I'm switching over to using those methods instead. Reviewed By: fkgozali Differential Revision: D17716914 fbshipit-source-id: e1ef7636e36b594bc558d7025573082bd2bccab9 --- React/CoreModules/RCTActionSheetManager.mm | 27 ++++------------------ 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/React/CoreModules/RCTActionSheetManager.mm b/React/CoreModules/RCTActionSheetManager.mm index 840c50e6a82..8b71f1351cd 100644 --- a/React/CoreModules/RCTActionSheetManager.mm +++ b/React/CoreModules/RCTActionSheetManager.mm @@ -14,6 +14,7 @@ #import #import +#import #import "CoreModulesPlugins.h" @@ -55,26 +56,6 @@ RCT_EXPORT_MODULE() [parentViewController presentViewController:alertController animated:YES completion:nil]; } -namespace { - - NSArray *convertLazyVectorToNSArray(facebook::react::LazyVector vec) { - NSMutableArray *array = [NSMutableArray new]; - for (auto it = vec.begin(); it != vec.end(); it++) { - [array addObject:*it]; - } - return array; - } - - NSArray *convertLazyVectorToNSArray(facebook::react::LazyVector vec) { - NSMutableArray *array = [NSMutableArray new]; - for (auto it = vec.begin(); it != vec.end(); it++) { - [array addObject:@(*it)]; - } - return array; - } - -} // namespace - RCT_EXPORT_METHOD(showActionSheetWithOptions:(JS::NativeActionSheetManager::SpecShowActionSheetWithOptionsOptions &)options callback:(RCTResponseSenderBlock)callback) { @@ -89,11 +70,11 @@ RCT_EXPORT_METHOD(showActionSheetWithOptions:(JS::NativeActionSheetManager::Spec NSString *title = options.title(); NSString *message = options.message(); - NSArray *buttons = [RCTConvert NSStringArray:options.options() ? convertLazyVectorToNSArray(*options.options()) : nil]; + NSArray *buttons = RCTConvertOptionalVecToArray(options.options(), ^id(NSString *element) { return element; }); NSInteger cancelButtonIndex = options.cancelButtonIndex() ? [RCTConvert NSInteger:@(*options.cancelButtonIndex())] : -1; NSArray *destructiveButtonIndices; if (options.destructiveButtonIndices()) { - destructiveButtonIndices = [RCTConvert NSArray:convertLazyVectorToNSArray(*options.destructiveButtonIndices())]; + destructiveButtonIndices = RCTConvertVecToArray(*options.destructiveButtonIndices(), ^id(double element) { return @(element); }); } else { NSNumber *destructiveButtonIndex = @-1; destructiveButtonIndices = @[destructiveButtonIndex]; @@ -193,7 +174,7 @@ RCT_EXPORT_METHOD(showShareActionSheetWithOptions:(JS::NativeActionSheetManager: [shareController setValue:subject forKey:@"subject"]; } - NSArray *excludedActivityTypes = [RCTConvert NSStringArray:options.excludedActivityTypes() ? convertLazyVectorToNSArray(*options.excludedActivityTypes()) : nil]; + NSArray *excludedActivityTypes = RCTConvertOptionalVecToArray(options.excludedActivityTypes(), ^id(NSString *element) { return element; }); if (excludedActivityTypes) { shareController.excludedActivityTypes = excludedActivityTypes; }