UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

30 lines (29 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteNodeLocal = void 0; var immer_1 = require("immer"); var deleteNodeLocal = function (args) { var cytoGraph = args.cytoGraph, nodeId = args.nodeId, setCytoGraph = args.setCytoGraph; // Gets the list of descendants node to delete var deleteNodeList = { nodes: [] }; deleteNodeList.nodes.push(cytoGraph.nodes.find(function (n) { return n.data.id === nodeId; })); var listSelfAndDescendants = function (id) { var children = cytoGraph.nodes.filter(function (n) { if (n.data.parent === id) { deleteNodeList.nodes.push(n); return true; } }); children.map(function (c) { listSelfAndDescendants(c.data.id); }); }; listSelfAndDescendants(nodeId); var nextCytoGraph = immer_1.default(cytoGraph, function (draftState) { deleteNodeList.nodes.map(function (deleteNode) { draftState.nodes.splice(draftState.nodes.findIndex(function (n) { return n.data.id === deleteNode.data.id; }), 1); }); }); setCytoGraph(nextCytoGraph); }; exports.deleteNodeLocal = deleteNodeLocal;