diff --git a/assets/js/theme/utils/focus-trap.js b/assets/js/theme/utils/focus-trap.js index ba6c8fe74e0926e184b41273d07934800a58339a..ee5c0102a7ed35bb3d65ba17112c916785932f53 100644 --- a/assets/js/theme/utils/focus-trap.js +++ b/assets/js/theme/utils/focus-trap.js @@ -1,10 +1,9 @@ export function focusTrap(event, element, isOpened) { - const focusables = 'a, button, input, textarea, select, details, [tabindex], [contenteditable="true"]'; - const elements = element.querySelectorAll(focusables); - - const focusableInDialog = Array.from(elements).filter(element => element.tabIndex >= 0); - const firstFocusable = focusableInDialog[0]; - const lastFocusable = focusableInDialog.at(-1); + const focusables = 'a, button, input, textarea, select, details, [tabindex], [contenteditable="true"]', + elements = element.querySelectorAll(focusables), + focusableInDialog = Array.from(elements).filter(element => element.tabIndex >= 0), + firstFocusable = focusableInDialog[0], + lastFocusable = focusableInDialog.at(-1); if (!isOpened) { return; @@ -13,7 +12,7 @@ export function focusTrap(event, element, isOpened) { lastFocusable.focus(); event.preventDefault(); } - else if (!element.contains(event.target)) { + else if (!element.contains(event.target)) { firstFocusable.focus(); event.preventDefault(); }