refactor(defaultNode/Edges): always trigger onNodesChange and onEdgesChange

This commit is contained in:
moklick
2022-01-20 17:55:27 +01:00
parent 2736492bb7
commit 0cfcf656a0
8 changed files with 157 additions and 48 deletions
+6 -6
View File
@@ -21,7 +21,7 @@ const selector = (s: ReactFlowState) => ({
connectionMode: s.connectionMode,
connectionStartHandle: s.connectionStartHandle,
connectOnClick: s.connectOnClick,
isControlled: s.isControlled,
hasDefaultEdges: s.hasDefaultEdges,
});
const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
@@ -49,7 +49,7 @@ const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
connectionMode,
connectionStartHandle,
connectOnClick,
isControlled,
hasDefaultEdges,
} = useStore(selector, shallow);
const handleId = id || null;
@@ -63,15 +63,15 @@ const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
...defaultEdgeOptions,
...params,
};
if (isControlled) {
if (hasDefaultEdges) {
const { edges } = store.getState();
store.setState({ edges: addEdge(edgeParams, edges) });
} else {
onConnectAction?.(edgeParams);
}
onConnectAction?.(edgeParams);
onConnect?.(edgeParams);
},
[isControlled, onConnectAction, onConnect]
[hasDefaultEdges, onConnectAction, onConnect]
);
const onMouseDownHandler = useCallback(
+1 -3
View File
@@ -111,9 +111,7 @@ const StoreUpdater = ({
const store = useStoreApi();
useEffect(() => {
if (defaultNodes) {
setDefaultNodesAndEdges(defaultNodes, defaultEdges);
}
setDefaultNodesAndEdges(defaultNodes, defaultEdges);
return () => {
reset();