From 5eaaedde78282cde42cab4437359072b992779ea Mon Sep 17 00:00:00 2001 From: guru_sainath Date: Thu, 17 Aug 2023 12:41:01 +0530 Subject: [PATCH 1/2] fix: handled default view on plane deploy --- .../[workspace_slug]/[project_slug]/page.tsx | 28 ++++++++++++++----- apps/space/lib/mobx/store-init.tsx | 5 ---- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/apps/space/app/[workspace_slug]/[project_slug]/page.tsx b/apps/space/app/[workspace_slug]/[project_slug]/page.tsx index 0aa9b164d72..3e5c5849741 100644 --- a/apps/space/app/[workspace_slug]/[project_slug]/page.tsx +++ b/apps/space/app/[workspace_slug]/[project_slug]/page.tsx @@ -29,15 +29,29 @@ const WorkspaceProjectPage = observer(() => { // updating default board view when we are in the issues page useEffect(() => { - if (workspace_slug && project_slug) { - if (!board) { - store.issue.setCurrentIssueBoardView("list"); - router.replace(`/${workspace_slug}/${project_slug}?board=${store?.issue?.currentIssueBoardView}`); - } else { - if (board != store?.issue?.currentIssueBoardView) store.issue.setCurrentIssueBoardView(board); + if (workspace_slug && project_slug && store?.project?.workspaceProjectSettings) { + const workspacePRojectSettingViews = store?.project?.workspaceProjectSettings?.views; + let initView: null | TIssueBoardKeys = null; + + if (initView === null && workspacePRojectSettingViews.list === true) initView = "list"; + else if (initView === null && workspacePRojectSettingViews.kanban === true) initView = "kanban"; + else if (initView === null && workspacePRojectSettingViews.calendar === true) initView = "calendar"; + else if (initView === null && workspacePRojectSettingViews.gantt === true) initView = "gantt"; + else if (initView === null && workspacePRojectSettingViews.spreadsheet === true) initView = "spreadsheet"; + + if (initView != null) { + if (!board) { + store.issue.setCurrentIssueBoardView(initView); + router.replace(`/${workspace_slug}/${project_slug}?board=${initView}`); + } else { + if (board != store?.issue?.currentIssueBoardView) { + store.issue.setCurrentIssueBoardView(initView); + router.replace(`/${workspace_slug}/${project_slug}?board=${initView}`); + } + } } } - }, [workspace_slug, project_slug, board, router, store?.issue]); + }, [workspace_slug, project_slug, board, router, store?.issue, store?.project?.workspaceProjectSettings]); useEffect(() => { if (workspace_slug && project_slug) { diff --git a/apps/space/lib/mobx/store-init.tsx b/apps/space/lib/mobx/store-init.tsx index 2ba2f90247f..4f4b6662c97 100644 --- a/apps/space/lib/mobx/store-init.tsx +++ b/apps/space/lib/mobx/store-init.tsx @@ -24,11 +24,6 @@ const MobxStoreInit = () => { else localStorage.setItem("app_theme", _theme && _theme != "light" ? "dark" : "light"); }, [store?.theme]); - // updating default board view when we are in the issues page - useEffect(() => { - if (board && board != store?.issue?.currentIssueBoardView) store.issue.setCurrentIssueBoardView(board); - }, [board, store?.issue]); - return <>; }; From e8774e35ec443663af8830339d8567734bb302ba Mon Sep 17 00:00:00 2001 From: guru_sainath Date: Thu, 17 Aug 2023 13:41:47 +0530 Subject: [PATCH 2/2] fix: handled default view on refresh --- .../[workspace_slug]/[project_slug]/page.tsx | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/apps/space/app/[workspace_slug]/[project_slug]/page.tsx b/apps/space/app/[workspace_slug]/[project_slug]/page.tsx index 3e5c5849741..f6ccf50814c 100644 --- a/apps/space/app/[workspace_slug]/[project_slug]/page.tsx +++ b/apps/space/app/[workspace_slug]/[project_slug]/page.tsx @@ -31,22 +31,34 @@ const WorkspaceProjectPage = observer(() => { useEffect(() => { if (workspace_slug && project_slug && store?.project?.workspaceProjectSettings) { const workspacePRojectSettingViews = store?.project?.workspaceProjectSettings?.views; - let initView: null | TIssueBoardKeys = null; + const userAccessViews: TIssueBoardKeys[] = []; - if (initView === null && workspacePRojectSettingViews.list === true) initView = "list"; - else if (initView === null && workspacePRojectSettingViews.kanban === true) initView = "kanban"; - else if (initView === null && workspacePRojectSettingViews.calendar === true) initView = "calendar"; - else if (initView === null && workspacePRojectSettingViews.gantt === true) initView = "gantt"; - else if (initView === null && workspacePRojectSettingViews.spreadsheet === true) initView = "spreadsheet"; + Object.keys(workspacePRojectSettingViews).filter((_key) => { + if (_key === "list" && workspacePRojectSettingViews.list === true) userAccessViews.push(_key); + if (_key === "kanban" && workspacePRojectSettingViews.kanban === true) userAccessViews.push(_key); + if (_key === "calendar" && workspacePRojectSettingViews.calendar === true) userAccessViews.push(_key); + if (_key === "spreadsheet" && workspacePRojectSettingViews.spreadsheet === true) userAccessViews.push(_key); + if (_key === "gantt" && workspacePRojectSettingViews.gantt === true) userAccessViews.push(_key); + }); - if (initView != null) { + if (userAccessViews && userAccessViews.length > 0) { if (!board) { - store.issue.setCurrentIssueBoardView(initView); - router.replace(`/${workspace_slug}/${project_slug}?board=${initView}`); + store.issue.setCurrentIssueBoardView(userAccessViews[0]); + router.replace(`/${workspace_slug}/${project_slug}?board=${userAccessViews[0]}`); } else { - if (board != store?.issue?.currentIssueBoardView) { - store.issue.setCurrentIssueBoardView(initView); - router.replace(`/${workspace_slug}/${project_slug}?board=${initView}`); + if (userAccessViews.includes(board)) { + if (store.issue.currentIssueBoardView === null) store.issue.setCurrentIssueBoardView(board); + else { + if (board === store.issue.currentIssueBoardView) + router.replace(`/${workspace_slug}/${project_slug}?board=${board}`); + else { + store.issue.setCurrentIssueBoardView(board); + router.replace(`/${workspace_slug}/${project_slug}?board=${board}`); + } + } + } else { + store.issue.setCurrentIssueBoardView(userAccessViews[0]); + router.replace(`/${workspace_slug}/${project_slug}?board=${userAccessViews[0]}`); } } }