@@ -2,60 +2,68 @@ import { notFound } from 'next/navigation'
22
33import { Button } from '@repo/ui'
44
5+ import {
6+ TaskPriority ,
7+ TaskPriorityBadge ,
8+ TaskStatus ,
9+ TaskStatusBadge ,
10+ TaskType ,
11+ TaskTypeBadge ,
12+ } from '@/entities/task'
513import { FEATURES } from '@/shared/config'
614
7- const mockTasks = [
15+ interface Task {
16+ id : string
17+ title : string
18+ type : TaskType
19+ status : TaskStatus
20+ priority : TaskPriority
21+ assignee : string
22+ }
23+
24+ const mockTasks : Task [ ] = [
825 {
926 id : 'TT-1' ,
1027 title : 'Реализовать систему авторизации' ,
1128 type : 'Эпик' ,
12- status : 'В работе ' ,
13- priority : 'Высокий ' ,
29+ status : 'IN_PROGRESS ' ,
30+ priority : 'HIGH ' ,
1431 assignee : 'Алексей' ,
1532 } ,
1633 {
1734 id : 'TT-2' ,
1835 title : 'Kanban доска с drag & drop' ,
1936 type : 'Стори' ,
20- status : 'В работе ' ,
21- priority : 'Высокий ' ,
37+ status : 'IN_PROGRESS ' ,
38+ priority : 'HIGH ' ,
2239 assignee : 'Мария' ,
2340 } ,
2441 {
2542 id : 'TT-3' ,
2643 title : 'Фильтры и поиск задач' ,
2744 type : 'Стори' ,
28- status : 'К выполнению ' ,
29- priority : 'Средний ' ,
45+ status : 'TODO ' ,
46+ priority : 'MEDIUM ' ,
3047 assignee : 'Дмитрий' ,
3148 } ,
3249 {
3350 id : 'TT-4' ,
3451 title : 'Исправить баг с отображением аватаров' ,
3552 type : 'Баг' ,
36- status : 'Ревью ' ,
37- priority : 'Высокий ' ,
53+ status : 'IN_REVIEW ' ,
54+ priority : 'HIGH ' ,
3855 assignee : 'Елена' ,
3956 } ,
4057 {
4158 id : 'TT-5' ,
4259 title : 'Настроить CI/CD pipeline' ,
4360 type : 'Тех. долг' ,
44- status : 'Готово ' ,
45- priority : 'Средний ' ,
61+ status : 'DONE ' ,
62+ priority : 'MEDIUM ' ,
4663 assignee : 'Павел' ,
4764 } ,
4865] as const
4966
50- const typeBadgeClassName : Record < ( typeof mockTasks ) [ number ] [ 'type' ] , string > = {
51- Эпик : 'border border-violet-200 bg-violet-50 text-violet-700 dark:border-violet-500/25 dark:bg-violet-500/20 dark:text-violet-200' ,
52- Стори :
53- 'border border-sky-200 bg-sky-50 text-sky-700 dark:border-sky-500/25 dark:bg-sky-500/20 dark:text-sky-200' ,
54- Баг : 'border border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-500/25 dark:bg-rose-500/20 dark:text-rose-200' ,
55- 'Тех. долг' :
56- 'border border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/25 dark:bg-amber-500/20 dark:text-amber-200' ,
57- }
58-
5967const sleep = ( ms : number ) => new Promise ( ( r ) => setTimeout ( r , ms ) )
6068
6169export default async function TasksPage ( ) {
@@ -111,22 +119,24 @@ export default async function TasksPage() {
111119 { mockTasks ?. map ( ( task ) => (
112120 < tr key = { task . id } className = 'border-b border-border last:border-b-0' >
113121 < td className = 'px-4 py-3' >
114- < span className = 'block h-5 w-5 rounded-[calc(var(--radius-control)-2px)] border-2 border-primary' />
122+ < div className = 'block size-5 rounded-[calc(var(--radius-control)-2px)] border-2 border-primary' />
123+ </ td >
124+ < td className = 'px-3 py-3 text-body text-muted-foreground' >
125+ < span > { task . id } </ span >
126+ </ td >
127+ < td className = 'px-3 py-3 text-body font-medium text-foreground' >
128+ < span > { task . title } </ span >
129+ </ td >
130+ < td className = 'px-3 py-3 leading-none' >
131+ < TaskTypeBadge type = { task . type } />
115132 </ td >
116- < td className = 'px-3 py-3 text-xl text-muted-foreground' > { task . id } </ td >
117- < td className = 'px-3 py-3 text-xl font-medium text-foreground' >
118- { task . title }
133+ < td className = 'px-3 py-3 leading-none' >
134+ < TaskStatusBadge status = { task . status } />
119135 </ td >
120136 < td className = 'px-3 py-3' >
121- < span
122- className = { `inline-flex rounded-full px-2.5 py-1 text-sm font-medium ${ typeBadgeClassName [ task . type ] } ` }
123- >
124- { task . type }
125- </ span >
137+ < TaskPriorityBadge priority = { task . priority } />
126138 </ td >
127- < td className = 'px-3 py-3 text-xl text-foreground' > { task . status } </ td >
128- < td className = 'px-3 py-3 text-xl text-foreground' > { task . priority } </ td >
129- < td className = 'px-3 py-3 text-xl text-foreground' > { task . assignee } </ td >
139+ < td className = 'px-3 py-3 text-body text-foreground' > { task . assignee } </ td >
130140 </ tr >
131141 ) ) }
132142 </ tbody >
0 commit comments