Merge pull request #5468 from xyflow/svelte-fix-onbeforeconnect
Svelte fix onbeforeconnect
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'@xyflow/svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Allow returning void, false and null from onbeforeconnect
|
||||||
@@ -50,7 +50,6 @@
|
|||||||
edgeLookup
|
edgeLookup
|
||||||
} = store;
|
} = store;
|
||||||
|
|
||||||
let newEdge: Edge | undefined;
|
|
||||||
let edge = edgeLookup.get(edgeId)!;
|
let edge = edgeLookup.get(edgeId)!;
|
||||||
|
|
||||||
const _onConnectStart: OnConnectStart = (evt, params) => {
|
const _onConnectStart: OnConnectStart = (evt, params) => {
|
||||||
@@ -86,13 +85,16 @@
|
|||||||
onConnectStart: _onConnectStart,
|
onConnectStart: _onConnectStart,
|
||||||
onConnectEnd: onconnectend,
|
onConnectEnd: onconnectend,
|
||||||
onConnect: (connection) => {
|
onConnect: (connection) => {
|
||||||
newEdge = { ...edge, ...connection };
|
const reconnectedEdge = { ...edge, ...connection };
|
||||||
newEdge = onbeforereconnect ? (onbeforereconnect(newEdge, edge) ?? undefined) : newEdge;
|
const newEdge = onbeforereconnect
|
||||||
|
? onbeforereconnect(reconnectedEdge, edge)
|
||||||
|
: reconnectedEdge;
|
||||||
|
|
||||||
if (newEdge) {
|
if (!newEdge) {
|
||||||
store.edges = store.edges.map((e) => (e.id === edge.id ? (newEdge as Edge) : e));
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
store.edges = store.edges.map((e) => (e.id === edge.id ? (newEdge as Edge) : e));
|
||||||
onreconnect?.(edge, connection);
|
onreconnect?.(edge, connection);
|
||||||
},
|
},
|
||||||
onReconnectEnd: (event, connectionState) => {
|
onReconnectEnd: (event, connectionState) => {
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
function onConnectExtended(connection: Connection) {
|
function onConnectExtended(connection: Connection) {
|
||||||
const edge = store.onbeforeconnect?.(connection) ?? connection;
|
const edge = store.onbeforeconnect ? store.onbeforeconnect(connection) : connection;
|
||||||
|
|
||||||
if (!edge) {
|
if (!edge) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ export type OnDelete<NodeType extends Node = Node, EdgeType extends Edge = Edge>
|
|||||||
|
|
||||||
export type OnBeforeConnect<EdgeType extends Edge = Edge> = (
|
export type OnBeforeConnect<EdgeType extends Edge = Edge> = (
|
||||||
connection: Connection
|
connection: Connection
|
||||||
) => EdgeType | Connection | void;
|
) => EdgeType | Connection | void | false | null;
|
||||||
export type OnBeforeReconnect<EdgeType extends Edge = Edge> = (
|
export type OnBeforeReconnect<EdgeType extends Edge = Edge> = (
|
||||||
newEdge: EdgeType,
|
newEdge: EdgeType,
|
||||||
oldEdge: EdgeType
|
oldEdge: EdgeType
|
||||||
) => EdgeType | void;
|
) => EdgeType | void | false | null;
|
||||||
export type OnBeforeDelete<
|
export type OnBeforeDelete<
|
||||||
NodeType extends Node = Node,
|
NodeType extends Node = Node,
|
||||||
EdgeType extends Edge = Edge
|
EdgeType extends Edge = Edge
|
||||||
|
|||||||
Reference in New Issue
Block a user