@nodeject/ui-components
Version:
UI library for non-trivial components
59 lines (58 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.moveNodeLocal = void 0;
var immer_1 = require("immer");
var moveNodeLocal = function (args) {
var parentNode = args.parentNode, cytoGraph = args.cytoGraph, node = args.node, setCytoGraph = args.setCytoGraph, dropIndex = args.dropIndex;
// console.log(
// 'Drop',
// JSON.stringify(
// {
// id: node.data.id,
// parentId: parentNode.data.id,
// dropIndex
// },
// null,
// 2
// )
// )
// Create new node
var newNode = immer_1.default(node, function (draft) {
draft.data.parent = parentNode.data.id;
});
// console.log(
// 'BEFORE',
// JSON.stringify(cytoGraph.nodes.map((n, i) => `${i}, ${n.data.id}, parent: ${n.data.parent}`), null, 2)
// )
var nextNodes = immer_1.default(cytoGraph.nodes, function (draft) {
// Delete node
draft.splice(cytoGraph.nodes.findIndex(function (n) { return n.data.id === node.data.id; }), 1);
// console.log(
// 'draft',
// JSON.stringify(draft.map((n, i) => `${i}, ${n.data.id}, parent: ${n.data.parent}`), null, 2)
// )
// Replace with new node at right index
var parentIndex = draft.findIndex(function (n) { return n.data.id === parentNode.data.id; });
var index = dropIndex + parentIndex + 1;
// console.log(
// 'extras',
// JSON.stringify(
// {
// parentId: parentNode.data.id,
// parentIndex: parentIndex,
// dropIndex,
// index
// },
// null,
// 2
// )
// )
draft.splice(index, 0, newNode);
});
// console.log(
// 'AFTER',
// JSON.stringify(nextNodes.map((n, i) => `${i}, ${n.data.id}, parent: ${n.data.parent}`), null, 2)
// )
setCytoGraph({ nodes: nextNodes });
};
exports.moveNodeLocal = moveNodeLocal;