File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -66,12 +66,16 @@ class AjaxUploader extends Component<UploadProps> {
66
66
}
67
67
} ;
68
68
69
- onDataTransferFiles = async ( dataTransfer : DataTransfer ) => {
69
+ onDataTransferFiles = async ( dataTransfer : DataTransfer , existFileCallback ?: ( ) => void ) => {
70
70
const { multiple, accept, directory } = this . props ;
71
71
72
72
const items : DataTransferItem [ ] = [ ...( dataTransfer . items || [ ] ) ] ;
73
73
let files : File [ ] = [ ...( dataTransfer . files || [ ] ) ] ;
74
74
75
+ if ( files . length > 0 || items . some ( item => item . kind === 'file' ) ) {
76
+ existFileCallback ?.( ) ;
77
+ }
78
+
75
79
if ( directory ) {
76
80
files = await traverseFileTree ( Array . prototype . slice . call ( items ) , ( _file : RcFile ) =>
77
81
attrAccept ( _file , this . props . accept ) ,
@@ -97,7 +101,9 @@ class AjaxUploader extends Component<UploadProps> {
97
101
98
102
if ( e . type === 'paste' ) {
99
103
const clipboardData = ( e as ClipboardEvent ) . clipboardData ;
100
- return this . onDataTransferFiles ( clipboardData ) ;
104
+ return this . onDataTransferFiles ( clipboardData , ( ) => {
105
+ e . preventDefault ( ) ;
106
+ } ) ;
101
107
}
102
108
} ;
103
109
Original file line number Diff line number Diff line change @@ -735,6 +735,12 @@ describe('uploader', () => {
735
735
} ,
736
736
] ,
737
737
} ;
738
+
739
+ const preventDefaultSpy = jest . spyOn ( Event . prototype , 'preventDefault' ) ;
740
+
741
+ fireEvent . dragOver ( input ) ;
742
+ expect ( preventDefaultSpy ) . toHaveBeenCalledTimes ( 1 ) ;
743
+
738
744
fireEvent . drop ( input , { dataTransfer : { items : [ makeDataTransferItemAsync ( files ) ] } } ) ;
739
745
const mockStart = jest . fn ( ) ;
740
746
handlers . onStart = mockStart ;
@@ -743,6 +749,8 @@ describe('uploader', () => {
743
749
expect ( mockStart . mock . calls . length ) . toBe ( 1 ) ;
744
750
done ( ) ;
745
751
} , 1000 ) ;
752
+
753
+ preventDefaultSpy . mockRestore ( ) ;
746
754
} ) ;
747
755
748
756
it ( 'unaccepted type files to upload will not trigger onStart when select directory' , done => {
You can’t perform that action at this time.
0 commit comments