From b7eea2eae897fab10761806932dcc0e172936d54 Mon Sep 17 00:00:00 2001 From: Juan Pablo Mitriatti Date: Fri, 25 Apr 2025 11:27:08 -0300 Subject: [PATCH] fix(component-header-footer): added focusout event to NavItem UDS-1994 --- .../HeaderMain/NavbarContainer/NavItem/index.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/component-header-footer/src/header/components/HeaderMain/NavbarContainer/NavItem/index.js b/packages/component-header-footer/src/header/components/HeaderMain/NavbarContainer/NavItem/index.js index 8d8c69d2b4..d69afadb59 100644 --- a/packages/component-header-footer/src/header/components/HeaderMain/NavbarContainer/NavItem/index.js +++ b/packages/component-header-footer/src/header/components/HeaderMain/NavbarContainer/NavItem/index.js @@ -68,9 +68,24 @@ const NavItem = ({ link, setItemOpened, itemOpened }) => { setItemOpened(); } }; + + const handleFocusOut = () => { + setTimeout(() => { + const node = clickRef.current; + if (opened && node && !node.contains(document.activeElement)) { + setItemOpened(); + } + }, 0); + }; + + const node = clickRef.current; + document.addEventListener("click", handleClickOutside, true); + node?.addEventListener("focusout", handleFocusOut); + return () => { document.removeEventListener("click", handleClickOutside, true); + node?.removeEventListener("focusout", handleFocusOut); }; }, [opened]);