"use client"; import { CheckCircle2, XCircle } from "lucide-react"; import { useTranslations } from "next-intl"; import type { ReportActionState } from "@/lib/reports/action-state"; import { BlockerList } from "./blocker-list"; const FIELD_MESSAGES: Record = { reason: "errors.reasonRequired", signerName: "errors.signerRequired", image: "errors.imageRequired", aiReviewed: "errors.aiReviewRequired", }; /** Inline feedback for report actions (errors directly at the form, Brandbook ยง12.5). */ export function ActionMessage({ state, okText }: { state: ReportActionState; okText?: string }) { const t = useTranslations("reports"); if (state.status === "ok") { if (!okText) return null; return (

{okText}

); } if (state.status !== "error") return null; if (state.blockers?.length) return ; const key = state.field && FIELD_MESSAGES[state.field] ? FIELD_MESSAGES[state.field] : state.code === "forbidden" && state.field === undefined ? "errors.forbidden" : `errors.${state.code}`; return (

{t(key)}

); }