From 89482dbdd7e9fc9bae6fa163ba89651949520f40 Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Tue, 21 Jan 2025 22:11:30 +0530 Subject: [PATCH] [WEB-3192] fix: issue relation redirection --- .../issues/relations/issue-list-item.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/web/core/components/issues/relations/issue-list-item.tsx b/web/core/components/issues/relations/issue-list-item.tsx index fa5cb886a36..2a8ed6aa824 100644 --- a/web/core/components/issues/relations/issue-list-item.tsx +++ b/web/core/components/issues/relations/issue-list-item.tsx @@ -53,20 +53,26 @@ export const RelationIssueListItem: FC = observer((props) => { } = useIssueDetail(issueServiceType); const project = useProject(); const { getProjectStates } = useProjectState(); - const { handleRedirection } = useIssuePeekOverviewRedirection(); const { isMobile } = usePlatformOS(); - // derived values const issue = getIssueById(relationIssueId); + const { handleRedirection } = useIssuePeekOverviewRedirection(!!issue?.is_epic); const projectDetail = (issue && issue.project_id && project.getProjectById(issue.project_id)) || undefined; const currentIssueStateDetail = (issue?.project_id && getProjectStates(issue?.project_id)?.find((state) => issue?.state_id == state.id)) || undefined; - if (!issue) return <>; + const issueLink = `/${workspaceSlug}/projects/${projectId}/${issue.is_epic ? "epics" : "issues"}/${issue.id}`; // handlers - const handleIssuePeekOverview = (issue: TIssue) => handleRedirection(workspaceSlug, issue, isMobile); + const handleIssuePeekOverview = (issue: TIssue) => { + if (issueServiceType === EIssueServiceType.ISSUES && issue.is_epic) { + // open epics in new tab + window.open(issueLink, "_blank"); + return; + } + handleRedirection(workspaceSlug, issue, isMobile); + }; const handleEditIssue = (e: React.MouseEvent) => { e.stopPropagation(); @@ -85,7 +91,7 @@ export const RelationIssueListItem: FC = observer((props) => { const handleCopyIssueLink = (e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); - issueOperations.copyText(`${workspaceSlug}/projects/${issue.project_id}/issues/${issue.id}`); + issueOperations.copyText(issueLink); }; const handleRemoveRelation = (e: React.MouseEvent) => { @@ -98,7 +104,7 @@ export const RelationIssueListItem: FC = observer((props) => {
handleIssuePeekOverview(issue)} className="w-full cursor-pointer" >