ui: suppress self-authored issue toasts
This commit is contained in:
@@ -168,6 +168,10 @@ function buildActivityToast(
|
|||||||
|
|
||||||
const issue = resolveIssueToastContext(queryClient, companyId, entityId, details);
|
const issue = resolveIssueToastContext(queryClient, companyId, entityId, details);
|
||||||
const actor = resolveActorLabel(queryClient, companyId, actorType, actorId);
|
const actor = resolveActorLabel(queryClient, companyId, actorType, actorId);
|
||||||
|
const isSelfActivity =
|
||||||
|
(actorType === "user" && !!currentActor.userId && actorId === currentActor.userId) ||
|
||||||
|
(actorType === "agent" && !!currentActor.agentId && actorId === currentActor.agentId);
|
||||||
|
if (isSelfActivity) return null;
|
||||||
|
|
||||||
if (action === "issue.created") {
|
if (action === "issue.created") {
|
||||||
return {
|
return {
|
||||||
@@ -202,11 +206,6 @@ function buildActivityToast(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const commentId = readString(details?.commentId);
|
const commentId = readString(details?.commentId);
|
||||||
const isSelfComment =
|
|
||||||
action === "issue.comment_added" &&
|
|
||||||
((actorType === "user" && !!currentActor.userId && actorId === currentActor.userId) ||
|
|
||||||
(actorType === "agent" && !!currentActor.agentId && actorId === currentActor.agentId));
|
|
||||||
if (isSelfComment) return null;
|
|
||||||
const bodySnippet = readString(details?.bodySnippet);
|
const bodySnippet = readString(details?.bodySnippet);
|
||||||
const reopened = details?.reopened === true;
|
const reopened = details?.reopened === true;
|
||||||
const reopenedFrom = readString(details?.reopenedFrom);
|
const reopenedFrom = readString(details?.reopenedFrom);
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import { agentsApi } from "../api/agents";
|
|||||||
import { authApi } from "../api/auth";
|
import { authApi } from "../api/auth";
|
||||||
import { projectsApi } from "../api/projects";
|
import { projectsApi } from "../api/projects";
|
||||||
import { useCompany } from "../context/CompanyContext";
|
import { useCompany } from "../context/CompanyContext";
|
||||||
import { useToast } from "../context/ToastContext";
|
|
||||||
import { usePanel } from "../context/PanelContext";
|
import { usePanel } from "../context/PanelContext";
|
||||||
import { useBreadcrumbs } from "../context/BreadcrumbContext";
|
import { useBreadcrumbs } from "../context/BreadcrumbContext";
|
||||||
import { queryKeys } from "../lib/queryKeys";
|
import { queryKeys } from "../lib/queryKeys";
|
||||||
@@ -146,7 +145,6 @@ function ActorIdentity({ evt, agentMap }: { evt: ActivityEvent; agentMap: Map<st
|
|||||||
export function IssueDetail() {
|
export function IssueDetail() {
|
||||||
const { issueId } = useParams<{ issueId: string }>();
|
const { issueId } = useParams<{ issueId: string }>();
|
||||||
const { selectedCompanyId } = useCompany();
|
const { selectedCompanyId } = useCompany();
|
||||||
const { pushToast } = useToast();
|
|
||||||
const { openPanel, closePanel, panelVisible, setPanelVisible } = usePanel();
|
const { openPanel, closePanel, panelVisible, setPanelVisible } = usePanel();
|
||||||
const { setBreadcrumbs } = useBreadcrumbs();
|
const { setBreadcrumbs } = useBreadcrumbs();
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
@@ -403,16 +401,8 @@ export function IssueDetail() {
|
|||||||
|
|
||||||
const updateIssue = useMutation({
|
const updateIssue = useMutation({
|
||||||
mutationFn: (data: Record<string, unknown>) => issuesApi.update(issueId!, data),
|
mutationFn: (data: Record<string, unknown>) => issuesApi.update(issueId!, data),
|
||||||
onSuccess: (updated) => {
|
onSuccess: () => {
|
||||||
invalidateIssue();
|
invalidateIssue();
|
||||||
const issueRef = updated.identifier ?? `Issue ${updated.id.slice(0, 8)}`;
|
|
||||||
pushToast({
|
|
||||||
dedupeKey: `activity:issue.updated:${updated.id}`,
|
|
||||||
title: `${issueRef} updated`,
|
|
||||||
body: truncate(updated.title, 96),
|
|
||||||
tone: "success",
|
|
||||||
action: { label: `View ${issueRef}`, href: `/issues/${updated.identifier ?? updated.id}` },
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -441,17 +431,9 @@ export function IssueDetail() {
|
|||||||
assigneeUserId: reassignment.assigneeUserId,
|
assigneeUserId: reassignment.assigneeUserId,
|
||||||
...(reopen ? { status: "todo" } : {}),
|
...(reopen ? { status: "todo" } : {}),
|
||||||
}),
|
}),
|
||||||
onSuccess: (updated) => {
|
onSuccess: () => {
|
||||||
invalidateIssue();
|
invalidateIssue();
|
||||||
queryClient.invalidateQueries({ queryKey: queryKeys.issues.comments(issueId!) });
|
queryClient.invalidateQueries({ queryKey: queryKeys.issues.comments(issueId!) });
|
||||||
const issueRef = updated.identifier ?? (issueId ? `Issue ${issueId.slice(0, 8)}` : "Issue");
|
|
||||||
pushToast({
|
|
||||||
dedupeKey: `activity:issue.reassigned:${updated.id}`,
|
|
||||||
title: `${issueRef} reassigned`,
|
|
||||||
body: issue?.title ? truncate(issue.title, 96) : undefined,
|
|
||||||
tone: "success",
|
|
||||||
action: issueId ? { label: `View ${issueRef}`, href: `/issues/${issue?.identifier ?? issueId}` } : undefined,
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user