Skip to content

Commit aaaeb0b

Browse files
committed
fix(header): Click on language selector should not close the navigation menu in mobile
1 parent 666f089 commit aaaeb0b

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

src/components/interface/Header/ToolTranslate.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,24 @@ import typeValidation from '../../../utils/type-validation';
99
import useOnClickOutside from '../../../hooks/useOnClickOutside';
1010

1111
const ToolTranslate = ({
12-
children, currentLang, className, descCurrentLang, title, ...remainingProps
12+
children,
13+
currentLang,
14+
className,
15+
descCurrentLang,
16+
title,
17+
...remainingProps
1318
}) => {
1419
const [isOpen, setIsOpen] = useState(false);
1520
const _className = classNames(className, 'fr-translate fr-nav');
1621
const translateMenuRef = useRef();
17-
const close = useCallback((e) => {
18-
if ((translateMenuRef && translateMenuRef.current !== e.target) && isOpen) {
19-
setIsOpen(false);
20-
}
21-
}, [isOpen]);
22+
const close = useCallback(
23+
(e) => {
24+
if (translateMenuRef && translateMenuRef.current !== e.target && isOpen) {
25+
setIsOpen(false);
26+
}
27+
},
28+
[isOpen],
29+
);
2230
useOnClickOutside(translateMenuRef, close);
2331

2432
return (
@@ -29,7 +37,10 @@ const ToolTranslate = ({
2937
>
3038
<div className="fr-nav__item" ref={translateMenuRef}>
3139
<button
32-
onClick={() => setIsOpen(!isOpen)}
40+
onClick={(e) => {
41+
e.preventDefault();
42+
setIsOpen(!isOpen);
43+
}}
3344
type="button"
3445
className="fr-btn fr-btn--tertiary fr-translate__btn"
3546
aria-controls="translate-516"
@@ -38,10 +49,15 @@ const ToolTranslate = ({
3849
>
3950
{currentLang}
4051
</button>
41-
<div className={`fr-translate__menu fr-menu ${isOpen ? 'fr-collapse--expanded' : 'fr-collapse'}`} id="translate-516" onClick={() => setIsOpen(false)} onKeyDown={(e) => (e.key === 'Enter' ? setIsOpen(false) : null)} role="menuitem" tabIndex={-1}>
42-
<ul className="fr-menu__list">
43-
{children}
44-
</ul>
52+
<div
53+
className={`fr-translate__menu fr-menu ${isOpen ? 'fr-collapse--expanded' : 'fr-collapse'}`}
54+
id="translate-516"
55+
onClick={() => setIsOpen(false)}
56+
onKeyDown={(e) => (e.key === 'Enter' ? setIsOpen(false) : null)}
57+
role="menuitem"
58+
tabIndex={-1}
59+
>
60+
<ul className="fr-menu__list">{children}</ul>
4561
</div>
4662
</div>
4763
</nav>

0 commit comments

Comments
 (0)