From 8e7ee88ca3241a0a71682389cb8886eef3995501 Mon Sep 17 00:00:00 2001
From: Peter
Date: Thu, 5 Oct 2023 12:24:35 +0200
Subject: [PATCH] feat(react) added getConnectedEdges to useReactFlow
---
packages/react/src/hooks/useReactFlow.ts | 17 +++++++++++++++++
packages/react/src/types/instance.ts | 1 +
2 files changed, 18 insertions(+)
diff --git a/packages/react/src/hooks/useReactFlow.ts b/packages/react/src/hooks/useReactFlow.ts
index 45a8dbe1..cec31cc8 100644
--- a/packages/react/src/hooks/useReactFlow.ts
+++ b/packages/react/src/hooks/useReactFlow.ts
@@ -223,6 +223,21 @@ export default function useReactFlow(): ReactFlo
[]
);
+ const getConnectedEdges = useCallback((node) => {
+ const edges = store.getState().edges;
+
+ const nodeIds = new Set();
+ if (typeof node === 'string') {
+ nodeIds.add(node);
+ } else if (node.length >= 1) {
+ node.forEach((n) => {
+ nodeIds.add(n.id);
+ });
+ }
+
+ return edges.filter((edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target));
+ }, []);
+
return useMemo(() => {
return {
...viewportHelper,
@@ -238,6 +253,7 @@ export default function useReactFlow(): ReactFlo
deleteElements,
getIntersectingNodes,
isNodeIntersecting,
+ getConnectedEdges,
};
}, [
viewportHelper,
@@ -253,5 +269,6 @@ export default function useReactFlow(): ReactFlo
deleteElements,
getIntersectingNodes,
isNodeIntersecting,
+ getConnectedEdges,
]);
}
diff --git a/packages/react/src/types/instance.ts b/packages/react/src/types/instance.ts
index 239d339f..0bc61617 100644
--- a/packages/react/src/types/instance.ts
+++ b/packages/react/src/types/instance.ts
@@ -39,6 +39,7 @@ export namespace Instance {
area: Rect,
partially?: boolean
) => boolean;
+ export type getConnectedEdges = (id: string | (Partial & { id: Node['id'] })[]) => Edge[];
}
export type ReactFlowInstance = {