import { IconArrowsCross, IconBolt, IconBoltOff, IconDisc, IconLock, IconUser } from "@tabler/icons-react"; import type { AuditLog } from "src/api/backend"; import { DateTimeFormat, T } from "src/locale"; const getEventValue = (event: AuditLog) => { switch (event.objectType) { case "access-list": case "user": return event.meta?.name; case "proxy-host": case "redirection-host": case "dead-host": return event.meta?.domainNames?.join(", ") || "N/A"; case "stream": return event.meta?.incomingPort || "N/A"; default: return `UNKNOWN EVENT TYPE: ${event.objectType}`; } }; const getColorForAction = (action: string) => { switch (action) { case "created": return "text-lime"; case "deleted": return "text-red"; default: return "text-blue"; } }; const getIcon = (row: AuditLog) => { const c = getColorForAction(row.action); let ico = null; switch (row.objectType) { case "user": ico = ; break; case "proxy-host": ico = ; break; case "redirection-host": ico = ; break; case "dead-host": ico = ; break; case "stream": ico = ; break; case "access-list": ico = ; break; } return ico; }; interface Props { row: AuditLog; } export function EventFormatter({ row }: Props) { return (
{getIcon(row)} {getEventValue(row)}
{DateTimeFormat(row.createdOn)}
); }