File tree Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,10 @@ const AppRouter = () => {
99 < Route element = { < App /> } >
1010 < Route path = "/" element = { < SnippetList /> } />
1111 < Route path = "/:languageName" element = { < SnippetList /> } />
12+ < Route
13+ path = "/:languageName/:subLanguageName"
14+ element = { < SnippetList /> }
15+ />
1216 < Route
1317 path = "/:languageName/:subLanguageName/:categoryName"
1418 element = { < SnippetList /> }
Original file line number Diff line number Diff line change @@ -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 */
4853 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+ ) ;
5164 }
5265 // eslint-disable-next-line react-hooks/exhaustive-deps
5366 } , [ ] ) ;
You can’t perform that action at this time.
0 commit comments