From 1700c16ba523838244b826255b06b83038a21944 Mon Sep 17 00:00:00 2001 From: Rohit Dash Date: Thu, 1 May 2025 14:06:12 +0530 Subject: [PATCH 1/5] allow tagging in incident comments --- .../activity/ui/IncidentActivityComment.tsx | 12 +- .../[id]/activity/ui/MentionsInput.tsx | 153 ++++++++++++++++ keep/api/models/comment.py | 8 + keep/api/routes/incidents.py | 19 +- tests/test_incident_enrichments.py | 173 ++++++++++++++++++ tests/test_incident_routes.py | 170 +++++++++++++++++ 6 files changed, 531 insertions(+), 4 deletions(-) create mode 100644 keep-ui/app/(keep)/incidents/[id]/activity/ui/MentionsInput.tsx create mode 100644 keep/api/models/comment.py create mode 100644 tests/test_incident_enrichments.py create mode 100644 tests/test_incident_routes.py diff --git a/keep-ui/app/(keep)/incidents/[id]/activity/ui/IncidentActivityComment.tsx b/keep-ui/app/(keep)/incidents/[id]/activity/ui/IncidentActivityComment.tsx index 518ad919f3..e62559e87a 100644 --- a/keep-ui/app/(keep)/incidents/[id]/activity/ui/IncidentActivityComment.tsx +++ b/keep-ui/app/(keep)/incidents/[id]/activity/ui/IncidentActivityComment.tsx @@ -6,6 +6,8 @@ import { KeyedMutator } from "swr"; import { useApi } from "@/shared/lib/hooks/useApi"; import { showErrorToast } from "@/shared/ui"; import { AuditEvent } from "@/entities/alerts/model"; +import { useUsers } from "@/entities/users/model/useUsers"; +import { MentionsInput } from "./MentionsInput"; export function IncidentActivityComment({ incident, @@ -16,12 +18,17 @@ export function IncidentActivityComment({ }) { const [comment, setComment] = useState(""); const api = useApi(); + const { data: users = [] } = useUsers(); const onSubmit = useCallback(async () => { try { + // Extract mentioned users from comment + const mentionedUsers = comment.match(/@([\w.-]+@[\w.-]+)/g)?.map(mention => mention.slice(1)) || []; + await api.post(`/incidents/${incident.id}/comment`, { status: incident.status, comment, + mentioned_users: mentionedUsers, }); toast.success("Comment added!", { position: "top-right" }); setComment(""); @@ -53,10 +60,11 @@ export function IncidentActivityComment({ return (
-