feat(ui): add task management UI with list, detail, and create pages

Implements Task 19: Task List + Task Detail + Status Transitions UI

New components:
- useTasks hook: TanStack Query hooks (useTasks, useTask, useCreateTask, useUpdateTask)
- Task list page: shadcn Table with status filter, pagination, status badges
- Task detail page: Full task info with valid status transition buttons
- New task form: Create task with title, description, assigneeId, dueDate

Key features:
- Status transitions match backend logic: Open→Assigned→InProgress→Review→Done
- Review status allows back-transition to InProgress (only bidirectional)
- Only valid next states shown as buttons (VALID_TRANSITIONS map)
- Status badge colors: Open=gray, Assigned=blue, InProgress=yellow, Review=red, Done=green
- TanStack Query with automatic cache invalidation on mutations
- Next.js 15+ async params pattern (use() hook)

TDD:
- 3 task list tests (renders rows, status badges, new task button)
- 3 task detail tests (Open→Assigned, InProgress→Review, Review→Done+InProgress)

All tests pass (31/31). Build succeeds.
This commit is contained in:
WorkClub Automation
2026-03-03 20:12:31 +01:00
parent 46bbac355b
commit c8ae47c0bc
8 changed files with 654 additions and 1 deletions

View File

@@ -1769,7 +1769,7 @@ Max Concurrent: 6 (Wave 1)
- Files: `frontend/src/app/layout.tsx`, `frontend/src/components/club-switcher.tsx`, `frontend/src/components/auth-guard.tsx`
- Pre-commit: `bun run build && bun run test` (in frontend/)
- [ ] 19. Task List + Task Detail + Status Transitions UI
- [x] 19. Task List + Task Detail + Status Transitions UI
**What to do**:
- Create `/frontend/src/app/(protected)/tasks/page.tsx`: