MOBILE-3623 plugins: Wait to display success message if goBackOnSuccess
This commit is contained in:
		
							parent
							
								
									6a846488ee
								
							
						
					
					
						commit
						e44024d980
					
				| @ -74,7 +74,8 @@ export class CoreSitePluginsCallWSBaseDirective implements OnInit, OnDestroy { | |||||||
| 
 | 
 | ||||||
|             this.onSuccess.emit(result); |             this.onSuccess.emit(result); | ||||||
| 
 | 
 | ||||||
|             return this.wsCallSuccess(result); |             // Don't block the promise with the success function.
 | ||||||
|  |             this.wsCallSuccess(result); | ||||||
|         } catch (error) { |         } catch (error) { | ||||||
|             this.onError.emit(error); |             this.onError.emit(error); | ||||||
|             this.logger.error(`Error calling WS ${this.name}`, error); |             this.logger.error(`Error calling WS ${this.name}`, error); | ||||||
| @ -108,9 +109,10 @@ export class CoreSitePluginsCallWSBaseDirective implements OnInit, OnDestroy { | |||||||
|      * Function called when the WS call is successful. |      * Function called when the WS call is successful. | ||||||
|      * |      * | ||||||
|      * @param result Result of the WS call. |      * @param result Result of the WS call. | ||||||
|  |      * @return If async, promise resolved when done. | ||||||
|      */ |      */ | ||||||
|     // eslint-disable-next-line @typescript-eslint/no-unused-vars
 |     // eslint-disable-next-line @typescript-eslint/no-unused-vars
 | ||||||
|     protected wsCallSuccess(result: unknown): void { |     protected wsCallSuccess(result: unknown): void | Promise<void> { | ||||||
|         // Function to be overridden.
 |         // Function to be overridden.
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -65,17 +65,17 @@ export class CoreSitePluginsCallWSDirective extends CoreSitePluginsCallWSOnClick | |||||||
|     /** |     /** | ||||||
|      * @inheritdoc |      * @inheritdoc | ||||||
|      */ |      */ | ||||||
|     protected wsCallSuccess(): void { |     protected async wsCallSuccess(): Promise<void> { | ||||||
|  |         if (CoreUtils.isTrueOrOne(this.goBackOnSuccess)) { | ||||||
|  |             await CoreNavigator.back(); | ||||||
|  |         } else if (CoreUtils.isTrueOrOne(this.refreshOnSuccess) && this.parentContent) { | ||||||
|  |             this.parentContent.refreshContent(true); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         if (typeof this.successMessage != 'undefined') { |         if (typeof this.successMessage != 'undefined') { | ||||||
|             // Display the success message.
 |             // Display the success message.
 | ||||||
|             CoreDomUtils.showToast(this.successMessage || Translate.instant('core.success')); |             CoreDomUtils.showToast(this.successMessage || Translate.instant('core.success')); | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         if (CoreUtils.isTrueOrOne(this.goBackOnSuccess)) { |  | ||||||
|             CoreNavigator.back(); |  | ||||||
|         } else if (CoreUtils.isTrueOrOne(this.refreshOnSuccess) && this.parentContent) { |  | ||||||
|             this.parentContent.refreshContent(true); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user