@@ -23,13 +23,13 @@ export default class MultipleUploadFilePicketTab extends React.Component<IMultip
23
23
} ;
24
24
}
25
25
26
- private displayFileNames = ( filesResult ) => {
27
- const result = [ ] ;
28
- for ( var i = 0 ; i < filesResult . length ; i ++ ) {
29
- result . push ( < div key = { i . toString ( ) } className = { styles . localTabFilename } > { filesResult [ i ] . name } </ div > ) ;
26
+ private displayFileNames = ( filesResult ) => {
27
+ const result = [ ] ;
28
+ for ( var i = 0 ; i < filesResult . length ; i ++ ) {
29
+ result . push ( < div key = { i . toString ( ) } className = { styles . localTabFilename } > { filesResult [ i ] . name } </ div > ) ;
30
+ }
31
+ return result ;
30
32
}
31
- return result ;
32
- }
33
33
34
34
public render ( ) : React . ReactElement < IMultipleUploadFilePickerTabProps > {
35
35
const { filesResult } = this . state ;
@@ -38,15 +38,24 @@ export default class MultipleUploadFilePicketTab extends React.Component<IMultip
38
38
return (
39
39
< div className = { styles . tabContainer } >
40
40
< div className = { styles . tabHeaderContainer } >
41
- < h2 className = { styles . tabHeader } > { strings . UploadLinkLabel + " " + strings . OneDriveRootFolderName } </ h2 >
41
+ < h2 className = { styles . tabHeader } > { strings . UploadLinkLabel + " " + strings . OneDriveRootFolderName } </ h2 >
42
42
</ div >
43
43
< div className = { css ( styles . tab , styles . tabOffset ) } >
44
+
44
45
< DragDropFiles
45
46
iconName = "BulkUpload"
46
- onDrop = { this . _handleFileUpload }
47
+ onDrop = { this . _handleFileUploadDragDrop }
47
48
>
48
49
< div className = { styles . localTabDragDropFile } >
49
- { strings . UploadLinkLabel + " " + strings . OneDriveRootFolderName }
50
+ < input
51
+ className = { styles . localTabInput }
52
+ type = "file" id = "fileInput"
53
+ accept = { acceptedFilesExtensions } multiple = { true } onChange = { ( event : React . ChangeEvent < HTMLInputElement > ) => this . _handleFileUploadExplorer ( event ) }
54
+ />
55
+ < label className = { styles . localTabLabel } htmlFor = "fileInput" >
56
+ { strings . UploadLinkLabel + " " + strings . OneDriveRootFolderName }
57
+ </ label >
58
+
50
59
</ div >
51
60
</ DragDropFiles >
52
61
@@ -60,7 +69,7 @@ export default class MultipleUploadFilePicketTab extends React.Component<IMultip
60
69
< div className = { styles . actionButtons } >
61
70
< PrimaryButton
62
71
disabled = { ! filesResult }
63
- onClick = { ( ) => this . _handleSave ( ) } className = { styles . actionButton } > { strings . ListItemAttachmentslPlaceHolderButtonLabel + " " + strings . OneDriveRootFolderName } </ PrimaryButton >
72
+ onClick = { ( ) => this . _handleSave ( ) } className = { styles . actionButton } > { strings . ListItemAttachmentslPlaceHolderButtonLabel + " " + strings . OneDriveRootFolderName } </ PrimaryButton >
64
73
< DefaultButton onClick = { ( ) => this . _handleClose ( ) } className = { styles . actionButton } > { strings . CancelButtonLabel } </ DefaultButton >
65
74
</ div >
66
75
</ div >
@@ -69,24 +78,38 @@ export default class MultipleUploadFilePicketTab extends React.Component<IMultip
69
78
}
70
79
71
80
/**
72
- * Gets called when files are uploaded
81
+ * Gets called when files are uploaded via drag and drop
73
82
*/
74
- private _handleFileUpload = ( files ) => {
83
+ private _handleFileUploadDragDrop = ( files ) => {
84
+
75
85
if ( files . length < 1 ) {
76
86
return ;
77
- } else {
87
+ } else {
78
88
this . setState ( {
79
89
filesResult : files
80
90
} ) ;
81
91
}
82
92
}
83
93
94
+ /**
95
+ * Gets called when files are uploaded via file explorer
96
+ */
97
+ private _handleFileUploadExplorer = ( event : React . ChangeEvent < HTMLInputElement > ) => {
98
+ if ( ! event || event . target . files . length < 1 ) {
99
+ return ;
100
+ } else {
101
+ this . setState ( {
102
+ filesResult : event . target . files
103
+ } ) ;
104
+ }
105
+
106
+ }
107
+
84
108
/**
85
109
* Saves base64 encoded image back to property pane file picker
86
110
*/
87
111
private _handleSave = ( ) => {
88
- if ( this . state . filesResult )
89
- {
112
+ if ( this . state . filesResult ) {
90
113
const files : File [ ] = this . state . filesResult ;
91
114
for ( var i = 0 ; i < files . length ; i ++ ) {
92
115
const filePickerResult : IFilePickerResult = {
0 commit comments