From 0d497b65693a369417d57716e7aa900cfbcd104c Mon Sep 17 00:00:00 2001 From: datoslabs <39677444+datoslabs@users.noreply.github.com> Date: Mon, 4 Oct 2021 16:20:44 -0400 Subject: [PATCH] Add optional node dragHandle prop as DraggableCore handle. #1413 --- src/components/Nodes/wrapNode.tsx | 3 +++ src/container/NodeRenderer/index.tsx | 1 + src/types/index.ts | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/src/components/Nodes/wrapNode.tsx b/src/components/Nodes/wrapNode.tsx index 8161eb10..a6902416 100644 --- a/src/components/Nodes/wrapNode.tsx +++ b/src/components/Nodes/wrapNode.tsx @@ -48,6 +48,7 @@ export default (NodeComponent: ComponentType) => { snapGrid, isDragging, resizeObserver, + dragHandle, }: WrapNodeProps) => { const updateNodeDimensions = useStoreActions((actions) => actions.updateNodeDimensions); const addSelectedElements = useStoreActions((actions) => actions.addSelectedElements); @@ -241,6 +242,7 @@ export default (NodeComponent: ComponentType) => { nodeRef={nodeElement} grid={grid} enableUserSelectHack={false} + handle={dragHandle} >
) => { sourcePosition={sourcePosition} targetPosition={targetPosition} isDragging={isDragging} + dragHandle={dragHandle} />
diff --git a/src/container/NodeRenderer/index.tsx b/src/container/NodeRenderer/index.tsx index 99cda713..8b10d69a 100644 --- a/src/container/NodeRenderer/index.tsx +++ b/src/container/NodeRenderer/index.tsx @@ -104,6 +104,7 @@ const NodeRenderer = (props: NodeRendererProps) => { isSelectable={isSelectable} isConnectable={isConnectable} resizeObserver={resizeObserver} + dragHandle={node.dragHandle} /> ); })} diff --git a/src/types/index.ts b/src/types/index.ts index 8006aa1a..8bb678ea 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -49,6 +49,7 @@ export interface Node { draggable?: boolean; selectable?: boolean; connectable?: boolean; + dragHandle?: string; } export enum ArrowHeadType { @@ -186,6 +187,7 @@ export interface NodeProps { targetPosition?: Position; sourcePosition?: Position; isDragging?: boolean; + dragHandle?: string; } export interface NodeComponentProps { @@ -210,6 +212,7 @@ export interface NodeComponentProps { onNodeDragStop?: (node: Node) => void; style?: CSSProperties; isDragging?: boolean; + dragHandle?: string; } export interface WrapNodeProps { @@ -243,6 +246,7 @@ export interface WrapNodeProps { snapGrid?: SnapGrid; isDragging?: boolean; resizeObserver: ResizeObserver | null; + dragHandle?: string; } export type FitViewParams = {