feat(renderer): change layer order, allow zoom on nodes and user selection
This commit is contained in:
@@ -4,6 +4,9 @@ import ReactFlow, { removeElements, addEdge, MiniMap, Controls, Background, isNo
|
|||||||
|
|
||||||
const onNodeDragStart = (event, node) => console.log('drag start', node);
|
const onNodeDragStart = (event, node) => console.log('drag start', node);
|
||||||
const onNodeDragStop = (event, node) => console.log('drag stop', node);
|
const onNodeDragStop = (event, node) => console.log('drag stop', node);
|
||||||
|
const onPaneClick = (event) => console.log('pane click', event);
|
||||||
|
const onPaneScroll = (event) => console.log('pane scroll', event);
|
||||||
|
const onPaneContextMenu = (event) => console.log('pane context menu', event);
|
||||||
const onSelectionDrag = (event, nodes) => console.log('selection drag', nodes);
|
const onSelectionDrag = (event, nodes) => console.log('selection drag', nodes);
|
||||||
const onSelectionDragStart = (event, nodes) => console.log('selection drag start', nodes);
|
const onSelectionDragStart = (event, nodes) => console.log('selection drag start', nodes);
|
||||||
const onSelectionDragStop = (event, nodes) => console.log('selection drag stop', nodes);
|
const onSelectionDragStop = (event, nodes) => console.log('selection drag stop', nodes);
|
||||||
@@ -125,6 +128,9 @@ const OverviewFlow = () => {
|
|||||||
onElementClick={onElementClick}
|
onElementClick={onElementClick}
|
||||||
onElementsRemove={onElementsRemove}
|
onElementsRemove={onElementsRemove}
|
||||||
onConnect={onConnect}
|
onConnect={onConnect}
|
||||||
|
onPaneClick={onPaneClick}
|
||||||
|
onPaneScroll={onPaneScroll}
|
||||||
|
onPaneContextMenu={onPaneContextMenu}
|
||||||
onNodeDragStart={onNodeDragStart}
|
onNodeDragStart={onNodeDragStart}
|
||||||
onNodeDragStop={onNodeDragStop}
|
onNodeDragStop={onNodeDragStop}
|
||||||
onSelectionDragStart={onSelectionDragStart}
|
onSelectionDragStart={onSelectionDragStart}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ const FlowRenderer = ({
|
|||||||
onSelectionContextMenu={onSelectionContextMenu}
|
onSelectionContextMenu={onSelectionContextMenu}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<div className="react-flow__zoompane" onClick={onClick} onContextMenu={onContextMenu} onWheel={onWheel} />
|
<div className="react-flow__pane" onClick={onClick} onContextMenu={onContextMenu} onWheel={onWheel} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
+14
-2
@@ -107,7 +107,19 @@ export default ({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (d3Zoom) {
|
if (d3Zoom) {
|
||||||
d3Zoom.filter((event: any) => {
|
d3Zoom.filter((event: any) => {
|
||||||
console.log(event);
|
if (selectionKeyPressed) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// only allow zoom on nodes
|
||||||
|
if (event.target.closest('.react-flow__node') && event.type !== 'wheel') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// only allow zoom on user selection
|
||||||
|
if (event.target.closest('.react-flow__nodesselection') && event.type !== 'wheel') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!paneMoveable) {
|
if (!paneMoveable) {
|
||||||
return false;
|
return false;
|
||||||
@@ -124,5 +136,5 @@ export default ({
|
|||||||
return !event.ctrlKey && !event.button;
|
return !event.ctrlKey && !event.button;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [d3Zoom, zoomOnScroll, zoomOnDoubleClick, paneMoveable]);
|
}, [d3Zoom, zoomOnScroll, zoomOnDoubleClick, paneMoveable, selectionKeyPressed]);
|
||||||
};
|
};
|
||||||
|
|||||||
+7
-3
@@ -6,7 +6,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.react-flow__renderer,
|
.react-flow__renderer,
|
||||||
.react-flow__zoompane,
|
.react-flow__pane,
|
||||||
.react-flow__selectionpane {
|
.react-flow__selectionpane {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -15,12 +15,16 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.react-flow__zoompane {
|
.react-flow__pane {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.react-flow__renderer {
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
.react-flow__selectionpane {
|
.react-flow__selectionpane {
|
||||||
z-index: 2;
|
z-index: 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.react-flow__selection {
|
.react-flow__selection {
|
||||||
|
|||||||
Reference in New Issue
Block a user