Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
1.1 KiB
1.1 KiB
PG-PAGE-003: Kanban Board Page
Task
Build Kanban board page with drag-and-drop columns mapped to TaskStatus.
Issue
Refs #468
Files Changed
apps/web/src/app/(authenticated)/kanban/page.tsx(new)apps/web/src/lib/api/tasks.ts(addedupdateTask)package.json/pnpm-lock.yaml(added@hello-pangea/dnd)
Design Decisions
- Used
@hello-pangea/dnd(maintained fork of react-beautiful-dnd) for drag-and-drop - 5 columns mapped to TaskStatus enum: NOT_STARTED, IN_PROGRESS, PAUSED, COMPLETED, ARCHIVED
- Optimistic update pattern: move card immediately, revert by re-fetching on API failure
- Priority badge always shown (field is non-optional in Task type)
- Column count badge uses
color-mix()for transparent accent backgrounds - Horizontal scroll on mobile with
overflow-x: autoandmin-width: 280pxper column
Verification
- Lint: clean (my files pass, pre-existing errors in runner-jobs.ts not my scope)
- Build:
next buildsucceeds,/kanbanroute present in output - TypeScript: no type errors
- Design tokens: all colors from CSS custom properties, no hardcoded colors
Status
Complete