diff --git a/web/src/components/overlay/detail/ReviewDetailDialog.tsx b/web/src/components/overlay/detail/ReviewDetailDialog.tsx index 2a5345ea2..688f2b9dc 100644 --- a/web/src/components/overlay/detail/ReviewDetailDialog.tsx +++ b/web/src/components/overlay/detail/ReviewDetailDialog.tsx @@ -11,7 +11,11 @@ import { FrigateConfig } from "@/types/frigateConfig"; import { useFormattedTimestamp } from "@/hooks/use-date-utils"; import { getIconForLabel } from "@/utils/iconUtil"; import { useApiHost } from "@/api"; -import { ReviewDetailPaneType, ReviewSegment } from "@/types/review"; +import { + ReviewDetailPaneType, + ReviewSegment, + ThreatLevel, +} from "@/types/review"; import { Event } from "@/types/event"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { cn } from "@/lib/utils"; @@ -71,6 +75,23 @@ export default function ReviewDetailDialog({ const aiAnalysis = useMemo(() => review?.data?.metadata, [review]); + const aiThreatLevel = useMemo(() => { + if (!aiAnalysis?.potential_threat_level) { + return "None"; + } + + switch (aiAnalysis.potential_threat_level) { + case ThreatLevel.UNUSUAL: + return "Unusual Activity"; + case ThreatLevel.SUSPICIOUS: + return "Suspicious Activity"; + case ThreatLevel.DANGER: + return "Danger"; + } + + return "Unknown"; + }, [aiAnalysis]); + const hasMismatch = useMemo(() => { if (!review || !events) { return false; @@ -235,12 +256,19 @@ export default function ReviewDetailDialog({ {pane == "overview" && (