[WEB-3192] fix: issue relation redirection (#6441)
This commit is contained in:
parent
b611f5110f
commit
0679e140a2
1 changed files with 12 additions and 6 deletions
|
|
@ -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"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue