From a2d691a4463bf27b88d60c6a97a4dd70b8c32068 Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Wed, 19 Jun 2024 16:54:50 +0530 Subject: [PATCH] [WEB-1652] fix: add optional channing to fix app crash if router params are not available. (#4871) --- web/core/components/cycles/gantt-chart/blocks.tsx | 4 ++-- .../components/issues/issue-layouts/calendar/issue-block.tsx | 2 +- .../issues/issue-layouts/kanban/roots/profile-issues-root.tsx | 2 +- .../issues/issue-layouts/list/roots/profile-issues-root.tsx | 2 +- .../issue-layouts/spreadsheet/columns/sub-issue-column.tsx | 2 +- web/core/components/issues/issue-modal/form.tsx | 4 ++-- web/core/components/issues/issue-modal/modal.tsx | 2 +- web/core/components/modules/module-list-item.tsx | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/web/core/components/cycles/gantt-chart/blocks.tsx b/web/core/components/cycles/gantt-chart/blocks.tsx index 4eb57fb68..5c2ac815a 100644 --- a/web/core/components/cycles/gantt-chart/blocks.tsx +++ b/web/core/components/cycles/gantt-chart/blocks.tsx @@ -44,7 +44,7 @@ export const CycleGanttBlock: React.FC = observer((props) => { : "", }} onClick={() => - router.push(`/${workspaceSlug.toString()}/projects/${cycleDetails?.project_id}/cycles/${cycleDetails?.id}`) + router.push(`/${workspaceSlug?.toString()}/projects/${cycleDetails?.project_id}/cycles/${cycleDetails?.id}`) } >
@@ -80,7 +80,7 @@ export const CycleGanttSidebarBlock: React.FC = observer((props) => { return ( handleIssuePeekOverview(issue)} className="block w-full text-sm text-custom-text-100 rounded border-b md:border-[1px] border-custom-border-200 hover:border-custom-border-400" diff --git a/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx b/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx index 98a5a4525..6fb9b78d9 100644 --- a/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx +++ b/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx @@ -26,7 +26,7 @@ export const ProfileIssuesKanBanLayout: React.FC = observer(() => { ); }); diff --git a/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx b/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx index adc4dd309..f2134957a 100644 --- a/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx +++ b/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx @@ -28,7 +28,7 @@ export const ProfileIssuesListLayout: FC = observer(() => { ); }); diff --git a/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx b/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx index 87bd1f84d..2ca1f3dda 100644 --- a/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx +++ b/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx @@ -22,7 +22,7 @@ export const SpreadsheetSubIssueColumn: React.FC = observer((props: Props const subIssueCount = issue?.sub_issues_count ?? 0; const redirectToIssueDetail = () => { - router.push(`/${workspaceSlug.toString()}/projects/${issue.project_id}/${issue.archived_at ? "archives/" : ""}issues/${issue.id}#sub-issues`); + router.push(`/${workspaceSlug?.toString()}/projects/${issue.project_id}/${issue.archived_at ? "archives/" : ""}issues/${issue.id}#sub-issues`); }; return ( diff --git a/web/core/components/issues/issue-modal/form.tsx b/web/core/components/issues/issue-modal/form.tsx index a90616357..caa543c90 100644 --- a/web/core/components/issues/issue-modal/form.tsx +++ b/web/core/components/issues/issue-modal/form.tsx @@ -117,7 +117,7 @@ export const IssueFormRoot: FC = observer((props) => { const { workspaceSlug, projectId: routeProjectId } = useParams(); // store hooks const workspaceStore = useWorkspace(); - const workspaceId = workspaceStore.getWorkspaceBySlug(workspaceSlug as string)?.id as string; + const workspaceId = workspaceStore.getWorkspaceBySlug(workspaceSlug?.toString())?.id as string; const { config } = useInstance(); const { getProjectById } = useProject(); const { areEstimateEnabledByProjectId } = useProjectEstimates(); @@ -173,7 +173,7 @@ export const IssueFormRoot: FC = observer((props) => { parent_id: formData.parent_id, }); } - if (projectId && routeProjectId !== projectId) fetchCycles(workspaceSlug, projectId); + if (projectId && routeProjectId !== projectId) fetchCycles(workspaceSlug?.toString(), projectId); // eslint-disable-next-line react-hooks/exhaustive-deps }, [projectId]); diff --git a/web/core/components/issues/issue-modal/modal.tsx b/web/core/components/issues/issue-modal/modal.tsx index c3d4af278..4fa0af171 100644 --- a/web/core/components/issues/issue-modal/modal.tsx +++ b/web/core/components/issues/issue-modal/modal.tsx @@ -96,7 +96,7 @@ export const CreateUpdateIssueModal: React.FC = observer((prop // if data is not present, set active project to the project // in the url. This has the least priority. if (workspaceProjectIds && workspaceProjectIds.length > 0 && !activeProjectId) - setActiveProjectId(projectId.toString() ?? workspaceProjectIds?.[0]); + setActiveProjectId(projectId?.toString() ?? workspaceProjectIds?.[0]); // clearing up the description state when we leave the component return () => setDescription(undefined); diff --git a/web/core/components/modules/module-list-item.tsx b/web/core/components/modules/module-list-item.tsx index 73b443ecb..3dbe64d52 100644 --- a/web/core/components/modules/module-list-item.tsx +++ b/web/core/components/modules/module-list-item.tsx @@ -83,7 +83,7 @@ export const ModuleListItem: React.FC = observer((props) => { return (