spb/autoscholar
Public
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};3536export function StatusBadge({ status }: { status: string }) {37 const c = COLORS[status] ?? "var(--color-stone-500)";38 return (39 <span className="badge" style={{ color: c, borderColor: `color-mix(in oklab, ${c} 45%, transparent)` }}>40 <span41 aria-hidden="true"42 className="mr-1 inline-block h-1.5 w-1.5 rounded-full"43 style={{ background: c }}44 />45 {status.replace(/_/g, " ")}46 </span>47 );48}49