SPB Git

spb/autoscholar

Public
2.0 KB · 53 lines tsx
1const COLORS: Record<string, string> = {2  published: "var(--color-ok-500)",3  corrected: "var(--color-info-500)",4  retracted: "var(--color-danger-500)",5  running: "var(--color-info-500)",6  provisioning: "var(--color-info-500)",7  queued: "var(--color-stone-500)",8  validated: "var(--color-stone-500)",9  draft: "var(--color-stone-400)",10  quality_check: "var(--color-warn-500)",11  quality_failed: "var(--color-danger-500)",12  revising: "var(--color-warn-500)",13  ready_to_publish: "var(--color-ok-500)",14  awaiting_approval: "var(--color-warn-500)",15  publishing: "var(--color-ok-500)",16  cancelling: "var(--color-warn-500)",17  cancelled: "var(--color-stone-500)",18  failed: "var(--color-danger-500)",19  retrying: "var(--color-warn-500)",20  online: "var(--color-ok-500)",21  offline: "var(--color-stone-500)",22  draining: "var(--color-warn-500)",23  quarantined: "var(--color-danger-500)",24  disabled: "var(--color-stone-400)",25  pass: "var(--color-ok-500)",26  fail: "var(--color-danger-500)",27  warn: "var(--color-warn-500)",28  skip: "var(--color-stone-400)",29  completed: "var(--color-ok-500)",30  pending: "var(--color-stone-400)",31  blocker: "var(--color-danger-500)",32  major: "var(--color-warn-500)",33  minor: "var(--color-stone-500)",34  verified: "var(--color-ok-500)",35};36const LIVE = new Set(["running", "provisioning", "publishing", "quality_check", "cancelling", "online"]);3738/** Research/verification/publication status pill (ResearchStatusBadge). */39export function StatusBadge({ status, label }: { status: string; label?: string }) {40  const c = COLORS[status] ?? "var(--color-stone-500)";41  return (42    <span className="badge" style={{ color: c, borderColor: `color-mix(in oklab, ${c} 45%, transparent)` }}>43      <span44        aria-hidden="true"45        className={`mr-1.5 inline-block h-1.5 w-1.5 rounded-full ${LIVE.has(status) ? "animate-pulse" : ""}`}46        style={{ background: c }}47      />48      {label ?? status.replace(/_/g, " ")}49    </span>50  );51}52export { StatusBadge as ResearchStatusBadge };53
Files · main
Menu

Theme