From 040ee4b256505c6feb352cd27c10d777d67b1681 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Date: Mon, 29 Jul 2024 16:50:30 +0530 Subject: [PATCH] [WEB-2026] fix: avatar visibility on project list after user leaves project (#5241) * fix: project leave mutation * chore: code refactor --- web/core/store/user/user-membership.store.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/web/core/store/user/user-membership.store.ts b/web/core/store/user/user-membership.store.ts index ecc73e16f..226b3ce79 100644 --- a/web/core/store/user/user-membership.store.ts +++ b/web/core/store/user/user-membership.store.ts @@ -1,7 +1,8 @@ -import { set } from "lodash"; +import set from "lodash/set"; +import update from "lodash/update"; import { action, observable, runInAction, makeObservable, computed } from "mobx"; // types -import { IWorkspaceMemberMe, IProjectMember, IUserProjectsRole } from "@plane/types"; +import { IWorkspaceMemberMe, IProjectMember, IUserProjectsRole, IProjectMemberLite } from "@plane/types"; // constants import { EUserProjectRoles } from "@/constants/project"; import { EUserWorkspaceRoles } from "@/constants/workspace"; @@ -253,6 +254,15 @@ export class UserMembershipStore implements IUserMembershipStore { set(this.hasPermissionToProject, [projectId], false); // update the project member list with the new permissions set(this.store.projectRoot.project.projectMap, [projectId, "is_member"], false); + // remove user from project members list + update(this.store.projectRoot.project.projectMap, projectId, (project) => { + if (project) { + project.members = project.members.filter( + (member: IProjectMemberLite) => member.member_id !== this.store.user?.data?.id + ); + } + return project; + }); }); /**