Merge pull request #5468 from xyflow/svelte-fix-onbeforeconnect

Svelte fix onbeforeconnect
This commit is contained in:
Moritz Klack
2025-08-19 15:57:35 +02:00
committed by GitHub
4 changed files with 15 additions and 8 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@xyflow/svelte': patch
---
Allow returning void, false and null from onbeforeconnect
@@ -50,7 +50,6 @@
edgeLookup
} = store;
let newEdge: Edge | undefined;
let edge = edgeLookup.get(edgeId)!;
const _onConnectStart: OnConnectStart = (evt, params) => {
@@ -86,13 +85,16 @@
onConnectStart: _onConnectStart,
onConnectEnd: onconnectend,
onConnect: (connection) => {
newEdge = { ...edge, ...connection };
newEdge = onbeforereconnect ? (onbeforereconnect(newEdge, edge) ?? undefined) : newEdge;
const reconnectedEdge = { ...edge, ...connection };
const newEdge = onbeforereconnect
? onbeforereconnect(reconnectedEdge, edge)
: reconnectedEdge;
if (newEdge) {
store.edges = store.edges.map((e) => (e.id === edge.id ? (newEdge as Edge) : e));
if (!newEdge) {
return;
}
store.edges = store.edges.map((e) => (e.id === edge.id ? (newEdge as Edge) : e));
onreconnect?.(edge, connection);
},
onReconnectEnd: (event, connectionState) => {
@@ -98,7 +98,7 @@
});
function onConnectExtended(connection: Connection) {
const edge = store.onbeforeconnect?.(connection) ?? connection;
const edge = store.onbeforeconnect ? store.onbeforeconnect(connection) : connection;
if (!edge) {
return;
+2 -2
View File
@@ -38,11 +38,11 @@ export type OnDelete<NodeType extends Node = Node, EdgeType extends Edge = Edge>
export type OnBeforeConnect<EdgeType extends Edge = Edge> = (
connection: Connection
) => EdgeType | Connection | void;
) => EdgeType | Connection | void | false | null;
export type OnBeforeReconnect<EdgeType extends Edge = Edge> = (
newEdge: EdgeType,
oldEdge: EdgeType
) => EdgeType | void;
) => EdgeType | void | false | null;
export type OnBeforeDelete<
NodeType extends Node = Node,
EdgeType extends Edge = Edge