Skip to content

Commit b31926b

Browse files
committed
refactor: use the useEventListener to handle possible listener cleanup on the canvas element.
1 parent 0750547 commit b31926b

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

src/scripts/app.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useResizeObserver } from '@vueuse/core'
1+
import { useEventListener, useResizeObserver } from '@vueuse/core'
22
import _ from 'es-toolkit/compat'
33
import type { ToastMessageOptions } from 'primevue/toast'
44
import { reactive, unref } from 'vue'
@@ -532,7 +532,7 @@ export class ComfyApp {
532532
*/
533533
private addDropHandler() {
534534
// Get prompt from dropped PNG or json
535-
document.addEventListener('drop', async (event: DragEvent) => {
535+
useEventListener(document, 'drop', async (event: DragEvent) => {
536536
try {
537537
event.preventDefault()
538538
event.stopPropagation()
@@ -553,31 +553,31 @@ export class ComfyApp {
553553
})
554554

555555
// Always clear over node on drag leave
556-
this.canvasEl.addEventListener('dragleave', async () => {
557-
if (this.dragOverNode) {
558-
this.dragOverNode = null
559-
this.graph.setDirtyCanvas(false, true)
560-
}
556+
useEventListener(this.canvasElRef, 'dragleave', async () => {
557+
if (!this.dragOverNode) return
558+
this.dragOverNode = null
559+
this.graph.setDirtyCanvas(false, true)
561560
})
562561

563562
// Add handler for dropping onto a specific node
564-
this.canvasEl.addEventListener(
563+
useEventListener(
564+
this.canvasElRef,
565565
'dragover',
566-
(e) => {
567-
this.canvas.adjustMouseEvent(e)
568-
const node = this.graph.getNodeOnPos(e.canvasX, e.canvasY)
569-
if (node) {
570-
if (node.onDragOver && node.onDragOver(e)) {
571-
this.dragOverNode = node
572-
573-
// dragover event is fired very frequently, run this on an animation frame
574-
requestAnimationFrame(() => {
575-
this.graph.setDirtyCanvas(false, true)
576-
})
577-
return
578-
}
566+
(event: DragEvent) => {
567+
this.canvas.adjustMouseEvent(event)
568+
const node = this.graph.getNodeOnPos(event.canvasX, event.canvasY)
569+
570+
if (!node?.onDragOver?.(event)) {
571+
this.dragOverNode = null
572+
return
579573
}
580-
this.dragOverNode = null
574+
575+
this.dragOverNode = node
576+
577+
// dragover event is fired very frequently, run this on an animation frame
578+
requestAnimationFrame(() => {
579+
this.graph.setDirtyCanvas(false, true)
580+
})
581581
},
582582
false
583583
)

0 commit comments

Comments
 (0)