yogevbd 6 years ago
parent
commit
39b93338dd

+ 1
- 1
lib/ios/RNNBridgeModule.m View File

93
 RCT_EXPORT_METHOD(dismissOverlay:(NSString*)commandId componentId:(NSString*)componentId resolve:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
93
 RCT_EXPORT_METHOD(dismissOverlay:(NSString*)commandId componentId:(NSString*)componentId resolve:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
94
 	[_commandsHandler dismissOverlay:componentId completion:^{
94
 	[_commandsHandler dismissOverlay:componentId completion:^{
95
 		resolve(@(1));
95
 		resolve(@(1));
96
-	}];
96
+	} rejection:reject];
97
 }
97
 }
98
 
98
 
99
 RCT_EXPORT_METHOD(getLaunchArgs:(NSString*)commandId :(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
99
 RCT_EXPORT_METHOD(getLaunchArgs:(NSString*)commandId :(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {

+ 1
- 1
lib/ios/RNNCommandsHandler.h View File

32
 
32
 
33
 -(void)showOverlay:(NSDictionary *)layout completion:(RNNTransitionCompletionBlock)completion;
33
 -(void)showOverlay:(NSDictionary *)layout completion:(RNNTransitionCompletionBlock)completion;
34
 
34
 
35
--(void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion;
35
+-(void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion rejection:(RNNTransitionRejectionBlock)reject;
36
 
36
 
37
 @end
37
 @end

+ 2
- 2
lib/ios/RNNCommandsHandler.m View File

257
 	}];
257
 	}];
258
 }
258
 }
259
 
259
 
260
-- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion {
260
+- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion rejection:(RNNTransitionRejectionBlock)reject {
261
 	[self assertReady];
261
 	[self assertReady];
262
 
262
 
263
 	[_overlayManager dismissOverlay:componentId completion:^{
263
 	[_overlayManager dismissOverlay:componentId completion:^{
264
 		[_eventEmitter sendOnNavigationCommandCompletion:dismissModal params:@{@"componentId": componentId}];
264
 		[_eventEmitter sendOnNavigationCommandCompletion:dismissModal params:@{@"componentId": componentId}];
265
 		completion();
265
 		completion();
266
-	}];
266
+	} rejection:reject];
267
 }
267
 }
268
 
268
 
269
 #pragma mark - private
269
 #pragma mark - private

+ 1
- 1
lib/ios/RNNOverlayManager.h View File

7
 - (instancetype)initWithStore:(RNNStore*)store;
7
 - (instancetype)initWithStore:(RNNStore*)store;
8
 
8
 
9
 - (void)showOverlay:(UIViewController*)viewController completion:(RNNTransitionCompletionBlock)completion;
9
 - (void)showOverlay:(UIViewController*)viewController completion:(RNNTransitionCompletionBlock)completion;
10
-- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion;
10
+- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion rejection:(RNNTransitionRejectionBlock)reject;
11
 
11
 
12
 @end
12
 @end

+ 8
- 3
lib/ios/RNNOverlayManager.m View File

1
 #import "RNNOverlayManager.h"
1
 #import "RNNOverlayManager.h"
2
+#import "RNNErrorHandler.h"
2
 
3
 
3
 @implementation RNNOverlayManager {
4
 @implementation RNNOverlayManager {
4
 	NSMutableDictionary* _overlayDict;
5
 	NSMutableDictionary* _overlayDict;
20
 	completion();
21
 	completion();
21
 }
22
 }
22
 
23
 
23
-- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion {
24
+- (void)dismissOverlay:(NSString*)componentId completion:(RNNTransitionCompletionBlock)completion rejection:(RNNTransitionRejectionBlock)reject {
24
 	RNNRootViewController* viewController = [_overlayDict objectForKey:componentId];
25
 	RNNRootViewController* viewController = [_overlayDict objectForKey:componentId];
25
-	[self removeCachedOverlay:viewController];
26
-	completion();
26
+	if (viewController) {
27
+		[self removeCachedOverlay:viewController];
28
+		completion();
29
+	} else {
30
+		[RNNErrorHandler reject:reject withErrorCode:1010 errorDescription:@"ComponentId not found"];
31
+	}
27
 }
32
 }
28
 
33
 
29
 #pragma mark - private
34
 #pragma mark - private

+ 1
- 0
lib/ios/RNNStore.h View File

5
 #import "ReactNativeNavigation.h"
5
 #import "ReactNativeNavigation.h"
6
 
6
 
7
 typedef void (^RNNTransitionCompletionBlock)(void);
7
 typedef void (^RNNTransitionCompletionBlock)(void);
8
+typedef void (^RNNTransitionRejectionBlock)(NSString *code, NSString *message, NSError *error);
8
 
9
 
9
 @interface RNNStore : NSObject
10
 @interface RNNStore : NSObject
10
 
11