fix sorting
This commit is contained in:
@@ -1,16 +1,21 @@
|
||||
export function sortByField(from, to, edges, fieldName) {
|
||||
console.log(from)
|
||||
console.log(to)
|
||||
if (from === to) {
|
||||
return edges;
|
||||
}
|
||||
let edgesTosort = edges?.filter((ed) => ed.field === fieldName && ed.depth === 1) ?? [];
|
||||
let remainingEdge = edges?.filter((ed) => !(ed.field === fieldName && ed.depth === 1)) ?? [];
|
||||
|
||||
let edgesTosort = edges?.filter((ed) => ed.field === fieldName) ?? [];
|
||||
let remainingEdge = edges?.filter((ed) => ed.field !== fieldName) ?? [];
|
||||
|
||||
let fromElem = edgesTosort.splice(from, 1)[0];
|
||||
edgesTosort.splice(to, 0, fromElem);
|
||||
|
||||
edgesTosort = array_move(edgesTosort,from, to);
|
||||
return [...remainingEdge, ...edgesTosort];
|
||||
|
||||
}
|
||||
|
||||
function array_move(arr, old_index, new_index) {
|
||||
if (new_index >= arr.length) {
|
||||
var k = new_index - arr.length + 1;
|
||||
while (k--) {
|
||||
arr.push(undefined);
|
||||
}
|
||||
}
|
||||
arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
|
||||
return arr; // for testing
|
||||
};
|
||||
Reference in New Issue
Block a user