From 8831ce162cf8534806c8d2a19f2bcb84128585ac Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Fri, 13 Sep 2024 16:50:40 +0530 Subject: [PATCH 1/2] fix: join project flicker --- web/core/layouts/auth-layout/project-wrapper.tsx | 12 ++++++------ web/core/store/user/permissions.store.ts | 6 +++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/web/core/layouts/auth-layout/project-wrapper.tsx b/web/core/layouts/auth-layout/project-wrapper.tsx index 1c7e241d9e5..11848476a2a 100644 --- a/web/core/layouts/auth-layout/project-wrapper.tsx +++ b/web/core/layouts/auth-layout/project-wrapper.tsx @@ -105,12 +105,12 @@ export const ProjectAuthWrapper: FC = observer((props) => { // derived values const projectExists = projectId ? getProjectById(projectId.toString()) : null; - const hasPermissionToCurrentProject = projectId - ? allowPermissions( - [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], - EUserPermissionsLevel.PROJECT - ) - : undefined; + const hasPermissionToCurrentProject = allowPermissions( + [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST], + EUserPermissionsLevel.PROJECT, + workspaceSlug.toString(), + projectId.toString() + ); // check if the project member apis is loading if (!projectMemberInfo && projectId && hasPermissionToCurrentProject === null) diff --git a/web/core/store/user/permissions.store.ts b/web/core/store/user/permissions.store.ts index 581d65bdd81..3d3b26639f9 100644 --- a/web/core/store/user/permissions.store.ts +++ b/web/core/store/user/permissions.store.ts @@ -245,7 +245,11 @@ export class UserPermissionStore implements IUserPermissionStore { const response = await userService.joinProject(workspaceSlug, [projectId]); if (response) { runInAction(() => { - set(this.workspaceProjectsPermissions, [workspaceSlug, projectId], response); + set( + this.workspaceProjectsPermissions, + [workspaceSlug, projectId], + this.workspaceInfoBySlug(workspaceSlug)?.role + ); }); } return response; From 6444cbddb29a6c44f3a1ba0846f2e6452fff191a Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia Date: Fri, 13 Sep 2024 20:29:29 +0530 Subject: [PATCH 2/2] fix: leave project project mutation and code refactor --- web/core/store/user/permissions.store.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/web/core/store/user/permissions.store.ts b/web/core/store/user/permissions.store.ts index 3d3b26639f9..ba1211b0f1a 100644 --- a/web/core/store/user/permissions.store.ts +++ b/web/core/store/user/permissions.store.ts @@ -243,13 +243,10 @@ export class UserPermissionStore implements IUserPermissionStore { joinProject = async (workspaceSlug: string, projectId: string): Promise => { try { const response = await userService.joinProject(workspaceSlug, [projectId]); + const projectMemberRole = this.workspaceInfoBySlug(workspaceSlug)?.role ?? EUserPermissions.MEMBER; if (response) { runInAction(() => { - set( - this.workspaceProjectsPermissions, - [workspaceSlug, projectId], - this.workspaceInfoBySlug(workspaceSlug)?.role - ); + set(this.workspaceProjectsPermissions, [workspaceSlug, projectId], projectMemberRole); }); } return response; @@ -271,6 +268,7 @@ export class UserPermissionStore implements IUserPermissionStore { runInAction(() => { unset(this.workspaceProjectsPermissions, [workspaceSlug, projectId]); unset(this.projectUserInfo, [workspaceSlug, projectId]); + unset(this.store.projectRoot.project.projectMap, [projectId]); }); } catch (error) { console.error("Error user leaving the project", error);