From e60763b128564d2ea7a1175604ae9092980a2b32 Mon Sep 17 00:00:00 2001 From: zhi Date: Tue, 17 Mar 2026 01:04:51 +0000 Subject: [PATCH] feat: update frontend type definitions and status enums to match new backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- src/components/MilestoneFormModal.tsx | 6 +++--- src/pages/MilestoneDetailPage.tsx | 8 ++++---- src/pages/MilestonesPage.tsx | 2 +- src/pages/TaskDetailPage.tsx | 7 ++++--- src/types/index.ts | 5 +++-- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/MilestoneFormModal.tsx b/src/components/MilestoneFormModal.tsx index 00e6ecb..7147dc1 100644 --- a/src/components/MilestoneFormModal.tsx +++ b/src/components/MilestoneFormModal.tsx @@ -125,9 +125,9 @@ export default function MilestoneFormModal({ isOpen, onClose, onSaved, milestone Status diff --git a/src/pages/MilestoneDetailPage.tsx b/src/pages/MilestoneDetailPage.tsx index fe85746..37db6cf 100644 --- a/src/pages/MilestoneDetailPage.tsx +++ b/src/pages/MilestoneDetailPage.tsx @@ -96,7 +96,7 @@ export default function MilestoneDetailPage() { currentMemberRole === 'admin' )) - const isProgressing = milestone?.status === 'progressing' + const isUndergoing = milestone?.status === 'undergoing' if (!milestone) return
Loading...
@@ -117,7 +117,7 @@ export default function MilestoneDetailPage() {

🏁 {milestone.title}

- {milestone.status} + {milestone.status} {milestone.due_date && Due {dayjs(milestone.due_date).format('YYYY-MM-DD')}} {milestone.planned_release_date && Planned Release: {dayjs(milestone.planned_release_date).format('YYYY-MM-DD')}}
@@ -154,14 +154,14 @@ export default function MilestoneDetailPage() {
- {!isProgressing && canEditMilestone && ( + {!isUndergoing && canEditMilestone && ( <> )} - {isProgressing && Milestone is in progress - cannot add new items} + {isUndergoing && Milestone is undergoing - cannot add new items}
(
navigate(`/milestones/${ms.id}`)}>
- {ms.status} + {ms.status}

{ms.title}

{ms.description || 'No description'}

diff --git a/src/pages/TaskDetailPage.tsx b/src/pages/TaskDetailPage.tsx index a3194f3..0c5f91d 100644 --- a/src/pages/TaskDetailPage.tsx +++ b/src/pages/TaskDetailPage.tsx @@ -63,9 +63,10 @@ export default function TaskDetailPage() { if (!task) return
Loading...
const statusActions: Record = { - open: ['progressing', 'closed'], - pending: ['progressing', 'closed'], - progressing: ['pending', 'closed'], + open: ['undergoing', 'closed'], + pending: ['open', 'closed'], + undergoing: ['completed', 'closed'], + completed: ['open'], closed: ['open'], } diff --git a/src/types/index.ts b/src/types/index.ts index fa48069..73ff651 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -35,7 +35,7 @@ export interface Task { description: string | null task_type: 'issue' | 'maintenance' | 'research' | 'review' | 'story' | 'test' | 'resolution' | 'task' task_subtype: string | null - status: 'open' | 'pending' | 'progressing' | 'closed' + status: 'open' | 'pending' | 'undergoing' | 'completed' | 'closed' priority: 'low' | 'medium' | 'high' | 'critical' project_id: number milestone_id: number | null @@ -64,7 +64,8 @@ export interface Milestone { id: number title: string description: string | null - status: 'open' | 'pending' | 'deferred' | 'progressing' | 'closed' + status: 'open' | 'freeze' | 'undergoing' | 'completed' | 'closed' + started_at: string | null project_id: number created_by_id: number | null due_date: string | null