@@ -4,7 +4,12 @@ import { useNavigate, useParams } from "react-router-dom";
44import { useLanguages } from "@hooks/useLanguages" ;
55import { AppState , LanguageType , SnippetType } from "@types" ;
66import { 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" ;
813import { slugify } from "@utils/slugify" ;
914
1015const AppContext = createContext < AppState > ( defaultState ) ;
@@ -46,8 +51,16 @@ export const AppProvider: FC<{ children: React.ReactNode }> = ({
4651 * Set the default language if the language is not found in the URL.
4752 */
4853useEffect ( ( ) => {
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+ ) ;
5164}
5265// eslint-disable-next-line react-hooks/exhaustive-deps
5366} , [ ] ) ;