Skip to content

Commit f934e32

Browse files
committed
Changes to code style
1 parent be204bb commit f934e32

File tree

4 files changed

+41
-15
lines changed

4 files changed

+41
-15
lines changed

cspell-dict.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
quicksnip
22
slugifyed
3+
sublanguage

src/components/LanguageSelector.tsx

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,28 @@ import { useAppContext } from "@contexts/AppContext";
44
import { useKeyboardNavigation } from "@hooks/useKeyboardNavigation";
55
import { useLanguages } from "@hooks/useLanguages";
66
import { LanguageType } from "@types";
7+
78
import SubLanguageSelector from "./SublanguageSelector";
89

910
// Inspired by https://blog.logrocket.com/creating-custom-select-dropdown-css/
1011

1112
const LanguageSelector = () => {
1213
const { language, setLanguage } = useAppContext();
1314
const { fetchedLanguages, loading, error } = useLanguages();
14-
const allLanguages = useMemo(() =>
15-
fetchedLanguages.flatMap((lang) =>
16-
lang.subLanguages.length > 0
17-
? [lang, ...lang.subLanguages.map((subLang) => ({ ...subLang, mainLanguage: lang, subLanguages: [] }))]
18-
: [lang]
19-
),
15+
const allLanguages = useMemo(
16+
() =>
17+
fetchedLanguages.flatMap((lang) =>
18+
lang.subLanguages.length > 0
19+
? [
20+
lang,
21+
...lang.subLanguages.map((subLang) => ({
22+
...subLang,
23+
mainLanguage: lang,
24+
subLanguages: [],
25+
})),
26+
]
27+
: [lang]
28+
),
2029
[fetchedLanguages]
2130
);
2231

@@ -32,7 +41,7 @@ const LanguageSelector = () => {
3241
const { focusedIndex, handleKeyDown, resetFocus, focusFirst } =
3342
useKeyboardNavigation({
3443
items: allLanguages,
35-
isOpen,
44+
isOpen,
3645
openedLanguages,
3746
onSelect: handleSelect,
3847
onClose: () => setIsOpen(false),
@@ -53,7 +62,9 @@ const LanguageSelector = () => {
5362
if (open) {
5463
setOpenedLanguages((prev) => [...prev, openedLang]);
5564
} else {
56-
setOpenedLanguages((prev) => prev.filter((lang) => lang.name !== openedLang.name));
65+
setOpenedLanguages((prev) =>
66+
prev.filter((lang) => lang.name !== openedLang.name)
67+
);
5768
}
5869
};
5970

@@ -109,9 +120,16 @@ const LanguageSelector = () => {
109120
onKeyDown={handleKeyDown}
110121
tabIndex={-1}
111122
>
112-
{fetchedLanguages.map((lang, index) => (
123+
{fetchedLanguages.map((lang, index) =>
113124
lang.subLanguages.length > 0 ? (
114-
<SubLanguageSelector key={index} mainLanguage={lang} afterSelect={()=>{ setIsOpen(false)}} onDropdownChange={handleOpenedSublanguage}/>
125+
<SubLanguageSelector
126+
key={index}
127+
mainLanguage={lang}
128+
afterSelect={() => {
129+
setIsOpen(false);
130+
}}
131+
onDropdownChange={handleOpenedSublanguage}
132+
/>
115133
) : (
116134
<li
117135
key={lang.name}
@@ -129,7 +147,7 @@ const LanguageSelector = () => {
129147
</label>
130148
</li>
131149
)
132-
))}
150+
)}
133151
</ul>
134152
)}
135153
</div>

src/components/SublanguageSelector.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import { useEffect, useState } from "react";
2+
13
import { useAppContext } from "@contexts/AppContext";
24
import { LanguageType } from "@types";
3-
import { useEffect, useState } from "react";
45

56
type SubLanguageSelectorProps = {
67
mainLanguage: LanguageType;
@@ -11,7 +12,7 @@ type SubLanguageSelectorProps = {
1112
const SubLanguageSelector = ({
1213
mainLanguage,
1314
afterSelect,
14-
onDropdownChange
15+
onDropdownChange,
1516
}: SubLanguageSelectorProps) => {
1617
const { language, setLanguage } = useAppContext();
1718
const [isOpen, setIsOpen] = useState(
@@ -28,7 +29,7 @@ const SubLanguageSelector = ({
2829

2930
useEffect(() => {
3031
onDropdownChange(isOpen, mainLanguage);
31-
}, [isOpen]);
32+
}, [mainLanguage, onDropdownChange, isOpen]);
3233

3334
return (
3435
<>

src/hooks/useKeyboardNavigation.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,13 @@ export const useKeyboardNavigation = ({
4949
break;
5050
case "Enter":
5151
if (focusedIndex >= 0) {
52-
onSelect(items.filter((item) => !item.mainLanguage || openedLanguages.includes(item.mainLanguage))[focusedIndex]);
52+
onSelect(
53+
items.filter(
54+
(item) =>
55+
!item.mainLanguage ||
56+
openedLanguages.includes(item.mainLanguage)
57+
)[focusedIndex]
58+
);
5359
}
5460
break;
5561
case "Escape":

0 commit comments

Comments
 (0)