diff --git a/core/src/components/modal/modal.tsx b/core/src/components/modal/modal.tsx index 25be85083a..4d6d510249 100644 --- a/core/src/components/modal/modal.tsx +++ b/core/src/components/modal/modal.tsx @@ -229,6 +229,6 @@ export class Modal implements ComponentInterface, OverlayInterface { const LIFECYCLE_MAP: any = { 'ionModalDidPresent': 'ionViewDidEnter', 'ionModalWillPresent': 'ionViewWillEnter', - 'ionModalWillDismiss': 'ionViewWillDismiss', - 'ionModalDidDismiss': 'ionViewDidDismiss', + 'ionModalWillDismiss': 'ionViewWillLeave', + 'ionModalDidDismiss': 'ionViewDidLeave', }; diff --git a/core/src/components/popover/popover.tsx b/core/src/components/popover/popover.tsx index 000a105916..31852bdd71 100644 --- a/core/src/components/popover/popover.tsx +++ b/core/src/components/popover/popover.tsx @@ -241,6 +241,6 @@ export class Popover implements ComponentInterface, OverlayInterface { const LIFECYCLE_MAP: any = { 'ionPopoverDidPresent': 'ionViewDidEnter', 'ionPopoverWillPresent': 'ionViewWillEnter', - 'ionPopoverWillDismiss': 'ionViewWillDismiss', - 'ionPopoverDidDismiss': 'ionViewDidDismiss', + 'ionPopoverWillDismiss': 'ionViewWillLeave', + 'ionPopoverDidDismiss': 'ionViewDidLeave', }; diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index ef7a9a6e76..27ca1cdb2c 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -3,7 +3,7 @@ import { AnimationBuilder, BackButtonEvent, HTMLIonOverlayElement, IonicConfig, let lastId = 0; export function createOverlay(element: T, opts: object | undefined): Promise { - const doc = element.ownerDocument; + const doc = element.ownerDocument!; connectListeners(doc); // convert the passed in overlay options into props @@ -152,16 +152,17 @@ async function overlayAnimation( } if (overlay.keyboardClose) { animation.beforeAddWrite(() => { - const activeElement = baseEl.ownerDocument.activeElement as HTMLElement; + const activeElement = baseEl.ownerDocument!.activeElement as HTMLElement; if (activeElement && activeElement.matches('input, ion-input, ion-textarea')) { activeElement.blur(); } }); } await animation.playAsync(); + const hasCompleted = animation.hasCompleted; animation.destroy(); overlay.animation = undefined; - return animation.hasCompleted; + return hasCompleted; } }