Propose Code: {propose.propose_code || '—'}
Status: {propose.status}
-
Created By: User #{propose.created_by_id || '—'}
+
Created By: {propose.created_by_username || (propose.created_by_id ? `User #${propose.created_by_id}` : '—')}
Created: {dayjs(propose.created_at).format('YYYY-MM-DD HH:mm')}
Updated: {propose.updated_at ? dayjs(propose.updated_at).format('YYYY-MM-DD HH:mm') : '—'}
Feature Task: {propose.feat_task_id || '—'}
diff --git a/src/pages/TaskDetailPage.tsx b/src/pages/TaskDetailPage.tsx
index 3469d6a..27f23a1 100644
--- a/src/pages/TaskDetailPage.tsx
+++ b/src/pages/TaskDetailPage.tsx
@@ -120,7 +120,7 @@ export default function TaskDetailPage() {
-
#{task.id} {task.title}
+
{task.task_code ? `[${task.task_code}]` : `#${task.id}`} {task.title}
{task.status}
{task.priority}
@@ -261,7 +261,7 @@ export default function TaskDetailPage() {
Comments ({comments.length})
{comments.map((c) => (
-
User #{c.author_id} · {dayjs(c.created_at).format('MM-DD HH:mm')}
+
{c.author_username || `User #${c.author_id}`} · {dayjs(c.created_at).format('MM-DD HH:mm')}
{c.content}
))}
diff --git a/src/pages/TasksPage.tsx b/src/pages/TasksPage.tsx
index 7bbecec..737e04c 100644
--- a/src/pages/TasksPage.tsx
+++ b/src/pages/TasksPage.tsx
@@ -27,8 +27,8 @@ export default function TasksPage() {
useEffect(() => { fetchTasks() }, [page, statusFilter, priorityFilter])
const statusColors: Record
= {
- open: '#3b82f6', in_progress: '#f59e0b', resolved: '#10b981',
- closed: '#6b7280', blocked: '#ef4444',
+ pending: '#9ca3af', open: '#3b82f6', undergoing: '#f59e0b',
+ completed: '#10b981', closed: '#6b7280',
}
return (
@@ -50,11 +50,11 @@ export default function TasksPage() {
diff --git a/src/types/index.ts b/src/types/index.ts
index b647963..523a122 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -27,6 +27,8 @@ export interface Project {
export interface ProjectMember {
id: number
user_id: number
+ username: string | null
+ full_name: string | null
project_id: number
role: string
}
@@ -59,6 +61,7 @@ export interface Comment {
content: string
task_id: number
author_id: number
+ author_username: string | null
created_at: string
updated_at: string | null
}
@@ -132,6 +135,7 @@ export interface Propose {
status: 'open' | 'accepted' | 'rejected'
project_id: number
created_by_id: number | null
+ created_by_username: string | null
feat_task_id: string | null
created_at: string
updated_at: string | null