Fix upload file input being re-rendered needlessly

This commit is contained in:
Eugen Rochko
2017-01-16 14:21:55 +01:00
parent 7d53ee73f3
commit 1a33e4042e
3 changed files with 9 additions and 6 deletions

View File

@ -12,7 +12,8 @@ const UploadButton = React.createClass({
disabled: React.PropTypes.bool,
onSelectFile: React.PropTypes.func.isRequired,
style: React.PropTypes.object,
key: React.PropTypes.number
resetFileKey: React.PropTypes.number,
intl: React.PropTypes.object.isRequired
},
mixins: [PureRenderMixin],
@ -32,12 +33,12 @@ const UploadButton = React.createClass({
},
render () {
const { intl } = this.props;
const { intl, resetFileKey, disabled } = this.props;
return (
<div style={this.props.style}>
<IconButton icon='photo' title={intl.formatMessage(messages.upload)} disabled={this.props.disabled} onClick={this.handleClick} size={24} />
<input key={this.props.key} ref={this.setRef} type='file' multiple={false} onChange={this.handleChange} disabled={this.props.disabled} style={{ display: 'none' }} />
<IconButton icon='photo' title={intl.formatMessage(messages.upload)} disabled={disabled} onClick={this.handleClick} size={24} />
<input key={resetFileKey} ref={this.setRef} type='file' multiple={false} onChange={this.handleChange} disabled={disabled} style={{ display: 'none' }} />
</div>
);
}