From 75c2d744b6b4872f5fe98014542691531bce3eab Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Fri, 14 Sep 2018 17:04:30 +0200 Subject: [PATCH] fix(overlay): only register backButton listener once --- core/src/utils/overlays.ts | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index afd4285e74..d26c178760 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -19,16 +19,6 @@ export function createOverlay(element: T, opts: // append the overlay element to the document body getAppRoot(doc).appendChild(element); - doc.addEventListener('ionBackButton', ev => { - (ev as BackButtonEvent).detail.register(100, () => closeTopOverlay(doc)); - }); - - doc.body.addEventListener('keyup', ev => { - if (ev.key === 'Escape') { - closeTopOverlay(doc); - } - }); - return element.componentOnReady(); } @@ -43,12 +33,13 @@ function closeTopOverlay(doc: Document) { export function connectListeners(doc: Document) { if (lastId === 0) { lastId = 1; - doc.body.addEventListener('keyup', ev => { + doc.addEventListener('ionBackButton', ev => { + (ev as BackButtonEvent).detail.register(100, () => closeTopOverlay(doc)); + }); + + doc.addEventListener('keyup', ev => { if (ev.key === 'Escape') { - const lastOverlay = getOverlay(doc); - if (lastOverlay && lastOverlay.backdropDismiss) { - lastOverlay.dismiss('backdrop'); - } + closeTopOverlay(doc); } }); }