chore(middleware): cleanup

This commit is contained in:
moklick
2025-10-08 21:47:35 +02:00
parent 3c0a625d7e
commit 88c5480bf5
4 changed files with 50 additions and 58 deletions
@@ -0,0 +1,24 @@
import { useEffect, useState } from 'react';
import type { NodeChange } from '@xyflow/system';
import { useStoreApi } from './useStore';
import type { Edge, Node } from '../types';
export function experimental_useOnNodesChangeMiddleware<NodeType extends Node = Node>(
fn: (changes: NodeChange<NodeType>[]) => NodeChange<NodeType>[]
) {
const store = useStoreApi<NodeType, Edge>();
const [symbol] = useState(() => Symbol());
useEffect(() => {
const { onNodesChangeMiddlewareMap } = store.getState();
onNodesChangeMiddlewareMap.set(symbol, fn);
}, [fn]);
useEffect(() => {
const { onNodesChangeMiddlewareMap } = store.getState();
return () => {
onNodesChangeMiddlewareMap.delete(symbol);
};
}, []);
}