feat(nodes): add option to pass a valid target pos / valid source pos func to nodes

* edge updater cannot discern a valid connection by itself so we allow an option to pass a valid connection func to nodes which will then be used to determine if updating connection is valid
* it is optional, by default all connections are valid

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
Braks
2021-11-25 15:21:36 +01:00
parent 95fc013613
commit 9e941966a4
13 changed files with 83 additions and 42 deletions
+2 -4
View File
@@ -43,16 +43,14 @@ const onEdgeUpdaterTargetMouseDown = (event: MouseEvent) => handleEdgeUpdater(ev
const handleEdgeUpdater = (event: MouseEvent, isSourceHandle: boolean) => {
const nodeId = isSourceHandle ? props.edge.target : props.edge.source
const handleId = (isSourceHandle ? props.edge.targetHandle : props.edge.sourceHandle) ?? ''
const isValidConnection = () => true
const isTarget = isSourceHandle
store.hooks.edgeUpdateStart.trigger({ event, edge: props.edge })
handler(
event,
handleId,
nodeId,
isTarget,
isValidConnection,
isSourceHandle,
undefined,
isSourceHandle ? 'target' : 'source',
(connection) => store.hooks.edgeUpdate.trigger({ edge: props.edge, connection }),
() => store.hooks.edgeUpdateEnd.trigger({ event, edge: props.edge }),