Skip to content

Commit 948097d

Browse files
committed
add the redirection
1 parent d9a7278 commit 948097d

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/components/Nav/index.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,11 @@ const Nav: React.FC<IProps> = ({ path }) => {
418418
}
419419

420420
const shouldShowSubNav = path.includes("/developers/")
421-
421+
const splitPath = path.split("/")
422+
const fromPageParameter =
423+
splitPath.length > 3 && splitPath[2] !== "languages"
424+
? `?from=/${splitPath.slice(2).join("/")}`
425+
: ""
422426
return (
423427
<NavContainer>
424428
<StyledNav aria-label={translateMessageId("nav-primary", intl)}>
@@ -441,7 +445,7 @@ const Nav: React.FC<IProps> = ({ path }) => {
441445
>
442446
<NavIcon name={isDarkTheme ? "lightTheme" : "darkTheme"} />
443447
</ThemeToggle>
444-
<RightNavLink to="/languages/">
448+
<RightNavLink to={`/languages/${fromPageParameter}`}>
445449
<NavIcon name="language" />
446450
<Span>
447451
<Translation id="languages" />

src/pages/languages.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { useState } from "react"
22
import styled from "@emotion/styled"
3+
import { useLocation } from "@reach/router"
34
import { useIntl } from "react-intl"
45

56
import PageMetadata from "../components/PageMetadata"
@@ -68,12 +69,13 @@ const ResetIcon = styled(Icon)`
6869
fill: ${(props) => props.theme.colors.text};
6970
`
7071

71-
interface TranslatedLanguage extends Language {
72-
path: string
73-
}
74-
7572
const LanguagesPage = () => {
7673
const intl = useIntl()
74+
const location = useLocation()
75+
const redirectTo =
76+
location.search.split("from=").length > 1
77+
? location.search.split("from=")[1]
78+
: "/"
7779
const [keyword, setKeyword] = useState<string>("")
7880
const resetKeyword = (e: React.MouseEvent<HTMLButtonElement>) => {
7981
e.preventDefault()
@@ -83,11 +85,10 @@ const LanguagesPage = () => {
8385
"page-languages-filter-placeholder",
8486
intl
8587
)
86-
let translationsCompleted: Array<TranslatedLanguage> = []
88+
let translationsCompleted: Array<Language> = []
8789
for (const lang in languageMetadata) {
8890
const langMetadata = {
8991
...languageMetadata[lang],
90-
path: "/",
9192
name: translateMessageId(`language-${lang}` as TranslationKey, intl),
9293
}
9394

@@ -147,7 +148,7 @@ const LanguagesPage = () => {
147148
</Form>
148149
<LangContainer>
149150
{translationsCompleted.map((lang) => (
150-
<LangItem to={lang.path} language={lang.code} key={lang["name"]}>
151+
<LangItem to={redirectTo} language={lang.code} key={lang["name"]}>
151152
<LangTitle>{lang["name"]}</LangTitle>
152153
<h4>{lang.localName}</h4>
153154
</LangItem>

0 commit comments

Comments
 (0)