diff --git a/apps/web/core/store/user/index.ts b/apps/web/core/store/user/index.ts index 7181a6ed17f..5218c2ba9dd 100644 --- a/apps/web/core/store/user/index.ts +++ b/apps/web/core/store/user/index.ts @@ -153,7 +153,7 @@ export class UserStore implements IUserStore { * @returns {Promise} */ updateCurrentUser = async (data: Partial): Promise => { - const currentUserData = this.data; + const currentUserData = cloneDeep(this.data); try { if (currentUserData) { Object.keys(data).forEach((key: string) => { @@ -162,6 +162,14 @@ export class UserStore implements IUserStore { }); } const user = await this.userService.updateUser(data); + if (user && this.data) { + runInAction(() => { + Object.keys(user).forEach((key: string) => { + const userKey: keyof IUser = key as keyof IUser; + if (this.data) set(this.data, userKey, user[userKey]); + }); + }); + } return user; } catch (error) { if (currentUserData) { diff --git a/apps/web/helpers/cover-image.helper.ts b/apps/web/helpers/cover-image.helper.ts index 6ef7b2854c5..ebb5c19f8f8 100644 --- a/apps/web/helpers/cover-image.helper.ts +++ b/apps/web/helpers/cover-image.helper.ts @@ -272,11 +272,13 @@ export const handleCoverImageChange = async ( } if (analysis.needsUpload) { - await uploadCoverImage(newImage, uploadConfig); - return; + const assetUrl = await uploadCoverImage(newImage, uploadConfig); + // cover_image requires an absolute URL; cover_image_url is relative (matches GET /api/users/me/ format) + return { cover_image: getFileURL(assetUrl) || assetUrl, cover_image_url: assetUrl }; } - return { cover_image: newImage }; + // cover_image requires an absolute URL; getFileURL converts relative paths from the Upload tab + return { cover_image: getFileURL(newImage) || newImage, cover_image_url: newImage }; }; /**