Skip to content

Commit c7cbf1c

Browse files
fix(modal): fixes scroll not properly unlocked when tabbing and esc is pressed
1 parent 0e34338 commit c7cbf1c

File tree

1 file changed

+6
-5
lines changed
  • packages/kit-headless/src/components/modal

1 file changed

+6
-5
lines changed

packages/kit-headless/src/components/modal/modal.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ export const Modal = component$((props: ModalProps) => {
4949

5050
const focusTrap = trapFocus(modal);
5151

52-
window.addEventListener(
53-
'keydown',
54-
overrideNativeDialogEscapeBehaviorWith(() => (showSig.value = false)),
55-
{ once: true },
56-
);
52+
const escapeKeyListener = overrideNativeDialogEscapeBehaviorWith(() => {
53+
showSig.value = false;
54+
});
55+
56+
window.addEventListener('keydown', escapeKeyListener);
5757

5858
if (isOpen) {
5959
// HACK: keep modal scroll position in place with iOS
@@ -72,6 +72,7 @@ export const Modal = component$((props: ModalProps) => {
7272

7373
cleanup(() => {
7474
deactivateFocusTrap(focusTrap);
75+
window.removeEventListener('keydown', escapeKeyListener);
7576
});
7677
});
7778

0 commit comments

Comments
 (0)