@@ -4,7 +4,12 @@ import { useNavigate, useParams } from "react-router-dom";
4
4
import { useLanguages } from "@hooks/useLanguages" ;
5
5
import { AppState , LanguageType , SnippetType } from "@types" ;
6
6
import { configureUserSelection } from "@utils/configureUserSelection" ;
7
- import { defaultLanguage , defaultState } from "@utils/consts" ;
7
+ import {
8
+ defaultCategoryName ,
9
+ defaultLanguage ,
10
+ defaultSlugifiedSubLanguageName ,
11
+ defaultState ,
12
+ } from "@utils/consts" ;
8
13
import { slugify } from "@utils/slugify" ;
9
14
10
15
const AppContext = createContext < AppState > ( defaultState ) ;
@@ -46,8 +51,16 @@ export const AppProvider: FC<{ children: React.ReactNode }> = ({
46
51
* Set the default language if the language is not found in the URL.
47
52
*/
48
53
useEffect ( ( ) => {
49
- if ( languageName === undefined ) {
50
- navigate ( `/${ slugify ( defaultLanguage . name ) } ` , { replace : true } ) ;
54
+ const resolvedLanguage = languageName || defaultLanguage . name ;
55
+ const resolvedSubLanguage =
56
+ subLanguageName || defaultSlugifiedSubLanguageName ;
57
+ const resolvedCategory = categoryName || defaultCategoryName ;
58
+
59
+ if ( ! languageName || ! subLanguageName || ! categoryName ) {
60
+ navigate (
61
+ `/${ slugify ( resolvedLanguage ) } /${ slugify ( resolvedSubLanguage ) } /${ slugify ( resolvedCategory ) } ` ,
62
+ { replace : true }
63
+ ) ;
51
64
}
52
65
// eslint-disable-next-line react-hooks/exhaustive-deps
53
66
} , [ ] ) ;
0 commit comments