@@ -52,65 +52,58 @@ var renderFileUpload = function (_React$Component) {
5252
5353 _this . state = {
5454 file : false ,
55- filename : '' ,
5655 fileError : '' ,
5756 data : '' ,
5857 filetype : '' ,
5958 accept : generateAcceptText ( props )
6059 } ;
60+ _this . getFileKey = _this . getFileKey . bind ( _this ) ;
6161 return _this ;
6262 }
6363
6464 _createClass ( renderFileUpload , [ {
65- key : 'componentWillMount' ,
66- value : function componentWillMount ( ) {
67- var _props = this . props ,
68- file = _props . file ,
69- input = _props . input ;
65+ key : 'getFileKey' ,
66+ value : function getFileKey ( mime ) {
67+ var mimeTypes = this . props . mimeTypes ;
7068
71- if ( file ) {
72- this . setState ( {
73- filename : file . filename ,
74- data : file . data ,
75- filetype : file . filetype
76- } ) ;
77- }
78- input . onChange ( file ? file . filename : '' ) ;
69+ var key = '' ;
70+ Object . keys ( mimeTypes ) . forEach ( function ( k ) {
71+ if ( mimeTypes [ k ] . includes ( mime ) ) {
72+ key = k ;
73+ }
74+ } ) ;
75+ return key ? 'file-' + key : '' ;
7976 }
8077 } , {
8178 key : 'render' ,
8279 value : function render ( ) {
8380 var _this2 = this ;
8481
85- var _props2 = this . props ,
86- className = _props2 . className ,
87- globalError = _props2 . globalError ,
88- name = _props2 . name ,
89- placeholder = _props2 . placeholder ,
90- label = _props2 . label ,
91- required = _props2 . required ,
92- help = _props2 . help ,
93- input = _props2 . input ,
94- onUpload = _props2 . onUpload ,
95- maxFileSize = _props2 . maxFileSize ,
96- disabled = _props2 . disabled ,
97- _props2 $meta = _props2 . meta ,
98- touched = _props2 $meta. touched ,
99- error = _props2 $meta. error ,
100- review = _props2 . review ,
101- fileTypes = _props2 . fileTypes ,
102- txtRemove = _props2 . txtRemove ,
103- txtUpload = _props2 . txtUpload ,
104- errorFileType = _props2 . errorFileType ,
105- errorFileSize = _props2 . errorFileSize ,
106- errorReject = _props2 . errorReject ;
82+ var _props = this . props ,
83+ className = _props . className ,
84+ globalError = _props . globalError ,
85+ name = _props . name ,
86+ placeholder = _props . placeholder ,
87+ label = _props . label ,
88+ required = _props . required ,
89+ help = _props . help ,
90+ input = _props . input ,
91+ onUpload = _props . onUpload ,
92+ maxFileSize = _props . maxFileSize ,
93+ disabled = _props . disabled ,
94+ _props $meta = _props . meta ,
95+ touched = _props $meta. touched ,
96+ error = _props $meta. error ,
97+ review = _props . review ,
98+ fileTypes = _props . fileTypes ,
99+ txtRemove = _props . txtRemove ,
100+ txtUpload = _props . txtUpload ,
101+ errorFileType = _props . errorFileType ,
102+ errorFileSize = _props . errorFileSize ,
103+ errorReject = _props . errorReject ;
107104 var _state = this . state ,
108105 accept = _state . accept ,
109- fileError = _state . fileError ,
110- data = _state . data ,
111- filetype = _state . filetype ,
112- filename = _state . filename ;
113-
106+ fileError = _state . fileError ;
114107
115108 return _react2 . default . createElement (
116109 'div' ,
@@ -139,15 +132,15 @@ var renderFileUpload = function (_React$Component) {
139132 _react2 . default . createElement (
140133 'a' ,
141134 {
142- className : 'btn btn-default ' + ( review ? 'review-page' : '' ) + ' ' + ( filetype === 'application/pdf' ? 'link-pdf' : 'link-doc' ) ,
135+ className : 'btn btn-default ' + ( review ? 'review-page' : '' ) + ' ' + this . getFileKey ( input . value . filetype ) ,
143136 type : 'button' ,
144- href : data ,
137+ href : input . value . path ? input . value . path : '' ,
145138 target : '_blank'
146139 } ,
147140 _react2 . default . createElement (
148141 'span' ,
149142 null ,
150- filename
143+ input . value . filename
151144 )
152145 ) ,
153146 input . value && ! review && _react2 . default . createElement (
@@ -182,21 +175,14 @@ var renderFileUpload = function (_React$Component) {
182175 onDrop : function onDrop ( acceptedFiles , rejectedFiles ) {
183176 if ( acceptedFiles . length > 0 ) {
184177 _this2 . setState ( { fileError : '' } ) ;
185- var _filename = acceptedFiles [ 0 ] . name ;
186- _this2 . setState ( {
187- filename : _filename ,
188- data : acceptedFiles [ 0 ] . preview ,
189- filetype : acceptedFiles [ 0 ] . type
190- } ) ;
191- input . onChange ( _filename ) ;
192- onUpload ( {
193- name : input . name ,
194- file : {
195- filename : _filename ,
196- data : acceptedFiles [ 0 ] . preview ,
197- filetype : acceptedFiles [ 0 ] . type
198- }
199- } ) ;
178+ var filename = acceptedFiles [ 0 ] . name ;
179+ var reader = new FileReader ( ) ;
180+ reader . readAsDataURL ( acceptedFiles [ 0 ] ) ;
181+ reader . onloadend = function ( ) {
182+ var value = { filename : filename , path : acceptedFiles [ 0 ] . preview , data : reader . result , filetype : acceptedFiles [ 0 ] . type } ;
183+ input . onChange ( value ) ;
184+ onUpload ( value ) ;
185+ } ;
200186 } else {
201187 input . onChange ( '' ) ;
202188 if ( ! accept . includes ( rejectedFiles [ 0 ] . type ) ) {
0 commit comments