Merge pull request #3007 from bcakmakoglu/feat/update-node-internals-arr-arg

feat(core): allow array of ids as updateNodeInternals arg
This commit is contained in:
Moritz Klack
2023-05-11 21:52:26 +02:00
committed by GitHub
2 changed files with 17 additions and 5 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@reactflow/core': minor
---
Add `edgesUpdatable` prop to store state. Allows enabling/disabling edge updating globally.
@@ -6,13 +6,20 @@ import type { UpdateNodeInternals } from '../types';
function useUpdateNodeInternals(): UpdateNodeInternals { function useUpdateNodeInternals(): UpdateNodeInternals {
const store = useStoreApi(); const store = useStoreApi();
return useCallback<UpdateNodeInternals>((id: string) => { return useCallback<UpdateNodeInternals>((id: string | string[]) => {
const { domNode, updateNodeDimensions } = store.getState(); const { domNode, updateNodeDimensions } = store.getState();
const nodeElement = domNode?.querySelector(`.react-flow__node[data-id="${id}"]`) as HTMLDivElement;
if (nodeElement) { const updateIds = Array.isArray(id) ? id : [id];
requestAnimationFrame(() => updateNodeDimensions([{ id, nodeElement, forceUpdate: true }]));
} requestAnimationFrame(() => {
updateIds.forEach((updateId) => {
const nodeElement = domNode?.querySelector(`.react-flow__node[data-id="${updateId}"]`) as HTMLDivElement;
if (nodeElement) {
updateNodeDimensions([{ id: updateId, nodeElement, forceUpdate: true }]);
}
});
});
}, []); }, []);
} }