import type { ComponentPropsWithoutRef } from "react"; import { ATTACHMENT_TYPE_LABEL, GOVERNANCE_STATUS_LABEL, SENSITIVITY_LEVEL_LABEL, attachmentRequiresDownloadReason, type AttachmentGovernanceFields, } from "../../lib/attachmentGovernance"; import { cn } from "../../lib/utils"; function governanceStatusClass(value: string) { if (value === "approved" || value === "archived") return "badge-success"; if (value === "pending_review" || value === "under_approval" || value === "returned") return "badge-warning"; if (value === "rejected" || value === "quarantined") return "badge-error"; return "badge-neutral"; } function sensitivityClass(value: string) { if (value === "restricted") return "badge-error"; if (value === "confidential") return "badge-warning"; if (value === "index_only") return "badge-neutral"; return "badge-neutral"; } export function AttachmentGovernanceBadges({ attachment, className, ...props }: ComponentPropsWithoutRef<"div"> & { attachment: Pick; }) { return (
{GOVERNANCE_STATUS_LABEL[attachment.governanceStatus] ?? attachment.governanceStatus} {ATTACHMENT_TYPE_LABEL[attachment.attachmentType] ?? attachment.attachmentType} {SENSITIVITY_LEVEL_LABEL[attachment.sensitivityLevel] ?? attachment.sensitivityLevel} {attachmentRequiresDownloadReason(attachment) ? 下载需说明用途 : null}
); }