chore: remove deleteSelectedElements method
This commit is contained in:
@@ -65,7 +65,6 @@ const UseZoomPanHelperFlow = () => {
|
|||||||
addEdges,
|
addEdges,
|
||||||
getNodes,
|
getNodes,
|
||||||
getEdges,
|
getEdges,
|
||||||
deleteSelectedElements,
|
|
||||||
deleteElements
|
deleteElements
|
||||||
} = useReactFlow();
|
} = useReactFlow();
|
||||||
|
|
||||||
@@ -120,10 +119,6 @@ const UseZoomPanHelperFlow = () => {
|
|||||||
deleteElements(selectedNodes, selectedEdges);
|
deleteElements(selectedNodes, selectedEdges);
|
||||||
}, [deleteElements, nodes, edges])
|
}, [deleteElements, nodes, edges])
|
||||||
|
|
||||||
const deleteSelectedElements2 = useCallback(() => {
|
|
||||||
deleteSelectedElements();
|
|
||||||
}, [deleteSelectedElements])
|
|
||||||
|
|
||||||
const deleteSomeElements = useCallback(() => {
|
const deleteSomeElements = useCallback(() => {
|
||||||
deleteElements(['2'],['e1-3'])
|
deleteElements(['2'],['e1-3'])
|
||||||
}, [])
|
}, [])
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ interface HookParams {
|
|||||||
export default ({ deleteKeyCode, multiSelectionKeyCode }: HookParams): void => {
|
export default ({ deleteKeyCode, multiSelectionKeyCode }: HookParams): void => {
|
||||||
const store = useStoreApi();
|
const store = useStoreApi();
|
||||||
const { deleteElements } = useReactFlow();
|
const { deleteElements } = useReactFlow();
|
||||||
// const { deleteSelectedElements } = useReactFlow();
|
|
||||||
|
|
||||||
const deleteKeyPressed = useKeyPress(deleteKeyCode);
|
const deleteKeyPressed = useKeyPress(deleteKeyCode);
|
||||||
const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode);
|
const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode);
|
||||||
|
|||||||
@@ -114,84 +114,6 @@ export default function useReactFlow<NodeData = any, EdgeData = any>(): ReactFlo
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const deleteSelectedElements = useCallback<Instance.DeleteSelectedElements>(() => {
|
|
||||||
const {
|
|
||||||
nodeInternals,
|
|
||||||
edges,
|
|
||||||
hasDefaultNodes,
|
|
||||||
hasDefaultEdges,
|
|
||||||
onNodesDelete,
|
|
||||||
onEdgesDelete,
|
|
||||||
onNodesChange,
|
|
||||||
onEdgesChange,
|
|
||||||
} = store.getState();
|
|
||||||
const nodes = Array.from(nodeInternals.values());
|
|
||||||
const nodesToRemove = nodes.reduce<Node[]>((res, node) => {
|
|
||||||
const parentSelected = !node.selected && node.parentNode && res.find((n) => n.id === node.parentNode);
|
|
||||||
const deletable = typeof node.deletable === 'boolean' ? node.deletable : true;
|
|
||||||
if (deletable && (node.selected || parentSelected)) {
|
|
||||||
res.push(node);
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}, []);
|
|
||||||
const deletableEdges = edges.filter((e) => (typeof e.deletable === 'boolean' ? e.deletable : true));
|
|
||||||
const selectedEdges = deletableEdges.filter((e) => e.selected);
|
|
||||||
|
|
||||||
if (nodesToRemove || selectedEdges) {
|
|
||||||
const connectedEdges = getConnectedEdges(nodesToRemove, deletableEdges);
|
|
||||||
const edgesToRemove = [...selectedEdges, ...connectedEdges];
|
|
||||||
const edgeIdsToRemove = edgesToRemove.reduce<string[]>((res, edge) => {
|
|
||||||
if (!res.includes(edge.id)) {
|
|
||||||
res.push(edge.id);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
if (hasDefaultEdges || hasDefaultNodes) {
|
|
||||||
if (hasDefaultEdges) {
|
|
||||||
store.setState({
|
|
||||||
edges: edges.filter((e) => !edgeIdsToRemove.includes(e.id)),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasDefaultNodes) {
|
|
||||||
nodesToRemove.forEach((node) => {
|
|
||||||
nodeInternals.delete(node.id);
|
|
||||||
});
|
|
||||||
|
|
||||||
store.setState({
|
|
||||||
nodeInternals: new Map(nodeInternals),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (edgeIdsToRemove.length > 0) {
|
|
||||||
onEdgesDelete?.(edgesToRemove);
|
|
||||||
|
|
||||||
if (onEdgesChange) {
|
|
||||||
onEdgesChange(
|
|
||||||
edgeIdsToRemove.map((id) => ({
|
|
||||||
id,
|
|
||||||
type: 'remove',
|
|
||||||
}))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nodesToRemove.length > 0) {
|
|
||||||
onNodesDelete?.(nodesToRemove);
|
|
||||||
|
|
||||||
if (onNodesChange) {
|
|
||||||
const nodeChanges: NodeChange[] = nodesToRemove.map((n) => ({ id: n.id, type: 'remove' }));
|
|
||||||
onNodesChange(nodeChanges);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
store.setState({ nodesSelectionActive: false });
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const deleteElements = useCallback<Instance.DeleteElements>((nodeIds, edgeIds) => {
|
const deleteElements = useCallback<Instance.DeleteElements>((nodeIds, edgeIds) => {
|
||||||
const {
|
const {
|
||||||
nodeInternals,
|
nodeInternals,
|
||||||
@@ -279,7 +201,6 @@ export default function useReactFlow<NodeData = any, EdgeData = any>(): ReactFlo
|
|||||||
addNodes,
|
addNodes,
|
||||||
addEdges,
|
addEdges,
|
||||||
toObject,
|
toObject,
|
||||||
deleteSelectedElements,
|
|
||||||
deleteElements,
|
deleteElements,
|
||||||
};
|
};
|
||||||
}, [
|
}, [
|
||||||
@@ -293,7 +214,6 @@ export default function useReactFlow<NodeData = any, EdgeData = any>(): ReactFlo
|
|||||||
addNodes,
|
addNodes,
|
||||||
addEdges,
|
addEdges,
|
||||||
toObject,
|
toObject,
|
||||||
deleteSelectedElements,
|
|
||||||
deleteElements,
|
deleteElements,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ export namespace Instance {
|
|||||||
export type GetEdge<EdgeData> = (id: string) => Edge<EdgeData> | undefined;
|
export type GetEdge<EdgeData> = (id: string) => Edge<EdgeData> | undefined;
|
||||||
export type AddEdges<EdgeData> = (payload: Edge<EdgeData>[] | Edge<EdgeData>) => void;
|
export type AddEdges<EdgeData> = (payload: Edge<EdgeData>[] | Edge<EdgeData>) => void;
|
||||||
export type ToObject<NodeData = any, EdgeData = any> = () => ReactFlowJsonObject<NodeData, EdgeData>;
|
export type ToObject<NodeData = any, EdgeData = any> = () => ReactFlowJsonObject<NodeData, EdgeData>;
|
||||||
export type DeleteSelectedElements = () => void;
|
|
||||||
export type DeleteElements = (nodeIds: string[], edgeIds: string[]) => void
|
export type DeleteElements = (nodeIds: string[], edgeIds: string[]) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,6 +38,5 @@ export type ReactFlowInstance<NodeData = any, EdgeData = any> = {
|
|||||||
getEdge: Instance.GetEdge<EdgeData>;
|
getEdge: Instance.GetEdge<EdgeData>;
|
||||||
toObject: Instance.ToObject<NodeData, EdgeData>;
|
toObject: Instance.ToObject<NodeData, EdgeData>;
|
||||||
deleteElements: Instance.DeleteElements;
|
deleteElements: Instance.DeleteElements;
|
||||||
deleteSelectedElements: Instance.DeleteSelectedElements;
|
|
||||||
viewportInitialized: boolean;
|
viewportInitialized: boolean;
|
||||||
} & Omit<ViewportHelperFunctions, 'initialized'>;
|
} & Omit<ViewportHelperFunctions, 'initialized'>;
|
||||||
|
|||||||
Reference in New Issue
Block a user