diff --git a/services/frontend/src/App.tsx b/services/frontend/src/App.tsx
index df31cf4..e5ed658 100644
--- a/services/frontend/src/App.tsx
+++ b/services/frontend/src/App.tsx
@@ -97,15 +97,15 @@ export default function App() {
onMessageAnalyzed: (m) => {
const msg = m as MessageRecord;
messages.setMessages((prev) => mergeMessages(prev, [msg]));
- // Show toast for moderation alerts (warn/flagged)
+ // Show toast for moderation alerts (flagged)
const status = msg.ai_status;
- if (status === "flagged" || status === "warn") {
+ if (status === "flagged") {
const username = msg.username || msg.user_id || "unknown";
const severity = msg.ai_severity || "";
const categories = msg.ai_categories || "";
const brief =
msg.ai_analysis?.slice(0, 80) ??
- `Message ${status === "flagged" ? "flagged" : "warned"} by AI`;
+ "Message flagged by AI";
window.dispatchEvent(
new CustomEvent("moderation_alert", {
detail: { type: status, username, severity, categories, brief },
diff --git a/services/frontend/src/features/analytics/components/ActivityChart.tsx b/services/frontend/src/features/analytics/components/ActivityChart.tsx
index 579b083..9179a00 100644
--- a/services/frontend/src/features/analytics/components/ActivityChart.tsx
+++ b/services/frontend/src/features/analytics/components/ActivityChart.tsx
@@ -27,7 +27,7 @@ export function ActivityChart({ hourly, loading }: ActivityChartProps) {
return {
hour: `${String(jakartaHour).padStart(2, "0")}:00`,
clean: b.clean,
- warned: b.warned,
+ warned: 0,
flagged: b.flagged,
error: b.error,
total: b.count,
diff --git a/services/frontend/src/features/analytics/components/SummaryCards.tsx b/services/frontend/src/features/analytics/components/SummaryCards.tsx
index 33ab46f..df78e10 100644
--- a/services/frontend/src/features/analytics/components/SummaryCards.tsx
+++ b/services/frontend/src/features/analytics/components/SummaryCards.tsx
@@ -22,10 +22,6 @@ export function SummaryCards({
messages && messages.total > 0
? Math.round((messages.clean / messages.total) * 100)
: 0;
- const warnedPct =
- messages && messages.total > 0
- ? Math.round((messages.warned / messages.total) * 100)
- : 0;
const flaggedPct =
messages && messages.total > 0
? Math.round((messages.flagged / messages.total) * 100)
@@ -47,11 +43,6 @@ export function SummaryCards({
value: cleanPct > 0 ? `${cleanPct}%` : "—",
accent: "text-emerald-400",
},
- {
- label: "Warned",
- value: warnedPct > 0 ? `${warnedPct}%` : "—",
- accent: "text-amber-400",
- },
{
label: "Flagged",
value: flaggedPct > 0 ? `${flaggedPct}%` : "—",
diff --git a/services/frontend/src/features/analytics/components/TrendChart.tsx b/services/frontend/src/features/analytics/components/TrendChart.tsx
index 05f0333..448a992 100644
--- a/services/frontend/src/features/analytics/components/TrendChart.tsx
+++ b/services/frontend/src/features/analytics/components/TrendChart.tsx
@@ -24,7 +24,7 @@ export function TrendChart({ trend, loading }: TrendChartProps) {
const data = trend.map((bucket) => ({
date: bucket.date,
clean: bucket.clean,
- warned: bucket.warned,
+ warned: 0,
flagged: bucket.flagged,
error: bucket.error,
total: bucket.count,
diff --git a/services/frontend/src/features/analytics/components/UserTable.tsx b/services/frontend/src/features/analytics/components/UserTable.tsx
index 1ebb034..1e53c22 100644
--- a/services/frontend/src/features/analytics/components/UserTable.tsx
+++ b/services/frontend/src/features/analytics/components/UserTable.tsx
@@ -53,7 +53,6 @@ export function UserTable({ users, loading }: UserTableProps) {
User |
Pesan |
Edit |
- Hapus |
Flag |
@@ -103,9 +102,6 @@ export function UserTable({ users, loading }: UserTableProps) {
{user.edited_count > 0 ? user.edited_count : "—"}
|
-
- {user.deleted_count > 0 ? user.deleted_count : "—"}
- |
{user.flagged_count > 0 ? (
- Skor: flagged × 3 + warned × 1.
+ Skor: flagged × 3.
{users.length} pelanggar
@@ -61,7 +61,6 @@ export function ViolatorTable({ users, loading }: ViolatorTableProps) {
| # |
User |
- Warned |
Flagged |
Skor |
@@ -102,9 +101,6 @@ export function ViolatorTable({ users, loading }: ViolatorTableProps) {
|
-
- {user.warned_count}
- |
{user.flagged_count}
|
diff --git a/services/frontend/src/features/messages/components/MessageCard.tsx b/services/frontend/src/features/messages/components/MessageCard.tsx
index 9019a0b..21403fa 100644
--- a/services/frontend/src/features/messages/components/MessageCard.tsx
+++ b/services/frontend/src/features/messages/components/MessageCard.tsx
@@ -1,6 +1,5 @@
import {
AlertCircle,
- AlertTriangle,
CheckCircle2,
ChevronDown,
ChevronUp,
@@ -12,7 +11,6 @@ import {
} from "lucide-react";
import { Fragment, useMemo, useState } from "react";
import type { MessageRecord } from "../../../shared/api/client";
-import { moderateMessage } from "../../../shared/api/client";
import { Badge, Button, Skeleton } from "../../../shared/ui";
import { parseMetadata } from "../../../entities/message/types";
@@ -89,7 +87,6 @@ function parseStringList(value?: string | null): string[] {
function aiVariant(status: string) {
if (status === "clean") return "success";
- if (status === "warn") return "warning";
if (status === "flagged" || status === "error") return "destructive";
return "secondary";
}
@@ -138,7 +135,7 @@ export function MessageCard({
message.ai_confidence ?? message.ai_moderation_score ?? null;
const [isReanalyzing, setIsReanalyzing] = useState(false);
const [showAnalysis, setShowAnalysis] = useState(
- aiStatus === "warn" || aiStatus === "flagged",
+ aiStatus === "flagged",
);
// Build a human-readable analysis summary from categories + confidence + severity
@@ -223,9 +220,6 @@ export function MessageCard({
{aiStatus === "clean" && (
)}
- {aiStatus === "warn" && (
-
- )}
{aiStatus === "flagged" && (
)}
@@ -328,9 +322,7 @@ export function MessageCard({
className={`rounded-xl border-l-2 p-3 ${
aiStatus === "flagged"
? "border-l-red-500 bg-red-500/5"
- : aiStatus === "warn"
- ? "border-l-yellow-500 bg-yellow-500/5"
- : "border-l-blue-500 bg-blue-500/5"
+ : "border-l-blue-500 bg-blue-500/5"
}`}
>