Update LoginModal and SignupModal
And adds a new changeLanguage util
This commit is contained in:
parent
fb31d6795c
commit
d737310b2c
3 changed files with 47 additions and 24 deletions
|
|
@ -16,6 +16,8 @@ import {
|
||||||
DialogClose,
|
DialogClose,
|
||||||
} from '~components/Dialog'
|
} from '~components/Dialog'
|
||||||
|
|
||||||
|
import changeLanguage from '~utils/changeLanguage'
|
||||||
|
|
||||||
import CrossIcon from '~public/icons/Cross.svg'
|
import CrossIcon from '~public/icons/Cross.svg'
|
||||||
import './index.scss'
|
import './index.scss'
|
||||||
|
|
||||||
|
|
@ -127,23 +129,31 @@ const LoginModal = (props: Props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function storeUserInfo(response: AxiosResponse) {
|
function storeUserInfo(response: AxiosResponse) {
|
||||||
|
// Extract the user
|
||||||
const user = response.data
|
const user = response.data
|
||||||
|
|
||||||
const cookieObj: UserCookie = {
|
// Set user data in the user cookie
|
||||||
picture: user.avatar.picture,
|
setCookie(
|
||||||
element: user.avatar.element,
|
'user',
|
||||||
language: user.language,
|
{
|
||||||
gender: user.gender,
|
picture: user.avatar.picture,
|
||||||
}
|
element: user.avatar.element,
|
||||||
|
language: user.language,
|
||||||
setCookie('user', cookieObj, { path: '/' })
|
gender: user.gender,
|
||||||
|
theme: user.theme,
|
||||||
|
},
|
||||||
|
{ path: '/' }
|
||||||
|
)
|
||||||
|
|
||||||
|
// Set the user data in the account state
|
||||||
accountState.account.user = {
|
accountState.account.user = {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
picture: user.avatar.picture,
|
picture: user.avatar.picture,
|
||||||
element: user.avatar.element,
|
element: user.avatar.element,
|
||||||
gender: user.gender,
|
gender: user.gender,
|
||||||
|
language: user.language,
|
||||||
|
theme: user.theme,
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Authorizing account...')
|
console.log('Authorizing account...')
|
||||||
|
|
@ -153,13 +163,6 @@ const LoginModal = (props: Props) => {
|
||||||
changeLanguage(user.language)
|
changeLanguage(user.language)
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeLanguage(newLanguage: string) {
|
|
||||||
if (newLanguage !== router.locale) {
|
|
||||||
setCookie('NEXT_LOCALE', newLanguage, { path: '/' })
|
|
||||||
router.push(router.asPath, undefined, { locale: newLanguage })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function openChange(open: boolean) {
|
function openChange(open: boolean) {
|
||||||
setOpen(open)
|
setOpen(open)
|
||||||
setErrors({
|
setErrors({
|
||||||
|
|
|
||||||
|
|
@ -102,27 +102,36 @@ const SignupModal = (props: Props) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function storeUserInfo(response: AxiosResponse) {
|
function storeUserInfo(response: AxiosResponse) {
|
||||||
|
// Extract the user
|
||||||
const user = response.data
|
const user = response.data
|
||||||
|
|
||||||
const cookieObj: UserCookie = {
|
// Set user data in the user cookie
|
||||||
picture: user.avatar.picture,
|
setCookie(
|
||||||
element: user.avatar.element,
|
'user',
|
||||||
language: user.language,
|
{
|
||||||
gender: user.gender,
|
picture: user.avatar.picture,
|
||||||
}
|
element: user.avatar.element,
|
||||||
|
language: user.language,
|
||||||
// TODO: Set language
|
gender: user.gender,
|
||||||
setCookie('user', cookieObj, { path: '/' })
|
theme: user.theme,
|
||||||
|
},
|
||||||
|
{ path: '/' }
|
||||||
|
)
|
||||||
|
|
||||||
|
// Set the user data in the account state
|
||||||
accountState.account.user = {
|
accountState.account.user = {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
picture: user.avatar.picture,
|
picture: user.avatar.picture,
|
||||||
element: user.avatar.element,
|
element: user.avatar.element,
|
||||||
gender: user.gender,
|
gender: user.gender,
|
||||||
|
language: user.language,
|
||||||
|
theme: user.theme,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('Authorizing account...')
|
||||||
accountState.account.authorized = true
|
accountState.account.authorized = true
|
||||||
|
|
||||||
setOpen(false)
|
setOpen(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
11
utils/changeLanguage.tsx
Normal file
11
utils/changeLanguage.tsx
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { setCookie } from 'cookies-next'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
|
||||||
|
export default function changeLanguage(newLanguage: string) {
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
if (newLanguage !== router.locale) {
|
||||||
|
setCookie('NEXT_LOCALE', newLanguage, { path: '/' })
|
||||||
|
router.push(router.asPath, undefined, { locale: newLanguage })
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue