@@ -3,7 +3,7 @@ import { useNavigate } from "react-router-dom";
3
3
import { useAppContext } from "@contexts/AppContext" ;
4
4
import { LanguageType } from "@types" ;
5
5
import { configureUserSelection } from "@utils/configureUserSelection" ;
6
- import { defaultSlugifiedSubLanguageName } from "@utils/consts" ;
6
+ import { defaultSubLanguageName } from "@utils/consts" ;
7
7
import { slugify } from "@utils/slugify" ;
8
8
9
9
type SubLanguageSelectorProps = {
@@ -37,9 +37,11 @@ const SubLanguageSelector = ({
37
37
} ) ;
38
38
39
39
setSearchText ( "" ) ;
40
- navigate (
41
- `/${ slugify ( newLanguage . name ) } /${ slugify ( newSubLanguage ) } /${ slugify ( newCategory ) } `
42
- ) ;
40
+ const navigatePath =
41
+ newSubLanguage === null
42
+ ? `/${ slugify ( newLanguage . name ) } /s/${ slugify ( newCategory ) } `
43
+ : `/${ slugify ( newLanguage . name ) } /${ slugify ( newSubLanguage ) } /${ slugify ( newCategory ) } ` ;
44
+ navigate ( navigatePath ) ;
43
45
afterSelect ( ) ;
44
46
} ;
45
47
@@ -49,13 +51,13 @@ const SubLanguageSelector = ({
49
51
role = "option"
50
52
tabIndex = { 0 }
51
53
className = { `selector__item ${
52
- subLanguage === defaultSlugifiedSubLanguageName &&
54
+ subLanguage === defaultSubLanguageName &&
53
55
language . name === parentLanguage . name
54
56
? "selected"
55
57
: ""
56
58
} `}
57
59
aria-selected = {
58
- subLanguage === defaultSlugifiedSubLanguageName &&
60
+ subLanguage === defaultSubLanguageName &&
59
61
language . name === parentLanguage . name
60
62
}
61
63
onClick = { ( ) => handleParentSelect ( parentLanguage ) }
@@ -78,24 +80,30 @@ const SubLanguageSelector = ({
78
80
</ label >
79
81
</ li >
80
82
81
- { parentLanguage . subLanguages . map ( ( sl ) => (
82
- < li
83
- key = { sl . name }
84
- role = "option"
85
- tabIndex = { opened ? 0 : - 1 }
86
- aria-disabled = { ! opened }
87
- className = { `selector__item sublanguage__item ${ opened ? "" : "hidden" } ${
88
- slugify ( subLanguage ) === slugify ( sl . name ) ? "selected" : ""
89
- } `}
90
- aria-selected = { slugify ( subLanguage ) === slugify ( sl . name ) }
91
- onClick = { handleSubLanguageSelect ( sl ) }
92
- >
93
- < label >
94
- < img src = { sl . icon } alt = { sl . name } />
95
- < span > { sl . name } </ span >
96
- </ label >
97
- </ li >
98
- ) ) }
83
+ { parentLanguage . subLanguages . map ( ( sl ) => {
84
+ const isSelected = subLanguage
85
+ ? slugify ( subLanguage ) === slugify ( sl . name )
86
+ : false ;
87
+
88
+ return (
89
+ < li
90
+ key = { sl . name }
91
+ role = "option"
92
+ tabIndex = { opened ? 0 : - 1 }
93
+ aria-disabled = { ! opened }
94
+ className = { `selector__item sublanguage__item ${ opened ? "" : "hidden" } ${
95
+ isSelected ? "selected" : ""
96
+ } `}
97
+ aria-selected = { isSelected }
98
+ onClick = { handleSubLanguageSelect ( sl ) }
99
+ >
100
+ < label >
101
+ < img src = { sl . icon } alt = { sl . name } />
102
+ < span > { sl . name } </ span >
103
+ </ label >
104
+ </ li >
105
+ ) ;
106
+ } ) }
99
107
</ >
100
108
) ;
101
109
} ;
0 commit comments