Skip to content

Commit c49b0b8

Browse files
committed
#25 언어 전환시 페이지 링크 유지
1 parent feacf6f commit c49b0b8

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

frontend/components/core/NavBar.tsx

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ export const SubMenuListItem = styled.li`
8484
padding-top: 0.6rem;
8585
}
8686
`
87+
const LanguageChangeButton = styled.button`
88+
background: transparent;
89+
border: 0;
90+
color: inherit;
91+
font-size: inherit;
92+
cursor: pointer;
93+
`
8794

8895
interface NavProps {
8996
locale: string
@@ -109,6 +116,11 @@ const NavBar = (props: NavProps) => {
109116
setOpenedSubMenu(openedSubMenu === menuName ? null : menuName)
110117
}
111118

119+
const handleChangeLanguage = (lang) => (e) => {
120+
e.preventDefault()
121+
router.push(router.asPath, undefined, { locale: lang })
122+
}
123+
112124
return (
113125
<Container isTransparent={isHome}>
114126
<List>
@@ -147,11 +159,19 @@ const NavBar = (props: NavProps) => {
147159
})}
148160
{props.locale === 'ko' ? (
149161
<ListItem>
150-
<Link href="/en">English</Link>
162+
<LanguageChangeButton
163+
onClick={handleChangeLanguage('en')}
164+
>
165+
English
166+
</LanguageChangeButton>
151167
</ListItem>
152168
) : (
153169
<ListItem>
154-
<Link href="/">한국어</Link>
170+
<LanguageChangeButton
171+
onClick={handleChangeLanguage('ko')}
172+
>
173+
한국어
174+
</LanguageChangeButton>
155175
</ListItem>
156176
)}
157177
</List>

frontend/components/core/NavBarMobile.tsx

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from 'react'
1+
import React, { useState, useEffect } from 'react'
22
import { routes, RouteType } from '../../routes/routes'
33
import styled from 'styled-components'
44
import { useTranslation } from 'react-i18next'
@@ -138,6 +138,14 @@ const MobileSubMenuList = styled(SubMenuList)`
138138
`
139139
const MobileSubMenuListItem = styled(SubMenuListItem)``
140140

141+
const LanguageChangeButton = styled.button`
142+
background: transparent;
143+
border: 0;
144+
color: inherit;
145+
font-size: inherit;
146+
cursor: pointer;
147+
`
148+
141149
interface NavProps {
142150
locale: string
143151
}
@@ -167,6 +175,11 @@ const NavBarMobile = (props: NavProps) => {
167175
: `/${props.locale}${routePath}`
168176
}
169177

178+
const onChangeLanguage = (lang) => (e) => {
179+
e.preventDefault()
180+
router.push(router.asPath, undefined, { locale: lang })
181+
}
182+
170183
return (
171184
<Container isTransparent={isHome}>
172185
<ToggleMenu
@@ -224,11 +237,19 @@ const NavBarMobile = (props: NavProps) => {
224237
})}
225238
{props.locale === 'ko' ? (
226239
<ListItem>
227-
<Link href="/en">English</Link>
240+
<LanguageChangeButton
241+
onClick={onChangeLanguage('en')}
242+
>
243+
English
244+
</LanguageChangeButton>
228245
</ListItem>
229246
) : (
230247
<ListItem>
231-
<Link href="/">한국어</Link>
248+
<LanguageChangeButton
249+
onClick={onChangeLanguage('ko')}
250+
>
251+
한국어
252+
</LanguageChangeButton>
232253
</ListItem>
233254
)}
234255
</List>

0 commit comments

Comments
 (0)