feat(react): add onDelete handler
This commit is contained in:
@@ -196,6 +196,7 @@ const EdgesFlow = () => {
|
|||||||
onEdgeMouseEnter={onEdgeMouseEnter}
|
onEdgeMouseEnter={onEdgeMouseEnter}
|
||||||
onEdgeMouseMove={onEdgeMouseMove}
|
onEdgeMouseMove={onEdgeMouseMove}
|
||||||
onEdgeMouseLeave={onEdgeMouseLeave}
|
onEdgeMouseLeave={onEdgeMouseLeave}
|
||||||
|
onDelete={console.log}
|
||||||
>
|
>
|
||||||
<MiniMap />
|
<MiniMap />
|
||||||
<Controls />
|
<Controls />
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ type StoreUpdaterProps = Pick<
|
|||||||
| 'fitViewOptions'
|
| 'fitViewOptions'
|
||||||
| 'onNodesDelete'
|
| 'onNodesDelete'
|
||||||
| 'onEdgesDelete'
|
| 'onEdgesDelete'
|
||||||
|
| 'onDelete'
|
||||||
| 'onNodeDragStart'
|
| 'onNodeDragStart'
|
||||||
| 'onNodeDrag'
|
| 'onNodeDrag'
|
||||||
| 'onNodeDragStop'
|
| 'onNodeDragStop'
|
||||||
@@ -128,6 +129,7 @@ const StoreUpdater = ({
|
|||||||
fitViewOptions,
|
fitViewOptions,
|
||||||
onNodesDelete,
|
onNodesDelete,
|
||||||
onEdgesDelete,
|
onEdgesDelete,
|
||||||
|
onDelete,
|
||||||
onNodeDrag,
|
onNodeDrag,
|
||||||
onNodeDragStart,
|
onNodeDragStart,
|
||||||
onNodeDragStop,
|
onNodeDragStop,
|
||||||
@@ -192,6 +194,7 @@ const StoreUpdater = ({
|
|||||||
useDirectStoreUpdater('fitViewOnInitOptions', fitViewOptions, store.setState);
|
useDirectStoreUpdater('fitViewOnInitOptions', fitViewOptions, store.setState);
|
||||||
useDirectStoreUpdater('onNodesDelete', onNodesDelete, store.setState);
|
useDirectStoreUpdater('onNodesDelete', onNodesDelete, store.setState);
|
||||||
useDirectStoreUpdater('onEdgesDelete', onEdgesDelete, store.setState);
|
useDirectStoreUpdater('onEdgesDelete', onEdgesDelete, store.setState);
|
||||||
|
useDirectStoreUpdater('onDelete', onDelete, store.setState);
|
||||||
useDirectStoreUpdater('onNodeDrag', onNodeDrag, store.setState);
|
useDirectStoreUpdater('onNodeDrag', onNodeDrag, store.setState);
|
||||||
useDirectStoreUpdater('onNodeDragStart', onNodeDragStart, store.setState);
|
useDirectStoreUpdater('onNodeDragStart', onNodeDragStart, store.setState);
|
||||||
useDirectStoreUpdater('onNodeDragStop', onNodeDragStop, store.setState);
|
useDirectStoreUpdater('onNodeDragStop', onNodeDragStop, store.setState);
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ const ReactFlow = forwardRef<ReactFlowRefType, ReactFlowProps>(
|
|||||||
onNodeDragStop,
|
onNodeDragStop,
|
||||||
onNodesDelete,
|
onNodesDelete,
|
||||||
onEdgesDelete,
|
onEdgesDelete,
|
||||||
|
onDelete,
|
||||||
onSelectionChange,
|
onSelectionChange,
|
||||||
onSelectionDragStart,
|
onSelectionDragStart,
|
||||||
onSelectionDrag,
|
onSelectionDrag,
|
||||||
@@ -281,6 +282,7 @@ const ReactFlow = forwardRef<ReactFlowRefType, ReactFlowProps>(
|
|||||||
fitViewOptions={fitViewOptions}
|
fitViewOptions={fitViewOptions}
|
||||||
onNodesDelete={onNodesDelete}
|
onNodesDelete={onNodesDelete}
|
||||||
onEdgesDelete={onEdgesDelete}
|
onEdgesDelete={onEdgesDelete}
|
||||||
|
onDelete={onDelete}
|
||||||
onNodeDragStart={onNodeDragStart}
|
onNodeDragStart={onNodeDragStart}
|
||||||
onNodeDrag={onNodeDrag}
|
onNodeDrag={onNodeDrag}
|
||||||
onNodeDragStop={onNodeDragStop}
|
onNodeDragStop={onNodeDragStop}
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ export default function useReactFlow<NodeData = any, EdgeData = any>(): ReactFlo
|
|||||||
onEdgesDelete,
|
onEdgesDelete,
|
||||||
onNodesChange,
|
onNodesChange,
|
||||||
onEdgesChange,
|
onEdgesChange,
|
||||||
|
onDelete,
|
||||||
} = store.getState();
|
} = store.getState();
|
||||||
const { matchingNodes, matchingEdges } = getElementsToRemove<Node, Edge>({
|
const { matchingNodes, matchingEdges } = getElementsToRemove<Node, Edge>({
|
||||||
nodesToRemove: nodesDeleted || [],
|
nodesToRemove: nodesDeleted || [],
|
||||||
@@ -171,6 +172,8 @@ export default function useReactFlow<NodeData = any, EdgeData = any>(): ReactFlo
|
|||||||
onNodesChange(nodeChanges);
|
onNodesChange(nodeChanges);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onDelete?.({ nodes: matchingNodes, edges: matchingEdges });
|
||||||
}
|
}
|
||||||
|
|
||||||
return { deletedNodes: matchingNodes, deletedEdges: matchingEdges };
|
return { deletedNodes: matchingNodes, deletedEdges: matchingEdges };
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import type {
|
|||||||
FitViewOptions,
|
FitViewOptions,
|
||||||
OnNodesDelete,
|
OnNodesDelete,
|
||||||
OnEdgesDelete,
|
OnEdgesDelete,
|
||||||
|
OnDelete,
|
||||||
OnNodesChange,
|
OnNodesChange,
|
||||||
OnEdgesChange,
|
OnEdgesChange,
|
||||||
NodeDragHandler,
|
NodeDragHandler,
|
||||||
@@ -70,6 +71,7 @@ export type ReactFlowProps = Omit<HTMLAttributes<HTMLDivElement>, 'onError'> & {
|
|||||||
onEdgesChange?: OnEdgesChange;
|
onEdgesChange?: OnEdgesChange;
|
||||||
onNodesDelete?: OnNodesDelete;
|
onNodesDelete?: OnNodesDelete;
|
||||||
onEdgesDelete?: OnEdgesDelete;
|
onEdgesDelete?: OnEdgesDelete;
|
||||||
|
onDelete?: OnDelete;
|
||||||
onSelectionDragStart?: SelectionDragHandler;
|
onSelectionDragStart?: SelectionDragHandler;
|
||||||
onSelectionDrag?: SelectionDragHandler;
|
onSelectionDrag?: SelectionDragHandler;
|
||||||
onSelectionDragStop?: SelectionDragHandler;
|
onSelectionDragStop?: SelectionDragHandler;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ export type OnEdgesChange = (changes: EdgeChange[]) => void;
|
|||||||
|
|
||||||
export type OnNodesDelete = (nodes: Node[]) => void;
|
export type OnNodesDelete = (nodes: Node[]) => void;
|
||||||
export type OnEdgesDelete = (edges: Edge[]) => void;
|
export type OnEdgesDelete = (edges: Edge[]) => void;
|
||||||
|
export type OnDelete = (params: { nodes: Node[]; edges: Edge[] }) => void;
|
||||||
|
|
||||||
export type NodeTypes = { [key: string]: ComponentType<NodeProps> };
|
export type NodeTypes = { [key: string]: ComponentType<NodeProps> };
|
||||||
export type NodeTypesWrapped = { [key: string]: MemoExoticComponent<ComponentType<WrapNodeProps>> };
|
export type NodeTypesWrapped = { [key: string]: MemoExoticComponent<ComponentType<WrapNodeProps>> };
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import type {
|
|||||||
OnEdgesDelete,
|
OnEdgesDelete,
|
||||||
OnSelectionChangeFunc,
|
OnSelectionChangeFunc,
|
||||||
UnselectNodesAndEdgesParams,
|
UnselectNodesAndEdgesParams,
|
||||||
|
OnDelete,
|
||||||
} from '.';
|
} from '.';
|
||||||
|
|
||||||
export type ReactFlowStore = {
|
export type ReactFlowStore = {
|
||||||
@@ -118,6 +119,7 @@ export type ReactFlowStore = {
|
|||||||
|
|
||||||
onNodesDelete?: OnNodesDelete;
|
onNodesDelete?: OnNodesDelete;
|
||||||
onEdgesDelete?: OnEdgesDelete;
|
onEdgesDelete?: OnEdgesDelete;
|
||||||
|
onDelete?: OnDelete;
|
||||||
onError?: OnError;
|
onError?: OnError;
|
||||||
|
|
||||||
// event handlers
|
// event handlers
|
||||||
|
|||||||
Reference in New Issue
Block a user