@@ -3,7 +3,7 @@ import { useNavigate } from "react-router-dom";
33import { useAppContext } from "@contexts/AppContext" ;
44import { LanguageType } from "@types" ;
55import { configureUserSelection } from "@utils/configureUserSelection" ;
6- import { defaultSlugifiedSubLanguageName } from "@utils/consts" ;
6+ import { defaultSubLanguageName } from "@utils/consts" ;
77import { slugify } from "@utils/slugify" ;
88
99type SubLanguageSelectorProps = {
@@ -37,9 +37,11 @@ const SubLanguageSelector = ({
3737 } ) ;
3838
3939 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 ) ;
4345 afterSelect ( ) ;
4446 } ;
4547
@@ -49,13 +51,13 @@ const SubLanguageSelector = ({
4951 role = "option"
5052 tabIndex = { 0 }
5153 className = { `selector__item ${
52- subLanguage === defaultSlugifiedSubLanguageName &&
54+ subLanguage === defaultSubLanguageName &&
5355 language . name === parentLanguage . name
5456 ? "selected"
5557 : ""
5658 } `}
5759 aria-selected = {
58- subLanguage === defaultSlugifiedSubLanguageName &&
60+ subLanguage === defaultSubLanguageName &&
5961 language . name === parentLanguage . name
6062 }
6163 onClick = { ( ) => handleParentSelect ( parentLanguage ) }
@@ -78,24 +80,30 @@ const SubLanguageSelector = ({
7880 </ label >
7981 </ li >
8082
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+ } ) }
99107 </ >
100108 ) ;
101109} ;
0 commit comments