2026-07-05 15:11:15 +02:00
|
|
|
import { STATUS_LABELS_BY_KIND } from '../constants/status.js'
|
2026-07-05 06:41:23 +02:00
|
|
|
|
|
|
|
|
const VARIANTS = {
|
|
|
|
|
active: 'status-active',
|
|
|
|
|
paused: 'status-paused',
|
|
|
|
|
completed: 'status-completed',
|
|
|
|
|
archived: 'status-archived',
|
|
|
|
|
open: 'status-open',
|
|
|
|
|
in_progress: 'status-progress',
|
|
|
|
|
blocked: 'status-blocked',
|
|
|
|
|
done: 'status-done',
|
|
|
|
|
discarded: 'status-discarded',
|
2026-07-05 15:11:15 +02:00
|
|
|
new: 'status-open',
|
|
|
|
|
triaged: 'status-progress',
|
|
|
|
|
accepted: 'status-active',
|
|
|
|
|
rejected: 'status-discarded',
|
|
|
|
|
converted: 'status-done',
|
|
|
|
|
planned: 'status-open',
|
|
|
|
|
at_risk: 'status-blocked',
|
|
|
|
|
reached: 'status-done',
|
|
|
|
|
moved: 'status-paused',
|
|
|
|
|
resolved: 'status-done',
|
|
|
|
|
accepted_risk: 'status-paused',
|
|
|
|
|
dismissed: 'status-discarded',
|
2026-07-05 15:27:03 +02:00
|
|
|
ready: 'status-active',
|
|
|
|
|
review_required: 'status-progress',
|
|
|
|
|
submitted: 'status-open',
|
|
|
|
|
accepted: 'status-done',
|
|
|
|
|
rejected: 'status-discarded',
|
|
|
|
|
proposed: 'status-open',
|
|
|
|
|
decided: 'status-done',
|
|
|
|
|
superseded: 'status-paused',
|
|
|
|
|
completed: 'status-done',
|
|
|
|
|
skipped: 'status-paused',
|
|
|
|
|
ended: 'status-archived',
|
2026-07-05 06:41:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function StatusBadge({ kind = 'action', status }) {
|
2026-07-05 15:11:15 +02:00
|
|
|
const labels = STATUS_LABELS_BY_KIND[kind] || STATUS_LABELS_BY_KIND.action
|
2026-07-05 06:41:23 +02:00
|
|
|
const label = labels[status] || status
|
|
|
|
|
const variant = VARIANTS[status] || 'status-default'
|
|
|
|
|
return <span className={`badge status-badge ${variant}`}>{label}</span>
|
|
|
|
|
}
|