Merge pull request #1008 from kid-icarus/ki/support-element-double-click
Support element double click handler.
This commit is contained in:
@@ -20,6 +20,7 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
|||||||
onMouseMove,
|
onMouseMove,
|
||||||
onMouseLeave,
|
onMouseLeave,
|
||||||
onContextMenu,
|
onContextMenu,
|
||||||
|
onNodeDoubleClick,
|
||||||
onNodeDragStart,
|
onNodeDragStart,
|
||||||
onNodeDrag,
|
onNodeDrag,
|
||||||
onNodeDragStop,
|
onNodeDragStop,
|
||||||
@@ -169,6 +170,10 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
|||||||
[node, isSelectable, selectNodesOnDrag, onClick, onNodeDragStop, isDragging, selected]
|
[node, isSelectable, selectNodesOnDrag, onClick, onNodeDragStop, isDragging, selected]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const onNodeDoubleClickHandler = useCallback((event: MouseEvent) => {
|
||||||
|
onNodeDoubleClick?.(event, node)
|
||||||
|
}, [node, onNodeDoubleClick])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (nodeElement.current && !isHidden) {
|
if (nodeElement.current && !isHidden) {
|
||||||
updateNodeDimensions([{ id, nodeElement: nodeElement.current, forceUpdate: true }]);
|
updateNodeDimensions([{ id, nodeElement: nodeElement.current, forceUpdate: true }]);
|
||||||
@@ -220,6 +225,7 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
|||||||
onMouseLeave={onMouseLeaveHandler}
|
onMouseLeave={onMouseLeaveHandler}
|
||||||
onContextMenu={onContextMenuHandler}
|
onContextMenu={onContextMenuHandler}
|
||||||
onClick={onSelectNodeHandler}
|
onClick={onSelectNodeHandler}
|
||||||
|
onDoubleClick={onNodeDoubleClickHandler}
|
||||||
data-id={id}
|
data-id={id}
|
||||||
>
|
>
|
||||||
<Provider value={id}>
|
<Provider value={id}>
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ const GraphView = ({
|
|||||||
onMoveEnd,
|
onMoveEnd,
|
||||||
onLoad,
|
onLoad,
|
||||||
onElementClick,
|
onElementClick,
|
||||||
|
onNodeDoubleClick,
|
||||||
onNodeMouseEnter,
|
onNodeMouseEnter,
|
||||||
onNodeMouseMove,
|
onNodeMouseMove,
|
||||||
onNodeMouseLeave,
|
onNodeMouseLeave,
|
||||||
@@ -244,6 +245,7 @@ const GraphView = ({
|
|||||||
<NodeRenderer
|
<NodeRenderer
|
||||||
nodeTypes={nodeTypes}
|
nodeTypes={nodeTypes}
|
||||||
onElementClick={onElementClick}
|
onElementClick={onElementClick}
|
||||||
|
onNodeDoubleClick={onNodeDoubleClick}
|
||||||
onNodeMouseEnter={onNodeMouseEnter}
|
onNodeMouseEnter={onNodeMouseEnter}
|
||||||
onNodeMouseMove={onNodeMouseMove}
|
onNodeMouseMove={onNodeMouseMove}
|
||||||
onNodeMouseLeave={onNodeMouseLeave}
|
onNodeMouseLeave={onNodeMouseLeave}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ interface NodeRendererProps {
|
|||||||
nodeTypes: NodeTypesType;
|
nodeTypes: NodeTypesType;
|
||||||
selectNodesOnDrag: boolean;
|
selectNodesOnDrag: boolean;
|
||||||
onElementClick?: (event: MouseEvent, element: Node | Edge) => void;
|
onElementClick?: (event: MouseEvent, element: Node | Edge) => void;
|
||||||
|
onNodeDoubleClick?: (event: MouseEvent, element: Node) => void;
|
||||||
onNodeMouseEnter?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseEnter?: (event: MouseEvent, node: Node) => void;
|
||||||
onNodeMouseMove?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseMove?: (event: MouseEvent, node: Node) => void;
|
||||||
onNodeMouseLeave?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseLeave?: (event: MouseEvent, node: Node) => void;
|
||||||
@@ -93,6 +94,7 @@ const NodeRenderer = (props: NodeRendererProps) => {
|
|||||||
onMouseMove={props.onNodeMouseMove}
|
onMouseMove={props.onNodeMouseMove}
|
||||||
onMouseLeave={props.onNodeMouseLeave}
|
onMouseLeave={props.onNodeMouseLeave}
|
||||||
onContextMenu={props.onNodeContextMenu}
|
onContextMenu={props.onNodeContextMenu}
|
||||||
|
onNodeDoubleClick={props.onNodeDoubleClick}
|
||||||
onNodeDragStart={props.onNodeDragStart}
|
onNodeDragStart={props.onNodeDragStart}
|
||||||
onNodeDrag={props.onNodeDrag}
|
onNodeDrag={props.onNodeDrag}
|
||||||
onNodeDragStop={props.onNodeDragStop}
|
onNodeDragStop={props.onNodeDragStop}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ export interface ReactFlowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
|
|||||||
elements: Elements;
|
elements: Elements;
|
||||||
onElementClick?: (event: MouseEvent, element: Node | Edge) => void;
|
onElementClick?: (event: MouseEvent, element: Node | Edge) => void;
|
||||||
onElementsRemove?: (elements: Elements) => void;
|
onElementsRemove?: (elements: Elements) => void;
|
||||||
|
onNodeDoubleClick?: (event: MouseEvent, node: Node) => void;
|
||||||
onNodeMouseEnter?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseEnter?: (event: MouseEvent, node: Node) => void;
|
||||||
onNodeMouseMove?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseMove?: (event: MouseEvent, node: Node) => void;
|
||||||
onNodeMouseLeave?: (event: MouseEvent, node: Node) => void;
|
onNodeMouseLeave?: (event: MouseEvent, node: Node) => void;
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ export interface NodeComponentProps<T = any> {
|
|||||||
targetPosition?: Position;
|
targetPosition?: Position;
|
||||||
sourcePosition?: Position;
|
sourcePosition?: Position;
|
||||||
onClick?: (node: Node) => void;
|
onClick?: (node: Node) => void;
|
||||||
|
onNodeDoubleClick?: (node: Node) => void;
|
||||||
onMouseEnter?: (node: Node) => void;
|
onMouseEnter?: (node: Node) => void;
|
||||||
onMouseMove?: (node: Node) => void;
|
onMouseMove?: (node: Node) => void;
|
||||||
onMouseLeave?: (node: Node) => void;
|
onMouseLeave?: (node: Node) => void;
|
||||||
@@ -221,6 +222,7 @@ export interface WrapNodeProps<T = any> {
|
|||||||
isConnectable: boolean;
|
isConnectable: boolean;
|
||||||
selectNodesOnDrag: boolean;
|
selectNodesOnDrag: boolean;
|
||||||
onClick?: (event: ReactMouseEvent, node: Node) => void;
|
onClick?: (event: ReactMouseEvent, node: Node) => void;
|
||||||
|
onNodeDoubleClick?: (event: ReactMouseEvent, node: Node) => void;
|
||||||
onMouseEnter?: (event: ReactMouseEvent, node: Node) => void;
|
onMouseEnter?: (event: ReactMouseEvent, node: Node) => void;
|
||||||
onMouseMove?: (event: ReactMouseEvent, node: Node) => void;
|
onMouseMove?: (event: ReactMouseEvent, node: Node) => void;
|
||||||
onMouseLeave?: (event: ReactMouseEvent, node: Node) => void;
|
onMouseLeave?: (event: ReactMouseEvent, node: Node) => void;
|
||||||
|
|||||||
Reference in New Issue
Block a user