Skip to content

Commit bfbc347

Browse files
author
ACR1209
committed
Bugfix the keyboard navigation conflict and the arrow not flipping on keyboard navigation
1 parent 20acee1 commit bfbc347

File tree

2 files changed

+4
-13
lines changed

2 files changed

+4
-13
lines changed

src/components/LanguageSelector.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ const LanguageSelector = () => {
9292
if (language.mainLanguage) {
9393
handleToggleSublanguage(language.mainLanguage);
9494
}
95-
}, [language]);
95+
}, [language, handleToggleSublanguage]);
9696

9797
useEffect(() => {
9898
if (isOpen && focusedIndex >= 0) {

src/components/SubLanguageSelector.tsx

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { useState } from "react";
2-
31
import { useAppContext } from "@contexts/AppContext";
42
import { LanguageType } from "@types";
53

@@ -17,15 +15,9 @@ const SubLanguageSelector = ({
1715
opened,
1816
}: SubLanguageSelectorProps) => {
1917
const { language, setLanguage } = useAppContext();
20-
const [isOpen, setIsOpen] = useState(
21-
mainLanguage.subLanguages.some(
22-
(subLanguage) => language.name === subLanguage.name
23-
)
24-
);
2518

2619
const handleSelect = (selected: LanguageType) => {
2720
setLanguage(selected);
28-
setIsOpen(false);
2921
onDropdownToggle(mainLanguage);
3022
afterSelect();
3123
};
@@ -48,19 +40,19 @@ const SubLanguageSelector = ({
4840
<button
4941
className="sublanguage__button"
5042
tabIndex={-1}
51-
aria-expanded={isOpen}
43+
aria-expanded={opened}
5244
aria-haspopup="listbox"
5345
onClick={(e) => {
5446
e.stopPropagation();
55-
setIsOpen(!isOpen);
47+
onDropdownToggle(mainLanguage);
5648
}}
5749
>
5850
<span className="sublanguage__arrow" />
5951
</button>
6052
</label>
6153
</li>
6254

63-
{(opened || isOpen) && (
55+
{opened && (
6456
<>
6557
{mainLanguage.subLanguages.map((subLanguage) => (
6658
<li
@@ -77,7 +69,6 @@ const SubLanguageSelector = ({
7769
mainLanguage: mainLanguage,
7870
subLanguages: [],
7971
});
80-
setIsOpen(false);
8172
}}
8273
>
8374
<label>

0 commit comments

Comments
 (0)