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
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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,
)
: [];
};