瀏覽代碼

after moving, e.g. minicards, to the list start / end the index is rounded to the next index

Martin Filser 2 年之前
父節點
當前提交
b869e3efb6
共有 1 個文件被更改,包括 18 次插入4 次删除
  1. 18 4
      client/lib/utils.js

+ 18 - 4
client/lib/utils.js

@@ -331,12 +331,26 @@ Utils = {
       increment = 1;
       increment = 1;
       // If we drop the card in the first position
       // If we drop the card in the first position
     } else if (!prevData) {
     } else if (!prevData) {
-      base = nextData.sort - 1;
-      increment = -1;
+      const nextSortIndex = nextData.sort;
+      const ceil = Math.ceil(nextSortIndex - 1);
+      if (ceil < nextSortIndex) {
+        increment = nextSortIndex - ceil;
+        base = nextSortIndex - increment;
+      } else {
+        base = nextData.sort - 1;
+        increment = -1;
+      }
       // If we drop the card in the last position
       // If we drop the card in the last position
     } else if (!nextData) {
     } else if (!nextData) {
-      base = prevData.sort + 1;
-      increment = 1;
+      const prevSortIndex = prevData.sort;
+      const floor = Math.floor(prevSortIndex + 1);
+      if (floor > prevSortIndex) {
+        increment = prevSortIndex - floor;
+        base = prevSortIndex - increment;
+      } else {
+        base = prevData.sort + 1;
+        increment = 1;
+      }
     }
     }
     // In the general case take the average of the previous and next element
     // In the general case take the average of the previous and next element
     // sort indexes.
     // sort indexes.