UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

75 lines (74 loc) 2.55 kB
import { getNodeInfo } from './helper'; export var onDragEnter = function (info) { // console.log('onDragEnter info', info) // expandedKeys // setState({ // expandedKeys: info.expandedKeys, // }) }; export var onDrop = function (info, treeData, moveNodeTo) { console.log('info', info.node); var dropKey = info.node.props.eventKey; var dragKey = info.dragNode.props.eventKey; var dropPos = info.node.props.pos.split('-'); var dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]); var dragNodeKey; var moveI; var parentKey; // Find dragObject var dragNode; getNodeInfo(treeData, dragKey, function (node, index, nodes) { nodes.splice(index, 1); dragNode = node; }); if (!info.dropToGap) { // Drop on the content getNodeInfo(treeData, dropKey, function (dropNode) { dropNode.children = dropNode.children || []; // where to insert dropNode.children.push(dragNode); dragNodeKey = dragNode.nodeKey; moveI = dropNode.children.length - 1; parentKey = dropNode.nodeKey; }); } else if (info.node.props.children !== undefined && info.node.props.expanded && // Is expanded dropPosition === 1 // On the bottom gap ) { getNodeInfo(treeData, dropKey, function (dropNode) { dropNode.children = dropNode.children || []; // where to insert dropNode.children.unshift(dragNode); dragNodeKey = dragNode.nodeKey; moveI = 0; parentKey = dropNode.nodeKey; }); } else { var ar_1; var i_1; var d_1; var moveIndex = void 0; getNodeInfo(treeData, dropKey, function (dropNode, index, nodes) { ar_1 = nodes; i_1 = index; d_1 = dropNode; }); dropPosition === -1 ? (moveIndex = i_1) : (moveIndex = i_1 + 1); ar_1.splice(moveIndex, 0, dragNode); dragNodeKey = dragNode.nodeKey; moveI = moveIndex; parentKey = d_1.parentKey; } console.log(dragNodeKey, moveI, parentKey); if (!moveNodeTo) { console.log('please pass a props.moveNodeTo for server implementation'); } return { index: moveI, nodeId: dragNodeKey, parentId: parentKey }; // moveNodeTo ? moveNodeTo(dragNodeKey, moveI, parentKey) : };