NetiPlot

Mouse Events

Handle user interactions via the onMouse prop.

<NetiPlotReact
  graph={graph}
  onMouse={(type, item, event) => {
    console.log(type, item)
  }}
/>

Callback signature — NetiPlotMouseHandler

type NetiPlotMouseHandler = (
  type: NetiPlotMouseEventType,
  item?: NetiPlotNodeDefinition
        | NetiPlotEdgeDefinition
        | NetiPlotShapeDefinition
        | NetiPlotNodeDefinition[]
        | NetiPlotShapeDefinition[]
        | null,
  event?: MouseEvent,
) => void

Event types — NetiPlotMouseEventType

Typeitem valueDescription
'nodeClick'NetiPlotNodeDefinitionSingle click on a node
'nodeDblClick'NetiPlotNodeDefinitionDouble-click on a node
'nodesDragged'NetiPlotNodeDefinition[]One or more nodes dragged
'edgeClick'NetiPlotEdgeDefinitionSingle click on an edge
'edgeDblClick'NetiPlotEdgeDefinitionDouble-click on an edge
'shapeClick'NetiPlotShapeDefinitionClick on a background shape
'shapeDblClick'NetiPlotShapeDefinitionDouble-click on a background shape
'shapeUpdate'NetiPlotShapeDefinitionShape moved or resized
'backgroundClick'nullClick on empty canvas area

Example

onMouse={(type, item) => {
  if (type === 'nodeClick') {
    const node = item as NetiPlotNodeDefinition
    console.log('Clicked node:', node.id, node.label)
  }
  if (type === 'backgroundClick') {
    clearSelection()
  }
}}

Drag interaction

Drag is enabled by default. Disable it via options.interaction:

options={{ interaction: { allowGraphInteraction: false } }}