fix table config drag and drop interaction on bottom edge

This commit is contained in:
jeffvli
2026-02-26 20:59:24 -08:00
parent eb8913479b
commit b62f62671d
+16 -18
View File
@@ -87,27 +87,25 @@ export const dndUtils = {
return list;
}
// If dragging to the right, but is left edge, do nothing
if (edge === 'left' && indexTo > indexFrom) {
let newIndex: number;
if (edge === 'bottom') {
newIndex = indexFrom > indexTo ? indexTo + 1 : indexTo;
} else if (edge === 'top' || edge === null) {
newIndex = indexTo;
} else if (edge === 'left' && indexTo > indexFrom) {
return list;
} else if (edge === 'right' && indexTo < indexFrom) {
return list;
} else {
newIndex = indexTo;
}
if (newIndex === indexFrom) {
return list;
}
// If dragging to the left, but is right edge, do nothing
if (edge === 'right' && indexTo < indexFrom) {
return list;
}
// If dragging to the top, but is bottom edge, do nothing
if (edge === 'top' && indexTo > indexFrom) {
return list;
}
// If dragging to the bottom, but is top edge, do nothing
if (edge === 'bottom' && indexTo < indexFrom) {
return list;
}
return dndUtils.reorderByIndex({ index: indexFrom, list, newIndex: indexTo });
return dndUtils.reorderByIndex({ index: indexFrom, list, newIndex });
},
reorderByIndex: (args: { index: number; list: string[]; newIndex: number }) => {
const { index, list, newIndex } = args;