From 60622603545e58296adfd46c9de9ead4c9e0d0a8 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 10 Feb 2025 13:27:58 +0000 Subject: [PATCH 1/2] Fix isFocusable for FocusList component --- react-common/components/controls/FocusList.tsx | 2 +- react-common/components/util.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/react-common/components/controls/FocusList.tsx b/react-common/components/controls/FocusList.tsx index 8e316a2f7fe6..5e65e7454059 100644 --- a/react-common/components/controls/FocusList.tsx +++ b/react-common/components/controls/FocusList.tsx @@ -59,7 +59,7 @@ export const FocusList = (props: FocusListProps) => { const isFocusable = (e: HTMLElement) => { return e.getAttribute("data-isfocusable") === "true" - && getComputedStyle(e).display !== "none"; + && !!e.offsetParent; } const onKeyDown = (e: React.KeyboardEvent) => { diff --git a/react-common/components/util.tsx b/react-common/components/util.tsx index 09c8c8e1ecfe..c29c5d542485 100644 --- a/react-common/components/util.tsx +++ b/react-common/components/util.tsx @@ -111,7 +111,7 @@ export function findNextFocusableElement(elements: HTMLElement[], focusedIndex: index += increment; } } - return findNextFocusableElement(elements, focusedIndex, index, forward); + return findNextFocusableElement(elements, focusedIndex, index, forward, isFocusable); } export function isFocusable(e: HTMLElement) { From 51196b70bf14cb7060e464b9c3d8fbb6ad4b1016 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Wed, 12 Feb 2025 09:19:18 +0000 Subject: [PATCH 2/2] Use explicit check for null --- react-common/components/controls/FocusList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react-common/components/controls/FocusList.tsx b/react-common/components/controls/FocusList.tsx index 5e65e7454059..17944aaa640a 100644 --- a/react-common/components/controls/FocusList.tsx +++ b/react-common/components/controls/FocusList.tsx @@ -59,7 +59,7 @@ export const FocusList = (props: FocusListProps) => { const isFocusable = (e: HTMLElement) => { return e.getAttribute("data-isfocusable") === "true" - && !!e.offsetParent; + && e.offsetParent !== null; } const onKeyDown = (e: React.KeyboardEvent) => {