UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

59 lines (58 loc) 2.06 kB
"use strict"; 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;