16 lines
407 B
JavaScript
16 lines
407 B
JavaScript
|
|
export function sortByField(from, to, edges, fieldName) {
|
||
|
|
|
||
|
|
if (from === to) {
|
||
|
|
return edges;
|
||
|
|
}
|
||
|
|
|
||
|
|
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);
|
||
|
|
|
||
|
|
return [...remainingEdge, ...edgesTosort];
|
||
|
|
|
||
|
|
}
|