fix(packing): tell a dragged category by its data type, not by a state flag

A flag set on dragstart could still be unrendered when a quick drag reached
the next card, and the drop was lost. The category now travels in the drag
under its own type, read from the first dragover on and at the drop.
This commit is contained in:
Maurice
2026-10-18 13:17:43 +02:00
parent 23b28a1f3f
commit cecfdf2dcc
2 changed files with 24 additions and 13 deletions
@@ -47,16 +47,12 @@ export function PackingList(S: PackingState) {
onReorder={(orderedIds) => reorderPackingItems(tripId, orderedIds)}
reorderable={sort === 'manual'}
categoryDrag={canEdit ? {
active: draggedCategory !== null,
isDragging: draggedCategory === kat,
isOver: overCategory === kat && draggedCategory !== null && draggedCategory !== kat,
onStart: () => { setDraggedCategory(kat); setOverCategory(null) },
onOver: () => setOverCategory(kat),
onEnd: endCategoryDrag,
onDrop: () => {
if (draggedCategory !== null) moveCategory(draggedCategory, kat)
endCategoryDrag()
},
onDrop: (dragged) => { moveCategory(dragged, kat); endCategoryDrag() },
} : undefined}
currentUserId={currentUserId}
onSetSharing={handleSetSharing}