Merge pull request #177 from jedmund/fix-avatar

Fix avatar not changing in Header when changed
This commit is contained in:
Justin Edmund 2023-01-28 03:51:57 -08:00 committed by GitHub
commit 5fa36e6f05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 44 additions and 23 deletions

View file

@ -159,8 +159,10 @@ const AccountModal = React.forwardRef<HTMLDivElement, Props>(
const user = response.data const user = response.data
const cookieObj = { const cookieObj = {
picture: user.avatar.picture, avatar: {
element: user.avatar.element, picture: user.avatar.picture,
element: user.avatar.element,
},
gender: user.gender, gender: user.gender,
language: user.language, language: user.language,
theme: user.theme, theme: user.theme,
@ -173,14 +175,18 @@ const AccountModal = React.forwardRef<HTMLDivElement, Props>(
accountState.account.user = { accountState.account.user = {
id: user.id, id: user.id,
username: user.username, username: user.username,
picture: user.avatar.picture, granblueId: '',
element: user.avatar.element, avatar: {
picture: user.avatar.picture,
element: user.avatar.element,
},
language: user.language, language: user.language,
theme: user.theme, theme: user.theme,
gender: user.gender, gender: user.gender,
} }
setOpen(false) setOpen(false)
if (props.onOpenChange) props.onOpenChange(false)
changeLanguage(router, user.language) changeLanguage(router, user.language)
}) })
} }

View file

@ -197,10 +197,10 @@ const Header = () => {
image = ( image = (
<img <img
alt={user.username} alt={user.username}
className={`profile ${user.element}`} className={`profile ${user.avatar.element}`}
srcSet={`/profile/${user.picture}.png, srcSet={`/profile/${user.avatar.picture}.png,
/profile/${user.picture}@2x.png 2x`} /profile/${user.avatar.picture}@2x.png 2x`}
src={`/profile/${user.picture}.png`} src={`/profile/${user.avatar.picture}.png`}
/> />
) )
} else { } else {
@ -262,7 +262,7 @@ const Header = () => {
<AccountModal <AccountModal
open={settingsModalOpen} open={settingsModalOpen}
username={user.username} username={user.username}
picture={user.picture} picture={user.avatar.picture}
gender={user.gender} gender={user.gender}
language={user.language} language={user.language}
theme={user.theme} theme={user.theme}

View file

@ -161,8 +161,10 @@ const LoginModal = (props: Props) => {
setCookie( setCookie(
'user', 'user',
{ {
picture: user.avatar.picture, avatar: {
element: user.avatar.element, picture: user.avatar.picture,
element: user.avatar.element,
},
language: user.language, language: user.language,
gender: user.gender, gender: user.gender,
theme: user.theme, theme: user.theme,
@ -174,8 +176,11 @@ const LoginModal = (props: Props) => {
accountState.account.user = { accountState.account.user = {
id: user.id, id: user.id,
username: user.username, username: user.username,
picture: user.avatar.picture, granblueId: '',
element: user.avatar.element, avatar: {
picture: user.avatar.picture,
element: user.avatar.element,
},
gender: user.gender, gender: user.gender,
language: user.language, language: user.language,
theme: user.theme, theme: user.theme,

View file

@ -121,8 +121,10 @@ const SignupModal = (props: Props) => {
setCookie( setCookie(
'user', 'user',
{ {
picture: user.avatar.picture, avatar: {
element: user.avatar.element, picture: user.avatar.picture,
element: user.avatar.element,
},
language: user.language, language: user.language,
gender: user.gender, gender: user.gender,
theme: user.theme, theme: user.theme,
@ -134,8 +136,11 @@ const SignupModal = (props: Props) => {
accountState.account.user = { accountState.account.user = {
id: user.id, id: user.id,
username: user.username, username: user.username,
picture: user.avatar.picture, granblueId: '',
element: user.avatar.element, avatar: {
picture: user.avatar.picture,
element: user.avatar.element,
},
gender: user.gender, gender: user.gender,
language: user.language, language: user.language,
theme: user.theme, theme: user.theme,

View file

@ -32,8 +32,11 @@ function MyApp({ Component, pageProps }: AppProps) {
accountState.account.user = { accountState.account.user = {
id: cookieData.account.userId, id: cookieData.account.userId,
username: cookieData.account.username, username: cookieData.account.username,
picture: cookieData.user.picture, granblueId: '',
element: cookieData.user.element, avatar: {
picture: cookieData.user.avatar.picture,
element: cookieData.user.avatar.element,
},
gender: cookieData.user.gender, gender: cookieData.user.gender,
language: cookieData.user.language, language: cookieData.user.language,
theme: cookieData.user.theme, theme: cookieData.user.theme,

3
types/User.d.ts vendored
View file

@ -1,11 +1,10 @@
interface User { interface User {
id: string id: string
username: string username: string
granblueId: number granblueId: string
avatar: { avatar: {
picture: string picture: string
element: string element: string
} }
gender: number gender: number
private: boolean
} }

View file

@ -2,9 +2,12 @@ import { proxy } from 'valtio'
export type UserState = { export type UserState = {
id: string id: string
granblueId: string
username: string username: string
picture: string avatar: {
element: string picture: string
element: string
}
gender: number gender: number
language: string language: string
theme: string theme: string