| 
				
			 | 
			
			
				@@ -143,7 +143,7 @@ RCT_EXPORT_MODULE(RCCManager); 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				143
			 | 
			
			
				 -(void)dismissAllModalPresenters:(NSMutableArray*)allPresentedViewControllers resolver:(RCTPromiseResolveBlock)resolve 
			 | 
		
	
		
			
			| 
				144
			 | 
			
				144
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				145
			 | 
			
			
				     UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController; 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				
			 | 
			
				146
			 | 
			
			
				+     
			 | 
		
	
		
			
			| 
				147
			 | 
			
				147
			 | 
			
			
				     if (allPresentedViewControllers.count > 0) 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				148
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				149
			 | 
			
			
				         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^ 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -205,25 +205,26 @@ RCT_EXPORT_MODULE(RCCManager); 
			 | 
		
	
		
			
			| 
				205
			 | 
			
				205
			 | 
			
			
				 #pragma mark - RCT exported methods 
			 | 
		
	
		
			
			| 
				206
			 | 
			
				206
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				207
			 | 
			
				207
			 | 
			
			
				 RCT_EXPORT_METHOD( 
			 | 
		
	
		
			
			| 
				208
			 | 
			
				
			 | 
			
			
				-                  setRootController:(NSDictionary*)layout animationType:(NSString*)animationType globalProps:(NSDictionary*)globalProps) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				208
			 | 
			
			
				+                  setRootController:(NSDictionary*)layout animationType:(NSString*)animationType globalProps:(NSDictionary*)globalProps resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) 
			 | 
		
	
		
			
			| 
				209
			 | 
			
				209
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				210
			 | 
			
				210
			 | 
			
			
				     if ([[RCCManager sharedInstance] getBridge].loading) { 
			 | 
		
	
		
			
			| 
				211
			 | 
			
				
			 | 
			
			
				-        [self deferSetRootControllerWhileBridgeLoading:layout animationType:animationType globalProps:globalProps]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				211
			 | 
			
			
				+        [self deferSetRootControllerWhileBridgeLoading:layout animationType:animationType globalProps:globalProps resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject]; 
			 | 
		
	
		
			
			| 
				212
			 | 
			
				212
			 | 
			
			
				         return; 
			 | 
		
	
		
			
			| 
				213
			 | 
			
				213
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				214
			 | 
			
			
				      
			 | 
		
	
		
			
			| 
				215
			 | 
			
				215
			 | 
			
			
				     dispatch_async(dispatch_get_main_queue(), ^{ 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				216
			 | 
			
			
				         [self performSetRootController:layout animationType:animationType globalProps:globalProps]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				217
			 | 
			
			
				+        resolve(nil); 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				218
			 | 
			
			
				     }); 
			 | 
		
	
		
			
			| 
				218
			 | 
			
				219
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				219
			 | 
			
				220
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				220
			 | 
			
				221
			 | 
			
			
				 /** 
			 | 
		
	
		
			
			| 
				221
			 | 
			
				222
			 | 
			
			
				  * on RN31 there's a timing issue, we must wait for the bridge to finish loading 
			 | 
		
	
		
			
			| 
				222
			 | 
			
				223
			 | 
			
			
				  */ 
			 | 
		
	
		
			
			| 
				223
			 | 
			
				
			 | 
			
			
				--(void)deferSetRootControllerWhileBridgeLoading:(NSDictionary*)layout animationType:(NSString*)animationType globalProps:(NSDictionary*)globalProps 
			 | 
		
	
		
			
			| 
				
			 | 
			
				224
			 | 
			
			
				+-(void)deferSetRootControllerWhileBridgeLoading:(NSDictionary*)layout animationType:(NSString*)animationType globalProps:(NSDictionary*)globalProps resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject 
			 | 
		
	
		
			
			| 
				224
			 | 
			
				225
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				225
			 | 
			
				226
			 | 
			
			
				     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.0001 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
			 | 
		
	
		
			
			| 
				226
			 | 
			
				
			 | 
			
			
				-        [self setRootController:layout animationType:animationType globalProps:globalProps]; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				227
			 | 
			
			
				+        [self setRootController:layout animationType:animationType globalProps:globalProps resolver:resolve rejecter:reject]; 
			 | 
		
	
		
			
			| 
				227
			 | 
			
				228
			 | 
			
			
				     }); 
			 | 
		
	
		
			
			| 
				228
			 | 
			
				229
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				229
			 | 
			
				230
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -421,7 +422,7 @@ RCT_EXPORT_METHOD( 
			 | 
		
	
		
			
			| 
				421
			 | 
			
				422
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				422
			 | 
			
				423
			 | 
			
			
				     else 
			 | 
		
	
		
			
			| 
				423
			 | 
			
				424
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				424
			 | 
			
				
			 | 
			
			
				-      resolve(nil); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				425
			 | 
			
			
				+        resolve(nil); 
			 | 
		
	
		
			
			| 
				425
			 | 
			
				426
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				426
			 | 
			
				427
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				427
			 | 
			
				428
			 | 
			
			
				  
			 |