From aff89371e6ae2a258f18e983f4a8755707a2e0e4 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Sun, 8 Jul 2018 13:52:29 +0100 Subject: [PATCH] Fix all modals closing on escape key press --- client/src/ui/components/BdModals.vue | 7 +++++++ client/src/ui/components/common/Modal.vue | 12 ------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/client/src/ui/components/BdModals.vue b/client/src/ui/components/BdModals.vue index 78e04f3b..d7c76192 100644 --- a/client/src/ui/components/BdModals.vue +++ b/client/src/ui/components/BdModals.vue @@ -47,9 +47,12 @@ Events.on('bd-refresh-modals', this.eventListener = () => { this.$forceUpdate(); }); + + window.addEventListener('keyup', this.keyupListener); }, destroyed() { if (this.eventListener) Events.off('bd-refresh-modals', this.eventListener); + window.removeEventListener('keyup', this.keyupListener); }, methods: { closeModal(modal) { @@ -57,6 +60,10 @@ }, downscale(index, times) { return 1 - ((this.modals.stack.filter(m => !m.closing).length - index) * times); + }, + keyupListener(e) { + if (this.modals.stack.length && e.which === 27) + this.modals.closeLast(e.shiftKey); } } } diff --git a/client/src/ui/components/common/Modal.vue b/client/src/ui/components/common/Modal.vue index 52b720bb..964dd5fc 100644 --- a/client/src/ui/components/common/Modal.vue +++ b/client/src/ui/components/common/Modal.vue @@ -47,18 +47,6 @@ return { scrolled: false }; - }, - beforeMount() { - window.addEventListener('keyup', this.keyupListener); - }, - destroyed() { - window.removeEventListener('keyup', this.keyupListener); - }, - methods: { - keyupListener(e) { - if (e.which === 27) - this.$emit('close', false, e); - } } }