From 46e472a23ca346b9ad5456c4ba64fc6f8e4b2db1 Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Thu, 24 Jul 2025 15:18:19 +0530 Subject: [PATCH] [WEB-4536] fix: remove inactive workspace members from lists and dropdowns --- .../core/components/workspace/settings/members-list.tsx | 4 +--- apps/web/core/store/member/workspace-member.store.ts | 7 ++++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/web/core/components/workspace/settings/members-list.tsx b/apps/web/core/components/workspace/settings/members-list.tsx index 457e852926e..9bce5ea0f15 100644 --- a/apps/web/core/components/workspace/settings/members-list.tsx +++ b/apps/web/core/components/workspace/settings/members-list.tsx @@ -47,9 +47,7 @@ export const WorkspaceMembersList: FC<{ searchQuery: string; isAdmin: boolean }> // derived values const searchedMemberIds = getSearchedWorkspaceMemberIds(searchQuery); const searchedInvitationsIds = getSearchedWorkspaceInvitationIds(searchQuery); - const memberDetails = searchedMemberIds - ?.map((memberId) => getWorkspaceMemberDetails(memberId)) - .filter((member) => member?.is_active); + const memberDetails = searchedMemberIds?.map((memberId) => getWorkspaceMemberDetails(memberId)); return ( <> diff --git a/apps/web/core/store/member/workspace-member.store.ts b/apps/web/core/store/member/workspace-member.store.ts index d6276a322fd..9ec2b479ceb 100644 --- a/apps/web/core/store/member/workspace-member.store.ts +++ b/apps/web/core/store/member/workspace-member.store.ts @@ -120,7 +120,9 @@ export class WorkspaceMemberStore implements IWorkspaceMemberStore { (m) => this.memberRoot?.memberMap?.[m.member]?.display_name?.toLowerCase(), ]); //filter out bots - const memberIds = members.filter((m) => !this.memberRoot?.memberMap?.[m.member]?.is_bot).map((m) => m.member); + const memberIds = members + .filter((m) => m.is_active && !this.memberRoot?.memberMap?.[m.member]?.is_bot) + .map((m) => m.member); return memberIds; }); @@ -251,8 +253,7 @@ export class WorkspaceMemberStore implements IWorkspaceMemberStore { if (!memberDetails) throw new Error("Member not found"); await this.workspaceService.deleteWorkspaceMember(workspaceSlug, memberDetails?.id).then(() => { runInAction(() => { - delete this.memberRoot?.memberMap?.[userId]; - delete this.workspaceMemberMap?.[workspaceSlug]?.[userId]; + set(this.workspaceMemberMap, [workspaceSlug, userId, "is_active"], false); }); }); };