From b6ec8b70b20154a79c161462d80bd3d856a238da Mon Sep 17 00:00:00 2001 From: chang_su Date: Tue, 25 Oct 2022 14:43:44 +0800 Subject: [PATCH] chore: remove deleteSelectedElements method --- .../src/examples/UseReactFlow/index.tsx | 5 -- .../core/src/hooks/useGlobalKeyHandler.ts | 1 - packages/core/src/hooks/useReactFlow.ts | 80 ------------------- packages/core/src/types/instance.ts | 2 - 4 files changed, 88 deletions(-) diff --git a/examples/vite-app/src/examples/UseReactFlow/index.tsx b/examples/vite-app/src/examples/UseReactFlow/index.tsx index 87a610b5..eb83a88e 100644 --- a/examples/vite-app/src/examples/UseReactFlow/index.tsx +++ b/examples/vite-app/src/examples/UseReactFlow/index.tsx @@ -65,7 +65,6 @@ const UseZoomPanHelperFlow = () => { addEdges, getNodes, getEdges, - deleteSelectedElements, deleteElements } = useReactFlow(); @@ -120,10 +119,6 @@ const UseZoomPanHelperFlow = () => { deleteElements(selectedNodes, selectedEdges); }, [deleteElements, nodes, edges]) - const deleteSelectedElements2 = useCallback(() => { - deleteSelectedElements(); - }, [deleteSelectedElements]) - const deleteSomeElements = useCallback(() => { deleteElements(['2'],['e1-3']) }, []) diff --git a/packages/core/src/hooks/useGlobalKeyHandler.ts b/packages/core/src/hooks/useGlobalKeyHandler.ts index 52d918dc..345864a0 100644 --- a/packages/core/src/hooks/useGlobalKeyHandler.ts +++ b/packages/core/src/hooks/useGlobalKeyHandler.ts @@ -13,7 +13,6 @@ interface HookParams { export default ({ deleteKeyCode, multiSelectionKeyCode }: HookParams): void => { const store = useStoreApi(); const { deleteElements } = useReactFlow(); - // const { deleteSelectedElements } = useReactFlow(); const deleteKeyPressed = useKeyPress(deleteKeyCode); const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode); diff --git a/packages/core/src/hooks/useReactFlow.ts b/packages/core/src/hooks/useReactFlow.ts index 0e1ed6bb..92480da2 100644 --- a/packages/core/src/hooks/useReactFlow.ts +++ b/packages/core/src/hooks/useReactFlow.ts @@ -114,84 +114,6 @@ export default function useReactFlow(): ReactFlo }; }, []); - const deleteSelectedElements = useCallback(() => { - const { - nodeInternals, - edges, - hasDefaultNodes, - hasDefaultEdges, - onNodesDelete, - onEdgesDelete, - onNodesChange, - onEdgesChange, - } = store.getState(); - const nodes = Array.from(nodeInternals.values()); - const nodesToRemove = nodes.reduce((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((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((nodeIds, edgeIds) => { const { nodeInternals, @@ -279,7 +201,6 @@ export default function useReactFlow(): ReactFlo addNodes, addEdges, toObject, - deleteSelectedElements, deleteElements, }; }, [ @@ -293,7 +214,6 @@ export default function useReactFlow(): ReactFlo addNodes, addEdges, toObject, - deleteSelectedElements, deleteElements, ]); } diff --git a/packages/core/src/types/instance.ts b/packages/core/src/types/instance.ts index deffc86c..733b5392 100644 --- a/packages/core/src/types/instance.ts +++ b/packages/core/src/types/instance.ts @@ -24,7 +24,6 @@ export namespace Instance { export type GetEdge = (id: string) => Edge | undefined; export type AddEdges = (payload: Edge[] | Edge) => void; export type ToObject = () => ReactFlowJsonObject; - export type DeleteSelectedElements = () => void; export type DeleteElements = (nodeIds: string[], edgeIds: string[]) => void } @@ -39,6 +38,5 @@ export type ReactFlowInstance = { getEdge: Instance.GetEdge; toObject: Instance.ToObject; deleteElements: Instance.DeleteElements; - deleteSelectedElements: Instance.DeleteSelectedElements; viewportInitialized: boolean; } & Omit;