File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed
Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ export const Canvas = ({
5454 onNodeDrag,
5555 onNodeDragStop,
5656 onEdgeClick,
57+ onNodeClick,
5758 onSelectionDragStop,
5859 onSelectionContextMenu,
5960 onSelectionChange,
@@ -110,6 +111,13 @@ export const Canvas = ({
110111 [ onEdgeClick ] ,
111112 ) ;
112113
114+ const _onNodeClick = useCallback (
115+ ( event : MouseEvent , node : InternalNode ) => {
116+ onNodeClick ?.( event , convertToExternalNode ( node ) ) ;
117+ } ,
118+ [ onNodeClick ] ,
119+ ) ;
120+
113121 const _onSelectionContextMenu = useCallback (
114122 ( event : MouseEvent , nodes : InternalNode [ ] ) => {
115123 onSelectionContextMenu ?.( event , convertToExternalNodes ( nodes ) ) ;
@@ -149,6 +157,7 @@ export const Canvas = ({
149157 onNodeDragStop = { _onNodeDragStop }
150158 onSelectionDragStop = { _onSelectionDragStop }
151159 onEdgeClick = { _onEdgeClick }
160+ onNodeClick = { _onNodeClick }
152161 onSelectionContextMenu = { _onSelectionContextMenu }
153162 onSelectionChange = { _onSelectionChange }
154163 { ...rest }
Original file line number Diff line number Diff line change @@ -19,6 +19,11 @@ export type OnPaneClickHandler = (event: ReactMouseEvent) => void;
1919 */
2020export type OnEdgeClickHandler = ( event : ReactMouseEvent , edge : EdgeProps ) => void ;
2121
22+ /**
23+ * Called when a node is clicked.
24+ */
25+ export type OnNodeClickHandler = ( event : ReactMouseEvent , edge : NodeProps ) => void ;
26+
2227/**
2328 * Called when a node is right-clicked.
2429 */
@@ -103,6 +108,11 @@ export interface DiagramProps {
103108 */
104109 onEdgeClick ?: OnEdgeClickHandler ;
105110
111+ /**
112+ * Callback when the user clicks on a node.
113+ */
114+ onNodeClick ?: OnNodeClickHandler ;
115+
106116 /**
107117 * Callback when the user right-clicks on a node.
108118 */
@@ -181,7 +191,15 @@ export interface DiagramProps {
181191 /**
182192 * Whether to only render elements that are currently visible in the viewport.
183193 * This can improve performance for large diagrams.
184- * @defaults true
194+ * @default true
185195 */
186196 onlyRenderVisibleElements ?: boolean ;
197+
198+ /**
199+ * With a threshold greater than zero you can delay node drag events. If
200+ * threshold equals 1, you need to drag the node 1 pixel before a drag event
201+ * is fired. 1 is the default value, so that clicks don’t trigger drag events.
202+ * @default 1
203+ */
204+ nodeDragThreshold ?: number ;
187205}
You can’t perform that action at this time.
0 commit comments