import type { LocalizedText } from "./i18n"; import type { FileOrigin, MimeClass, RetentionMode } from "./types"; /** Bilingual display labels for the group-files enums (values are fixed by the API). */ export const ORIGIN_LABEL: Record = { matrix: { en: "Matrix", es: "Matrix" }, bridge: { en: "Bridge", es: "Puente" }, upload: { en: "Upload", es: "Subido" }, "pad-export": { en: "Pad export", es: "Export. de pad" }, }; export const ORIGIN_TONE: Record = { matrix: "accent", bridge: "live", upload: "neutral", "pad-export": "warn", }; export const MIME_CLASS_LABEL: Record = { image: { en: "Image", es: "Imagen" }, video: { en: "Video", es: "Vídeo" }, audio: { en: "Audio", es: "Audio" }, document: { en: "Document", es: "Documento" }, other: { en: "File", es: "Archivo" }, }; export const RETENTION_LABEL: Record = { keep: { en: "Keep", es: "Conservar" }, until: { en: "Until", es: "Hasta" }, legalHold: { en: "Legal hold", es: "Retención legal" }, }; export const RETENTION_TONE: Record = { keep: "neutral", until: "accent", legalHold: "danger", }; /** Human label for a MIME class, tolerating an unknown value from the server. */ export function mimeClassLabel(mimeClass: MimeClass): LocalizedText { return MIME_CLASS_LABEL[mimeClass] ?? MIME_CLASS_LABEL.other; }