1- import { useResizeObserver } from '@vueuse/core'
1+ import { useEventListener , useResizeObserver } from '@vueuse/core'
22import _ from 'es-toolkit/compat'
33import type { ToastMessageOptions } from 'primevue/toast'
44import { 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