@@ -154,10 +154,7 @@ export const useDropZone = ((...params: any[]) => {
154154 const element = target ? isTarget . getElement ( target ) : internalRef . current ;
155155
156156 if ( ! element ) return ;
157-
158- const controller = new AbortController ( ) ;
159- const options = { signal : controller . signal } ;
160-
157+
161158 const onEvent = ( event : DragEvent ) => {
162159 if ( ! event . dataTransfer ) return ;
163160
@@ -187,7 +184,9 @@ export const useDropZone = ((...params: any[]) => {
187184 return ;
188185 }
189186
190- if ( event . type === 'dragleave' && ( counterRef . current -= 1 ) === 0 ) {
187+ if ( event . type === 'dragleave' ) {
188+ counterRef . current -= 1 ;
189+ if ( counterRef . current !== 0 ) return ;
191190 setOvered ( false ) ;
192191 options . onLeave ?.( event ) ;
193192 return ;
@@ -196,13 +195,16 @@ export const useDropZone = ((...params: any[]) => {
196195 if ( event . type === 'dragover' ) options . onOver ?.( event ) ;
197196 } ;
198197
199- element . addEventListener ( 'dragenter' , onEvent , options ) ;
200- element . addEventListener ( 'dragover' , onEvent , options ) ;
201- element . addEventListener ( 'dragleave' , onEvent , options ) ;
202- element . addEventListener ( 'drop' , onEvent , options ) ;
198+ element . addEventListener ( 'dragenter' , onEvent as EventListener ) ;
199+ element . addEventListener ( 'dragover' , onEvent as EventListener ) ;
200+ element . addEventListener ( 'dragleave' , onEvent as EventListener ) ;
201+ element . addEventListener ( 'drop' , onEvent as EventListener ) ;
203202
204203 return ( ) => {
205- controller . abort ( ) ;
204+ element . removeEventListener ( 'dragenter' , onEvent as EventListener ) ;
205+ element . removeEventListener ( 'dragover' , onEvent as EventListener ) ;
206+ element . removeEventListener ( 'dragleave' , onEvent as EventListener ) ;
207+ element . removeEventListener ( 'drop' , onEvent as EventListener ) ;
206208 } ;
207209 } , [ target && isTarget . getRawElement ( target ) , internalRef . state ] ) ;
208210
0 commit comments