diff --git a/frontend/src/pages/TaskListPage.tsx b/frontend/src/pages/TaskListPage.tsx index d2cba88..f7b258d 100644 --- a/frontend/src/pages/TaskListPage.tsx +++ b/frontend/src/pages/TaskListPage.tsx @@ -113,7 +113,42 @@ export function TaskListPage() { onRefresh={() => void loadTasks(filters)} /> -
+
+ {[ + { label: 'Todas', value: null }, + { label: 'Pendente', value: 'NOT_STARTED' }, + { label: 'Em andamento', value: 'IN_PROGRESS' }, + { label: 'Finalizada', value: 'COMPLETED' }, + { label: 'Cancelada', value: 'CANCELED' }, + ].map((tab) => { + const isActive = + tab.value === null + ? filters.statuses.length === 0 + : filters.statuses.includes(tab.value as any) && filters.statuses.length === 1 + + return ( + + ) + })} +
+ +
{tasks.map((task, i) => { const config = getStatusConfig(task.status) @@ -123,70 +158,68 @@ export function TaskListPage() { return ( navigate(`/edit/${task.id}`)} - className="group relative flex cursor-pointer flex-col rounded-[2rem] border border-border-soft bg-surface p-6 shadow-sm transition-all hover:shadow-xl hover:shadow-brand/5" + className="group relative flex cursor-pointer flex-col md:flex-row md:items-center gap-4 rounded-2xl border border-border-soft bg-surface p-4 shadow-sm transition-all hover:shadow-md hover:border-brand/30" > -
+
- {config.label} + {config.label}
#{task.id}
-

- {task.title} -

- -

- {task.description || 'Sem descrição informada.'} -

- -
- loadTasks(filters, true)} - /> - -
-
-
- - {task.project?.name || 'Geral'} -
- {task.category && ( - <> -
- - - )} -
-
- - {task.history?.length ?? 0} registros -
-
- - {task.user && ( -
- -
+
+

+ {task.title} +

+
+ + + {task.project?.name || 'Geral'} + + {task.category && ( + <> + + + )} + + + + {task.history?.length ?? 0} +
+ +
+
e.stopPropagation()}> + loadTasks(filters, true)} + /> +
+ + {task.user && ( +
+ +
+ )} +
) })} @@ -219,11 +252,11 @@ export function TaskListPage() { )} {isLoading && tasks.length === 0 && ( -
+
{Array.from({ length: 6 }).map((_, i) => (
))}