From 015c6b3be273a40b530b9b79bb1f9da3d0ba1cdf Mon Sep 17 00:00:00 2001 From: Aleksei Androsov Date: Mon, 30 Nov 2015 10:28:49 -0800 Subject: [PATCH] ImagePicker always called with cancelCallback Summary: We should pick 2 callbacks from pickerCallbacks and pickerCancelCallbacks arrays and call them depens on args. Closes https://github.com/facebook/react-native/pull/4411 Reviewed By: svcscm Differential Revision: D2703209 Pulled By: javache fb-gh-sync-id: 7d2d7c63b933a66a1ff600663c3a7fcc821c750b --- Libraries/CameraRoll/RCTImagePickerManager.m | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Libraries/CameraRoll/RCTImagePickerManager.m b/Libraries/CameraRoll/RCTImagePickerManager.m index 0ad9e8e71..d82d0e9bf 100644 --- a/Libraries/CameraRoll/RCTImagePickerManager.m +++ b/Libraries/CameraRoll/RCTImagePickerManager.m @@ -132,7 +132,8 @@ didFinishPickingMediaWithInfo:(NSDictionary *)info - (void)_dismissPicker:(UIImagePickerController *)picker args:(NSArray *)args { NSUInteger index = [_pickers indexOfObject:picker]; - RCTResponseSenderBlock callback = _pickerCancelCallbacks[index]; + RCTResponseSenderBlock successCallback = _pickerCallbacks[index]; + RCTResponseSenderBlock cancelCallback = _pickerCancelCallbacks[index]; [_pickers removeObjectAtIndex:index]; [_pickerCallbacks removeObjectAtIndex:index]; @@ -141,7 +142,11 @@ didFinishPickingMediaWithInfo:(NSDictionary *)info UIViewController *rootViewController = RCTKeyWindow().rootViewController; [rootViewController dismissViewControllerAnimated:YES completion:nil]; - callback(args ?: @[]); + if (args) { + successCallback(args); + } else { + cancelCallback(@[]); + } } @end