feat: milestone/task status UI + propose pages + action buttons #8

Merged
hzhang merged 11 commits from feat/milestone-propose-state-machine into main 2026-03-19 11:12:03 +00:00
Showing only changes of commit a4b4ffcb88 - Show all commits

View File

@@ -153,7 +153,12 @@ export default function MilestoneDetailPage() {
{milestone.planned_release_date && <span className="text-dim">Planned Release: {dayjs(milestone.planned_release_date).format('YYYY-MM-DD')}</span>}
{milestone.started_at && <span className="text-dim">Started: {dayjs(milestone.started_at).format('YYYY-MM-DD HH:mm')}</span>}
</div>
{canEditMilestone && !isTerminal && <button className="btn-transition" style={{ marginTop: 8 }} onClick={() => setShowEditMilestone(true)}>Edit Milestone</button>}
{canEditMilestone && msStatus === 'open' && <button className="btn-transition" style={{ marginTop: 8 }} onClick={() => setShowEditMilestone(true)}>Edit Milestone</button>}
{canEditMilestone && (msStatus === 'freeze' || msStatus === 'undergoing') && (
<span className="text-dim" style={{ marginTop: 8, display: 'inline-block' }}>
Milestone is {msStatus} scope fields are locked
</span>
)}
{/* Milestone status action buttons (P8.2) */}
{!isTerminal && (