1
1
import type { LGraph } from '@/lib/litegraph/src/LGraph'
2
2
import type { NodeId } from '@/lib/litegraph/src/LGraphNode'
3
3
import type { RerouteId } from '@/lib/litegraph/src/Reroute'
4
- import { LinkConnector } from '@/lib/litegraph/src/canvas/LinkConnector'
4
+ import type { LinkConnector } from '@/lib/litegraph/src/canvas/LinkConnector'
5
5
import type { RenderLink } from '@/lib/litegraph/src/canvas/RenderLink'
6
- import type { ConnectingLink } from '@/lib/litegraph/src/interfaces '
6
+ import type { CanvasPointerEvent } from '@/lib/litegraph/src/types/events '
7
7
import { app } from '@/scripts/app'
8
8
9
9
// Keep one adapter per graph so rendering and interaction share state.
@@ -17,16 +17,11 @@ const adapterByGraph = new WeakMap<LGraph, LinkConnectorAdapter>()
17
17
* - Preserves existing Vue composable behavior.
18
18
*/
19
19
export class LinkConnectorAdapter {
20
- readonly linkConnector : LinkConnector
21
-
22
20
constructor (
23
21
/** Network the links belong to (typically `app.canvas.graph`). */
24
- readonly network : LGraph
25
- ) {
26
- // No-op legacy setter to avoid side effects when connectors update
27
- const setConnectingLinks : ( value : ConnectingLink [ ] ) => void = ( ) => { }
28
- this . linkConnector = new LinkConnector ( setConnectingLinks )
29
- }
22
+ readonly network : LGraph ,
23
+ readonly linkConnector : LinkConnector
24
+ ) { }
30
25
31
26
/**
32
27
* The currently rendered/dragged links, typed for consumer use.
@@ -133,6 +128,11 @@ export class LinkConnectorAdapter {
133
128
this . linkConnector . disconnectLinks ( )
134
129
}
135
130
131
+ /** Drops moving links onto the canvas (no target). */
132
+ dropOnCanvas ( event : CanvasPointerEvent ) : void {
133
+ this . linkConnector . dropOnNothing ( event )
134
+ }
135
+
136
136
/** Resets connector state and clears any temporary flags. */
137
137
reset ( ) : void {
138
138
this . linkConnector . reset ( )
@@ -141,11 +141,12 @@ export class LinkConnectorAdapter {
141
141
142
142
/** Convenience creator using the current app canvas graph. */
143
143
export function createLinkConnectorAdapter ( ) : LinkConnectorAdapter | null {
144
- const graph = app . canvas ?. graph as LGraph | undefined
145
- if ( ! graph ) return null
144
+ const graph = app . canvas ?. graph
145
+ const connector = app . canvas ?. linkConnector
146
+ if ( ! graph || ! connector ) return null
146
147
let adapter = adapterByGraph . get ( graph )
147
- if ( ! adapter ) {
148
- adapter = new LinkConnectorAdapter ( graph )
148
+ if ( ! adapter || adapter . linkConnector !== connector ) {
149
+ adapter = new LinkConnectorAdapter ( graph , connector )
149
150
adapterByGraph . set ( graph , adapter )
150
151
}
151
152
return adapter
0 commit comments