From 41ebd3621829280b85c5702bce891a3a5fd7b8e1 Mon Sep 17 00:00:00 2001 From: zhi Date: Sat, 21 Mar 2026 21:38:14 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20code-first=20navigation=20=E2=80=94=20u?= =?UTF-8?q?se=20resource=20codes=20in=20links=20and=20displays?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DashboardPage: show task_code instead of #id, link via code - TasksPage: navigate to tasks via task_code - MilestoneDetailPage: navigate to tasks/supports/meetings via codes - MilestoneDetailPage: display codes in support/meeting tables - Fix support/meeting state types to any[] for code property access --- src/pages/DashboardPage.tsx | 6 +++--- src/pages/MilestoneDetailPage.tsx | 18 +++++++++--------- src/pages/TasksPage.tsx | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/pages/DashboardPage.tsx b/src/pages/DashboardPage.tsx index cbf9bab..0727349 100644 --- a/src/pages/DashboardPage.tsx +++ b/src/pages/DashboardPage.tsx @@ -55,13 +55,13 @@ export default function DashboardPage() {

Recent Tasks

- + {(stats.recent_tasks || []).map((i) => ( - - + + diff --git a/src/pages/MilestoneDetailPage.tsx b/src/pages/MilestoneDetailPage.tsx index f5e27c5..87c3a94 100644 --- a/src/pages/MilestoneDetailPage.tsx +++ b/src/pages/MilestoneDetailPage.tsx @@ -31,8 +31,8 @@ export default function MilestoneDetailPage() { const [members, setMembers] = useState([]) const [progress, setProgress] = useState(null) const [tasks, setTasks] = useState([]) - const [supports, setSupports] = useState([]) - const [meetings, setMeetings] = useState([]) + const [supports, setSupports] = useState([]) + const [meetings, setMeetings] = useState([]) const [activeTab, setActiveTab] = useState<'tasks' | 'supports' | 'meetings'>('tasks') const [showCreateTask, setShowCreateTask] = useState(false) const [showEditMilestone, setShowEditMilestone] = useState(false) @@ -141,7 +141,7 @@ export default function MilestoneDetailPage() { if (!milestone) return
Loading...
const renderTaskRow = (t: MilestoneTask) => ( -
navigate(`/tasks/${t.id}`)}> + navigate(`/tasks/${t.task_code || t.id}`)}> @@ -352,11 +352,11 @@ export default function MilestoneDetailPage() { {activeTab === 'supports' && (
IDTitleStatusPriorityTypeSubtype
CodeTitleStatusPriorityTypeSubtype
#{i.id}{i.title}{i.task_code || `#${i.id}`}{i.title} {i.status} {i.priority} {i.task_type}{i.task_subtype || "-"}
{t.task_code || t.id} {t.title} {t.task_status || t.status}
- + {supports.map((i) => ( - navigate(`/supports/${projectCode}/${id}/${i.id}`)}> - + navigate(`/supports/${projectCode}/${id}/${i.support_code || i.id}`)}> + @@ -369,11 +369,11 @@ export default function MilestoneDetailPage() { {activeTab === 'meetings' && (
#TitleStatusPriority
CodeTitleStatusPriority
{i.id}
{i.support_code || i.id} {i.title} {i.status} {i.priority}
- + {meetings.map((i) => ( - navigate(`/meetings/${projectCode}/${id}/${i.id}`)}> - + navigate(`/meetings/${projectCode}/${id}/${i.meeting_code || i.id}`)}> + diff --git a/src/pages/TasksPage.tsx b/src/pages/TasksPage.tsx index 737e04c..165ff6e 100644 --- a/src/pages/TasksPage.tsx +++ b/src/pages/TasksPage.tsx @@ -64,7 +64,7 @@ export default function TasksPage() { {tasks.map((t) => ( - navigate(`/tasks/${t.id}`)} className="clickable"> + navigate(`/tasks/${t.task_code || t.id}`)} className="clickable">
#TitleStatusPriority
CodeTitleStatusPriority
{i.id}
{i.meeting_code || i.id} {i.title} {i.status} {i.priority}
{t.task_code || t.id} {t.title} {t.status}