fix: focus traps inside popovers (#5317)

This commit is contained in:
David Luzar
2022-06-23 17:33:50 +02:00
committed by GitHub
parent 50bc7e099a
commit af31e9dcc2
4 changed files with 54 additions and 22 deletions

View File

@ -668,3 +668,16 @@ export const isPromiseLike = (
"finally" in value
);
};
export const queryFocusableElements = (container: HTMLElement | null) => {
const focusableElements = container?.querySelectorAll<HTMLElement>(
"button, a, input, select, textarea, div[tabindex], label[tabindex]",
);
return focusableElements
? Array.from(focusableElements).filter(
(element) =>
element.tabIndex > -1 && !(element as HTMLInputElement).disabled,
)
: [];
};