File tree 2 files changed +20
-3
lines changed
2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,10 @@ const AppRouter = () => {
9
9
< Route element = { < App /> } >
10
10
< Route path = "/" element = { < SnippetList /> } />
11
11
< Route path = "/:languageName" element = { < SnippetList /> } />
12
+ < Route
13
+ path = "/:languageName/:subLanguageName"
14
+ element = { < SnippetList /> }
15
+ />
12
16
< Route
13
17
path = "/:languageName/:subLanguageName/:categoryName"
14
18
element = { < SnippetList /> }
Original file line number Diff line number Diff line change @@ -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
} , [ ] ) ;
You can’t perform that action at this time.
0 commit comments