diff --git a/src/lib/components/common/Modal.svelte b/src/lib/components/common/Modal.svelte index 1cb6b64dc..d1d99bff3 100644 --- a/src/lib/components/common/Modal.svelte +++ b/src/lib/components/common/Modal.svelte @@ -23,12 +23,17 @@ }; const handleKeyDown = (event: KeyboardEvent) => { - if (event.key === 'Escape') { + if (event.key === 'Escape' && isTopModal()) { console.log('Escape'); show = false; } }; + const isTopModal = () => { + const modals = document.getElementsByClassName('modal'); + return modals.length && modals[modals.length - 1] === modalElement; + }; + onMount(() => { mounted = true; }); @@ -38,8 +43,8 @@ window.addEventListener('keydown', handleKeyDown); document.body.style.overflow = 'hidden'; } else if (modalElement) { - document.body.removeChild(modalElement); window.removeEventListener('keydown', handleKeyDown); + document.body.removeChild(modalElement); document.body.style.overflow = 'unset'; } @@ -49,7 +54,7 @@