d49c5f1c9cd6ea5026f0305d3f23d96023023f44
- ItemRow: useSortable with drag listeners scoped to GripVertical handle only;
CSS transform animation for remote reorders (D-14); grabbing cursor when dragging
- ListDetail: DndContext/SortableContext over active items; PointerSensor (immediate),
TouchSensor (200ms delay + 5px tolerance — no accidental scroll drags),
KeyboardSensor (accessibility fallback)
- onDragEnd: computes generateKeyBetween(prevRank, nextRank) at destination, fires
optimistic setQueryData then PATCHes { position: newRank } — one-row write (D-13)
- Rollback on PATCH error restores previous order via onError (D-15 LWW convergence)
- Completed items receive no drag handle (not reorderable per UI-SPEC)
The file is empty.
Languages
TypeScript
97.3%
JavaScript
1.6%
CSS
0.9%
Dockerfile
0.1%