@@ -51,7 +51,7 @@ const createProcess = (options: DropAreaOptions, mounted: React.RefObject<boolea
51
51
}
52
52
} ;
53
53
54
- const useDrop = ( options : DropAreaOptions = { } ) : DropAreaState => {
54
+ const useDrop = ( options : DropAreaOptions = { } , args = [ ] ) : DropAreaState => {
55
55
const { onFiles, onText, onUri} = options ;
56
56
const mounted = useRefMounted ( ) ;
57
57
const [ over , setOverRaw ] = useState < boolean > ( false ) ;
@@ -61,6 +61,7 @@ const useDrop = (options: DropAreaOptions = {}): DropAreaState => {
61
61
useEffect ( ( ) => {
62
62
const onDragOver = ( event ) => {
63
63
event . preventDefault ( ) ;
64
+ setOver ( true ) ;
64
65
} ;
65
66
66
67
const onDragEnter = ( event ) => {
@@ -69,7 +70,7 @@ const useDrop = (options: DropAreaOptions = {}): DropAreaState => {
69
70
} ;
70
71
71
72
const onDragLeave = ( ) => {
72
- setOver ( true ) ;
73
+ setOver ( false ) ;
73
74
} ;
74
75
75
76
const onDragExit = ( ) => {
@@ -86,25 +87,23 @@ const useDrop = (options: DropAreaOptions = {}): DropAreaState => {
86
87
process ( event . clipboardData , event ) ;
87
88
} ;
88
89
89
- window . addEventListener ( 'dragover' , onDragOver ) ;
90
- window . addEventListener ( 'dragenter' , onDragEnter ) ;
91
- window . addEventListener ( 'dragleave' , onDragLeave ) ;
92
- window . addEventListener ( 'dragexit' , onDragExit ) ;
93
- window . addEventListener ( 'drop' , onDrop ) ;
94
-
95
- if ( onText ) {
96
- window . addEventListener ( 'paste' , onPaste ) ;
97
- }
90
+ document . addEventListener ( 'dragover' , onDragOver ) ;
91
+ document . addEventListener ( 'dragenter' , onDragEnter ) ;
92
+ document . addEventListener ( 'dragleave' , onDragLeave ) ;
93
+ document . addEventListener ( 'dragexit' , onDragExit ) ;
94
+ document . addEventListener ( 'drop' , onDrop ) ;
95
+ if ( onText )
96
+ document . addEventListener ( 'paste' , onPaste ) ;
98
97
99
98
return ( ) => {
100
- window . removeEventListener ( 'dragover' , onDragOver ) ;
101
- window . removeEventListener ( 'dragenter' , onDragEnter ) ;
102
- window . removeEventListener ( 'dragleave' , onDragLeave ) ;
103
- window . removeEventListener ( 'dragexit' , onDragExit ) ;
104
- window . removeEventListener ( 'drop' , onDrop ) ;
105
- window . removeEventListener ( 'paste' , onPaste ) ;
99
+ document . removeEventListener ( 'dragover' , onDragOver ) ;
100
+ document . removeEventListener ( 'dragenter' , onDragEnter ) ;
101
+ document . removeEventListener ( 'dragleave' , onDragLeave ) ;
102
+ document . removeEventListener ( 'dragexit' , onDragExit ) ;
103
+ document . removeEventListener ( 'drop' , onDrop ) ;
104
+ document . removeEventListener ( 'paste' , onPaste ) ;
106
105
} ;
107
- } , [ process ] ) ;
106
+ } , [ process , ... args ] ) ;
108
107
109
108
return { over} ;
110
109
} ;
0 commit comments