[WEB-3192] fix: issue relation redirection (#6441)

This commit is contained in:
Prateek Shourya 2025-01-22 14:01:21 +05:30 committed by GitHub
parent b611f5110f
commit 0679e140a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -53,20 +53,26 @@ export const RelationIssueListItem: FC<Props> = observer((props) => {
} = useIssueDetail(issueServiceType); } = useIssueDetail(issueServiceType);
const project = useProject(); const project = useProject();
const { getProjectStates } = useProjectState(); const { getProjectStates } = useProjectState();
const { handleRedirection } = useIssuePeekOverviewRedirection();
const { isMobile } = usePlatformOS(); const { isMobile } = usePlatformOS();
// derived values // derived values
const issue = getIssueById(relationIssueId); const issue = getIssueById(relationIssueId);
const { handleRedirection } = useIssuePeekOverviewRedirection(!!issue?.is_epic);
const projectDetail = (issue && issue.project_id && project.getProjectById(issue.project_id)) || undefined; const projectDetail = (issue && issue.project_id && project.getProjectById(issue.project_id)) || undefined;
const currentIssueStateDetail = const currentIssueStateDetail =
(issue?.project_id && getProjectStates(issue?.project_id)?.find((state) => issue?.state_id == state.id)) || (issue?.project_id && getProjectStates(issue?.project_id)?.find((state) => issue?.state_id == state.id)) ||
undefined; undefined;
if (!issue) return <></>; if (!issue) return <></>;
const issueLink = `/${workspaceSlug}/projects/${projectId}/${issue.is_epic ? "epics" : "issues"}/${issue.id}`;
// handlers // 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<HTMLButtonElement, MouseEvent>) => { const handleEditIssue = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
e.stopPropagation(); e.stopPropagation();
@ -85,7 +91,7 @@ export const RelationIssueListItem: FC<Props> = observer((props) => {
const handleCopyIssueLink = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { const handleCopyIssueLink = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
issueOperations.copyText(`${workspaceSlug}/projects/${issue.project_id}/issues/${issue.id}`); issueOperations.copyText(issueLink);
}; };
const handleRemoveRelation = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { const handleRemoveRelation = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
@ -98,7 +104,7 @@ export const RelationIssueListItem: FC<Props> = observer((props) => {
<div key={relationIssueId}> <div key={relationIssueId}>
<ControlLink <ControlLink
id={`issue-${issue.id}`} id={`issue-${issue.id}`}
href={`/${workspaceSlug}/projects/${issue.project_id}/issues/${issue.id}`} href={issueLink}
onClick={() => handleIssuePeekOverview(issue)} onClick={() => handleIssuePeekOverview(issue)}
className="w-full cursor-pointer" className="w-full cursor-pointer"
> >