From 75c2dee6557cde055a3e6d85834a5224b7369443 Mon Sep 17 00:00:00 2001 From: LAKHAN BAHETI Date: Wed, 8 Nov 2023 17:06:12 +0530 Subject: [PATCH 1/2] fix: added empty project state when no project exists --- .../empty-states/global-view.tsx | 45 ++++++++++++++----- .../roots/global-view-layout-root.tsx | 5 ++- 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/web/components/issues/issue-layouts/empty-states/global-view.tsx b/web/components/issues/issue-layouts/empty-states/global-view.tsx index 7151b5ddc86..67bb29cbf7a 100644 --- a/web/components/issues/issue-layouts/empty-states/global-view.tsx +++ b/web/components/issues/issue-layouts/empty-states/global-view.tsx @@ -1,3 +1,5 @@ +// next +import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; import { PlusIcon } from "lucide-react"; // mobx store @@ -6,22 +8,43 @@ import { useMobxStore } from "lib/mobx/store-provider"; import { EmptyState } from "components/common"; // assets import emptyIssue from "public/empty-state/issue.svg"; +import emptyProject from "public/empty-state/project.svg"; +// icons +import { Plus } from "lucide-react"; export const GlobalViewEmptyState: React.FC = observer(() => { - const { commandPalette: commandPaletteStore } = useMobxStore(); + const router = useRouter(); + const { workspaceSlug } = router.query; + + const { commandPalette: commandPaletteStore, project: projectStore } = useMobxStore(); + + const projects = workspaceSlug ? projectStore.projects[workspaceSlug.toString()] : null; return (
- , - onClick: () => commandPaletteStore.toggleCreateIssueModal(true), - }} - /> + {!projects || projects?.length === 0 ? ( + , + text: "New Project", + onClick: () => commandPaletteStore.toggleCreateProjectModal(true), + }} + /> + ) : ( + , + onClick: () => commandPaletteStore.toggleCreateIssueModal(true), + }} + /> + )}
); }); diff --git a/web/components/issues/issue-layouts/roots/global-view-layout-root.tsx b/web/components/issues/issue-layouts/roots/global-view-layout-root.tsx index 018a63d2aa6..345a33db37d 100644 --- a/web/components/issues/issue-layouts/roots/global-view-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/global-view-layout-root.tsx @@ -28,12 +28,15 @@ export const GlobalViewLayoutRoot: React.FC = observer((props) => { workspaceFilter: workspaceFilterStore, workspace: workspaceStore, issueDetail: issueDetailStore, + project: projectStore, } = useMobxStore(); const viewDetails = globalViewId ? globalViewsStore.globalViewDetails[globalViewId.toString()] : undefined; const storedFilters = globalViewId ? globalViewFiltersStore.storedFilters[globalViewId.toString()] : undefined; + const projects = workspaceSlug ? projectStore.projects[workspaceSlug.toString()] : null; + useSWR( workspaceSlug && globalViewId && viewDetails ? `GLOBAL_VIEW_ISSUES_${globalViewId.toString()}` : null, workspaceSlug && globalViewId && viewDetails @@ -94,7 +97,7 @@ export const GlobalViewLayoutRoot: React.FC = observer((props) => { return (
- {issues?.length === 0 ? ( + {issues?.length === 0 || !projects || projects?.length === 0 ? ( ) : (
From 3ba97f3750049200f39e0c11c85633c301a8192b Mon Sep 17 00:00:00 2001 From: LAKHAN BAHETI Date: Wed, 8 Nov 2023 17:15:07 +0530 Subject: [PATCH 2/2] fix: duplicate import --- .../issues/issue-layouts/empty-states/global-view.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/components/issues/issue-layouts/empty-states/global-view.tsx b/web/components/issues/issue-layouts/empty-states/global-view.tsx index 67bb29cbf7a..bbe5f16a527 100644 --- a/web/components/issues/issue-layouts/empty-states/global-view.tsx +++ b/web/components/issues/issue-layouts/empty-states/global-view.tsx @@ -1,7 +1,6 @@ // next import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; -import { PlusIcon } from "lucide-react"; // mobx store import { useMobxStore } from "lib/mobx/store-provider"; // components @@ -10,7 +9,7 @@ import { EmptyState } from "components/common"; import emptyIssue from "public/empty-state/issue.svg"; import emptyProject from "public/empty-state/project.svg"; // icons -import { Plus } from "lucide-react"; +import { Plus, PlusIcon } from "lucide-react"; export const GlobalViewEmptyState: React.FC = observer(() => { const router = useRouter();