From 5bddb97fa97553c8cb4304608889bb9cd6e09383 Mon Sep 17 00:00:00 2001 From: NikolaBorislavovHristov Date: Mon, 16 Sep 2019 13:57:08 +0300 Subject: [PATCH] try to find focusable candidate before focus the container --- src/router/FocusableContext/FocusableProvider.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/router/FocusableContext/FocusableProvider.js b/src/router/FocusableContext/FocusableProvider.js index 3bf6bafab..8932dbaf7 100644 --- a/src/router/FocusableContext/FocusableProvider.js +++ b/src/router/FocusableContext/FocusableProvider.js @@ -35,7 +35,12 @@ const FocusableProvider = ({ children, onRoutesContainerChildrenChange, onModals }, [routesContainer, modalsContainer, onRoutesContainerChildrenChange, onModalsContainerChildrenChange]); React.useEffect(() => { if (focusable && !contentContainerRef.current.contains(document.activeElement)) { - contentContainerRef.current.focus(); + const focusableElement = contentContainerRef.current.querySelector('[tabindex]:not([tabindex="-1"])'); + if (focusableElement instanceof HTMLElement) { + focusableElement.focus(); + } else { + contentContainerRef.current.focus(); + } } }, [focusable]); return (