feat: update frontend type definitions and status enums to match new backend

- types/index.ts: Task status 'progressing' → 'undergoing' + 'completed'; Milestone status updated to open/freeze/undergoing/completed/closed + started_at field
- MilestoneFormModal: dropdown options updated
- MilestoneDetailPage: isProgressing → isUndergoing, badge class simplified
- MilestonesPage: badge class simplified
- TaskDetailPage: status transition map updated for new state machine
This commit is contained in:
zhi
2026-03-17 01:04:51 +00:00
parent 7587554fd8
commit e60763b128
5 changed files with 15 additions and 13 deletions

View File

@@ -96,7 +96,7 @@ export default function MilestoneDetailPage() {
currentMemberRole === 'admin'
))
const isProgressing = milestone?.status === 'progressing'
const isUndergoing = milestone?.status === 'undergoing'
if (!milestone) return <div className="loading">Loading...</div>
@@ -117,7 +117,7 @@ export default function MilestoneDetailPage() {
<div className="task-header">
<h2>🏁 {milestone.title}</h2>
<div className="task-meta">
<span className={`badge status-${milestone.status === 'progressing' ? 'in_progress' : milestone.status}`}>{milestone.status}</span>
<span className={`badge status-${milestone.status}`}>{milestone.status}</span>
{milestone.due_date && <span className="text-dim">Due {dayjs(milestone.due_date).format('YYYY-MM-DD')}</span>}
{milestone.planned_release_date && <span className="text-dim">Planned Release: {dayjs(milestone.planned_release_date).format('YYYY-MM-DD')}</span>}
</div>
@@ -154,14 +154,14 @@ export default function MilestoneDetailPage() {
<div className="section">
<div style={{ display: 'flex', gap: 8, marginBottom: 16 }}>
{!isProgressing && canEditMilestone && (
{!isUndergoing && canEditMilestone && (
<>
<button className="btn-primary" onClick={() => { setActiveTab('tasks'); setShowCreateTask(true) }}>+ Create Task</button>
<button className="btn-primary" onClick={() => { setActiveTab('supports'); setShowCreateSupport(true) }}>+ Create Support</button>
<button className="btn-primary" onClick={() => { setActiveTab('meetings'); setShowCreateMeeting(true) }}>+ Schedule Meeting</button>
</>
)}
{isProgressing && <span className="text-dim">Milestone is in progress - cannot add new items</span>}
{isUndergoing && <span className="text-dim">Milestone is undergoing - cannot add new items</span>}
</div>
<MilestoneFormModal