about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorblackle <isabelle@blackle-mori.com>2017-01-08 21:00:13 -0500
committerblackle <isabelle@blackle-mori.com>2017-01-08 21:00:13 -0500
commit131bae89fd3ea601b032c9650edb3693801c9467 (patch)
treef4dcc5ebc52879ea95c4bcb0e14bf12f22e03d50 /app
parent2e71bb031b2dff90a2b0f9854bdcd804c069268a (diff)
Generate key for each input so we can upload the same file even after deleting
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/components/features/compose/components/upload_button.jsx5
-rw-r--r--app/assets/javascripts/components/features/compose/containers/upload_button_container.jsx1
2 files changed, 4 insertions, 2 deletions
diff --git a/app/assets/javascripts/components/features/compose/components/upload_button.jsx b/app/assets/javascripts/components/features/compose/components/upload_button.jsx
index 5250ff748..f00ef3f8f 100644
--- a/app/assets/javascripts/components/features/compose/components/upload_button.jsx
+++ b/app/assets/javascripts/components/features/compose/components/upload_button.jsx
@@ -11,7 +11,8 @@ const UploadButton = React.createClass({
   propTypes: {
     disabled: React.PropTypes.bool,
     onSelectFile: React.PropTypes.func.isRequired,
-    style: React.PropTypes.object
+    style: React.PropTypes.object,
+    key: React.PropTypes.number
   },
 
   mixins: [PureRenderMixin],
@@ -36,7 +37,7 @@ const UploadButton = React.createClass({
     return (
       <div style={this.props.style}>
         <IconButton icon='photo' title={intl.formatMessage(messages.upload)} disabled={this.props.disabled} onClick={this.handleClick} size={24} />
-        <input ref={this.setRef} type='file' multiple={false} onChange={this.handleChange} disabled={this.props.disabled} style={{ display: 'none' }} />
+        <input key={this.props.key} ref={this.setRef} type='file' multiple={false} onChange={this.handleChange} disabled={this.props.disabled} style={{ display: 'none' }} />
       </div>
     );
   }
diff --git a/app/assets/javascripts/components/features/compose/containers/upload_button_container.jsx b/app/assets/javascripts/components/features/compose/containers/upload_button_container.jsx
index 4154b0737..7afa7d355 100644
--- a/app/assets/javascripts/components/features/compose/containers/upload_button_container.jsx
+++ b/app/assets/javascripts/components/features/compose/containers/upload_button_container.jsx
@@ -4,6 +4,7 @@ import { uploadCompose } from '../../../actions/compose';
 
 const mapStateToProps = state => ({
   disabled: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size > 3 || state.getIn(['compose', 'media_attachments']).some(m => m.get('type') === 'video')),
+  key: Math.floor((Math.random() * 0x10000))
 });
 
 const mapDispatchToProps = dispatch => ({