Skip to content

Commit e04bf8a

Browse files
committed
Make linkconnector use the canonical linkconnector
1 parent f271fed commit e04bf8a

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/renderer/core/canvas/links/linkConnectorAdapter.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import type { LGraph } from '@/lib/litegraph/src/LGraph'
22
import type { NodeId } from '@/lib/litegraph/src/LGraphNode'
33
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'
55
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'
77
import { app } from '@/scripts/app'
88

99
// Keep one adapter per graph so rendering and interaction share state.
@@ -17,16 +17,11 @@ const adapterByGraph = new WeakMap<LGraph, LinkConnectorAdapter>()
1717
* - Preserves existing Vue composable behavior.
1818
*/
1919
export class LinkConnectorAdapter {
20-
readonly linkConnector: LinkConnector
21-
2220
constructor(
2321
/** 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+
) {}
3025

3126
/**
3227
* The currently rendered/dragged links, typed for consumer use.
@@ -133,6 +128,11 @@ export class LinkConnectorAdapter {
133128
this.linkConnector.disconnectLinks()
134129
}
135130

131+
/** Drops moving links onto the canvas (no target). */
132+
dropOnCanvas(event: CanvasPointerEvent): void {
133+
this.linkConnector.dropOnNothing(event)
134+
}
135+
136136
/** Resets connector state and clears any temporary flags. */
137137
reset(): void {
138138
this.linkConnector.reset()
@@ -141,11 +141,12 @@ export class LinkConnectorAdapter {
141141

142142
/** Convenience creator using the current app canvas graph. */
143143
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
146147
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)
149150
adapterByGraph.set(graph, adapter)
150151
}
151152
return adapter

0 commit comments

Comments
 (0)