diff --git a/Libraries/CameraRoll/RCTCameraRollManager.m b/Libraries/CameraRoll/RCTCameraRollManager.m index fc97c9493b4af8..d060224ccc7afa 100644 --- a/Libraries/CameraRoll/RCTCameraRollManager.m +++ b/Libraries/CameraRoll/RCTCameraRollManager.m @@ -98,7 +98,7 @@ @implementation RCTCameraRollManager RCTLogWarn(@"Error saving cropped image: %@", saveError); reject(RCTErrorUnableToSave, nil, saveError); } else { - resolve(@[assetURL.absoluteString]); + resolve(assetURL.absoluteString); } }]; }); @@ -110,22 +110,22 @@ static void RCTResolvePromise(RCTPromiseResolveBlock resolve, BOOL hasNextPage) { if (!assets.count) { - resolve(@[@{ + resolve(@{ @"edges": assets, @"page_info": @{ @"has_next_page": @NO, } - }]); + }); return; } - resolve(@[@{ + resolve(@{ @"edges": assets, @"page_info": @{ @"start_cursor": assets[0][@"node"][@"image"][@"uri"], @"end_cursor": assets[assets.count - 1][@"node"][@"image"][@"uri"], @"has_next_page": @(hasNextPage), } - }]); + }); } RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params diff --git a/Libraries/LinkingIOS/RCTLinkingManager.m b/Libraries/LinkingIOS/RCTLinkingManager.m index d720631674c939..b8bc364bd8bf25 100644 --- a/Libraries/LinkingIOS/RCTLinkingManager.m +++ b/Libraries/LinkingIOS/RCTLinkingManager.m @@ -80,7 +80,7 @@ - (void)handleOpenURLNotification:(NSNotification *)notification // TODO: we should really report success/failure via the promise here // Doesn't really matter what thread we call this on since it exits the app [RCTSharedApplication() openURL:URL]; - resolve(@[@YES]); + resolve(@YES); } RCT_EXPORT_METHOD(canOpenURL:(NSURL *)URL @@ -90,13 +90,13 @@ - (void)handleOpenURLNotification:(NSNotification *)notification if (RCTRunningInAppExtension()) { // Technically Today widgets can open urls, but supporting that would require // a reference to the NSExtensionContext - resolve(@[@NO]); + resolve(@NO); return; } // This can be expensive, so we deliberately don't call on main thread BOOL canOpen = [RCTSharedApplication() canOpenURL:URL]; - resolve(@[@(canOpen)]); + resolve(@(canOpen)); } @end diff --git a/Libraries/Utilities/MessageQueue.js b/Libraries/Utilities/MessageQueue.js index 8e58ee06e3c71f..7b31c114914a33 100644 --- a/Libraries/Utilities/MessageQueue.js +++ b/Libraries/Utilities/MessageQueue.js @@ -324,11 +324,7 @@ class MessageQueue { method, args, (data) => { - // iOS always wraps the data in an Array regardless of what the - // shape of the data so we strip it out - // Android sends the data back properly - // TODO: Remove this once iOS has support for Promises natively (t9774697) - resolve(Platform.OS == 'ios' ? data[0] : data); + resolve(data); }, (errorData) => { var error = createErrorFromErrorData(errorData); diff --git a/React/Modules/RCTClipboard.m b/React/Modules/RCTClipboard.m index 0a0bf14816f868..cad23d58b4e6e1 100644 --- a/React/Modules/RCTClipboard.m +++ b/React/Modules/RCTClipboard.m @@ -33,7 +33,7 @@ - (dispatch_queue_t)methodQueue rejecter:(__unused RCTPromiseRejectBlock)reject) { UIPasteboard *clipboard = [UIPasteboard generalPasteboard]; - resolve(@[RCTNullIfNil(clipboard.string)]); + resolve(RCTNullIfNil(clipboard.string)); } @end diff --git a/React/Modules/RCTSourceCode.m b/React/Modules/RCTSourceCode.m index e538fa5d0c9608..f8d96fac68e88d 100644 --- a/React/Modules/RCTSourceCode.m +++ b/React/Modules/RCTSourceCode.m @@ -32,7 +32,7 @@ - (void)setScriptText:(NSString *)scriptText {} if (RCT_DEV && self.scriptData && self.scriptURL) { NSString *scriptText = [[NSString alloc] initWithData:self.scriptData encoding:NSUTF8StringEncoding]; - resolve(@[@{@"text": scriptText, @"url": self.scriptURL.absoluteString}]); + resolve(@{@"text": scriptText, @"url": self.scriptURL.absoluteString}); } else { reject(RCTErrorUnavailable, nil, RCTErrorWithMessage(@"Source code is not available")); }