From c9f464e756e371d408ec70c07781e7213e4ece27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 15 Dec 2021 12:04:48 +0100 Subject: [PATCH] MOBILE-3950 core: Fix prevent opening modal twice when suddenly closed --- src/core/services/utils/dom.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/services/utils/dom.ts b/src/core/services/utils/dom.ts index d097ee912..b3052137e 100644 --- a/src/core/services/utils/dom.ts +++ b/src/core/services/utils/dom.ts @@ -1703,6 +1703,9 @@ export class CoreDomUtilsProvider { let navSubscription: Subscription | undefined; + // Get the promise before presenting to get result if modal is suddenly hidden. + const resultPromise = waitForDismissCompleted ? modal.onDidDismiss() : modal.onWillDismiss(); + if (!this.displayedModals[modalId]) { // Store the modal and remove it when dismissed. this.displayedModals[modalId] = modal; @@ -1719,7 +1722,8 @@ export class CoreDomUtilsProvider { await modal.present(); } - const result = waitForDismissCompleted ? await modal.onDidDismiss() : await modal.onWillDismiss(); + const result = await resultPromise; + navSubscription?.unsubscribe(); delete this.displayedModals[modalId];