All checks were successful
Deploy Development / deploy (push) Successful in 46s
Test Suite / pytest-backend (push) Successful in 2m19s
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 19s
Test Suite / playwright-smoke (push) Successful in 12s
Ready/blocked-Badges, Planning Debt, Vorgänger-Verwaltung — getrennt vom Gate-Designer. Co-authored-by: Cursor <cursoragent@cursor.com>
28 lines
935 B
JavaScript
28 lines
935 B
JavaScript
import { Link } from 'react-router-dom'
|
|
|
|
export function PlanningDebtBanner({ planningDebt, hrefWithScope }) {
|
|
if (!planningDebt?.length || !hrefWithScope) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<div className="planning-debt-banner" role="status">
|
|
<p className="planning-debt-banner__title">Planung ausstehend</p>
|
|
<ul className="planning-debt-banner__list">
|
|
{planningDebt.map((item) => (
|
|
<li key={item.roadmap_item_id}>
|
|
<strong>{item.title || 'Zielzustand'}</strong>
|
|
<span className="muted"> — {item.message || 'Durchführungsplan fehlt'}</span>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
<p className="muted planning-debt-banner__hint">
|
|
Lege Arbeitspakete unter dem aktiven Gate an —{' '}
|
|
<Link to={hrefWithScope('/plan/gates')}>Zielzustände</Link>
|
|
{' · '}
|
|
<Link to={hrefWithScope('/plan/work')}>Arbeit</Link>
|
|
</p>
|
|
</div>
|
|
)
|
|
}
|