All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 1m6s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 21s
Test Suite / playwright-smoke (push) Successful in 14s
Schließt den zweiten OM-Slice entlang der Roadmap: neue Entitäten parallel im Vorhaben, erweiterte Action-Status/Fälligkeit und Attention-Regeln 7–9. Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import { STATUS_LABELS_BY_KIND } from '../constants/status.js'
|
|
|
|
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',
|
|
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',
|
|
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',
|
|
}
|
|
|
|
export function StatusBadge({ kind = 'action', status }) {
|
|
const labels = STATUS_LABELS_BY_KIND[kind] || STATUS_LABELS_BY_KIND.action
|
|
const label = labels[status] || status
|
|
const variant = VARIANTS[status] || 'status-default'
|
|
return <span className={`badge status-badge ${variant}`}>{label}</span>
|
|
}
|