From d852b08aac028ce0b0150d23e79a81d88f612550 Mon Sep 17 00:00:00 2001 From: Mnickii Date: Wed, 16 Aug 2023 13:46:30 +0000 Subject: [PATCH] fix buggy shift+tab behaviour --- .../src/components/mgt-login/mgt-login.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/mgt-components/src/components/mgt-login/mgt-login.ts b/packages/mgt-components/src/components/mgt-login/mgt-login.ts index e607bdc74..cffa0c16d 100644 --- a/packages/mgt-components/src/components/mgt-login/mgt-login.ts +++ b/packages/mgt-components/src/components/mgt-login/mgt-login.ts @@ -381,16 +381,13 @@ export class MgtLogin extends MgtTemplatedComponent { (lastFocusableEl as HTMLElement)?.focus(); } if (e.key === 'Tab' && lastFocusableEl === e.target) { - e.preventDefault(); - (firstFocusableEl as HTMLElement)?.focus(); - } - - if (e.key === 'Tab' && e.shiftKey) { - e.preventDefault(); - for (let i = 0; i < focusableEls.length; i++) { - if (focusableEls[i] === e.target) { - window.setTimeout(() => (focusableEls[i - 1] as HTMLElement)?.focus(), 0); - } + if (e.shiftKey) { + e.preventDefault(); + const focusableArrs = Array.from(focusableEls); + window.setTimeout(() => (focusableEls[focusableArrs.indexOf(lastFocusableEl) - 1] as HTMLElement)?.focus(), 0); + } else { + e.preventDefault(); + (firstFocusableEl as HTMLElement)?.focus(); } } };