yogevbd 6 years ago
parent
commit
39b93338dd

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

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

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

@@ -32,6 +32,6 @@
32 32
 
33 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 37
 @end

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

@@ -257,13 +257,13 @@ static NSString* const setDefaultOptions	= @"setDefaultOptions";
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 261
 	[self assertReady];
262 262
 
263 263
 	[_overlayManager dismissOverlay:componentId completion:^{
264 264
 		[_eventEmitter sendOnNavigationCommandCompletion:dismissModal params:@{@"componentId": componentId}];
265 265
 		completion();
266
-	}];
266
+	} rejection:reject];
267 267
 }
268 268
 
269 269
 #pragma mark - private

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

@@ -7,6 +7,6 @@
7 7
 - (instancetype)initWithStore:(RNNStore*)store;
8 8
 
9 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 12
 @end

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

@@ -1,4 +1,5 @@
1 1
 #import "RNNOverlayManager.h"
2
+#import "RNNErrorHandler.h"
2 3
 
3 4
 @implementation RNNOverlayManager {
4 5
 	NSMutableDictionary* _overlayDict;
@@ -20,10 +21,14 @@
20 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 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 34
 #pragma mark - private

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

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