feat(nodes): calculate postions based on current transform

This commit is contained in:
moklick
2019-08-19 11:37:06 +02:00
parent 59cd72ddef
commit 466e05b834
7 changed files with 49 additions and 17 deletions
+15 -4
View File
@@ -29834,7 +29834,18 @@
return "react-graph__edge-".concat(e.source, "-").concat(e.target);
};
var parseElement = function parseElement(e) {
var pointToRendererPoint = function pointToRendererPoint(_ref, transform) {
var x = _ref.x,
y = _ref.y;
var rendererX = x * (1 / [transform[2]]) - transform[0];
var rendererY = y * (1 / [transform[2]]) - transform[1];
return {
x: rendererX,
y: rendererY
};
};
var parseElement = function parseElement(e, transform) {
if (isEdge(e)) {
return _objectSpread2({}, e, {
type: e.type || 'default',
@@ -29846,7 +29857,7 @@
id: e.id.toString(),
type: e.type || 'default',
__rg: {
position: e.position,
position: pointToRendererPoint(e.position, transform),
width: null,
height: null,
handleBounds: {}
@@ -30161,7 +30172,7 @@
React.useEffect(function () {
var nodes = elements.filter(isNode);
var edges = elements.filter(isEdge).map(parseElement);
var edges = elements.filter(isEdge).map(parseElement, state.transform);
var nextNodes = nodes.map(function (propNode) {
var existingNode = state.nodes.find(function (n) {
return n.id === propNode.id;
@@ -30174,7 +30185,7 @@
});
}
return parseElement(propNode);
return parseElement(propNode, state.transform);
});
var nodesChanged = !lodash_isequal(state.nodes, nextNodes);
var edgesChanged = !lodash_isequal(state.edges, edges);