import type { AuditLogEntry } from "@/lib/queries/admin-queries";

interface LogStreamProps {
  logs: AuditLogEntry[];
}

const levelColor: Record<AuditLogEntry["level"], string> = {
  ok: "text-success",
  warn: "text-warning",
  error: "text-danger",
};

export function LogStream({ logs }: LogStreamProps) {
  if (logs.length === 0) {
    return (
      <p className="py-8 text-center text-sm text-muted">No system events yet.</p>
    );
  }

  return (
    <div className="max-h-[220px] space-y-2 overflow-y-auto font-mono text-[11.5px]">
      {logs.map((log) => (
        <div
          key={log.id}
          className="flex gap-3 rounded border border-border/60 bg-bg/50 px-3 py-2"
        >
          <span className="shrink-0 text-muted">
            {log.createdAt.toLocaleTimeString("en-US", { hour12: false })}
          </span>
          <span className={`shrink-0 font-bold uppercase ${levelColor[log.level]}`}>
            {log.level}
          </span>
          <span className="min-w-0 truncate text-text">{log.message}</span>
        </div>
      ))}
    </div>
  );
}
