]> cat aescling's git repositories - mastodon.git/commitdiff
Fix #58 - disable compose form while image is uploading
authorEugen Rochko <eugen@zeonfederated.com>
Tue, 27 Sep 2016 15:02:30 +0000 (17:02 +0200)
committerEugen Rochko <eugen@zeonfederated.com>
Tue, 27 Sep 2016 15:02:30 +0000 (17:02 +0200)
app/assets/javascripts/components/features/ui/components/compose_form.jsx
app/assets/javascripts/components/features/ui/containers/compose_form_container.jsx

index 5542b4fb4734d3f57aade01cf46ad205dcd34ccf..5b00fc1b933575a845089b9ccfa6edd7e54e16e7 100644 (file)
@@ -10,6 +10,7 @@ const ComposeForm = React.createClass({
   propTypes: {
     text: React.PropTypes.string.isRequired,
     is_submitting: React.PropTypes.bool,
+    is_uploading: React.PropTypes.bool,
     in_reply_to: ImmutablePropTypes.map,
     onChange: React.PropTypes.func.isRequired,
     onSubmit: React.PropTypes.func.isRequired,
@@ -39,7 +40,8 @@ const ComposeForm = React.createClass({
   },
 
   render () {
-    let replyArea = '';
+    let replyArea  = '';
+    const disabled = this.props.is_submitting || this.props.is_uploading;
 
     if (this.props.in_reply_to) {
       replyArea = <ReplyIndicator status={this.props.in_reply_to} onCancel={this.props.onCancelReply} />;
@@ -49,10 +51,10 @@ const ComposeForm = React.createClass({
       <div style={{ padding: '10px' }}>
         {replyArea}
 
-        <textarea ref='textarea' disabled={this.props.is_submitting} placeholder='What is on your mind?' value={this.props.text} onKeyUp={this.handleKeyUp} onChange={this.handleChange} className='compose-form__textarea' style={{ display: 'block', boxSizing: 'border-box', width: '100%', height: '100px', resize: 'none', border: 'none', color: '#282c37', padding: '10px', fontFamily: 'Roboto', fontSize: '14px', margin: '0' }} />
+        <textarea ref='textarea' disabled={disabled} placeholder='What is on your mind?' value={this.props.text} onKeyUp={this.handleKeyUp} onChange={this.handleChange} className='compose-form__textarea' style={{ display: 'block', boxSizing: 'border-box', width: '100%', height: '100px', resize: 'none', border: 'none', color: '#282c37', padding: '10px', fontFamily: 'Roboto', fontSize: '14px', margin: '0' }} />
 
         <div style={{ marginTop: '10px', overflow: 'hidden' }}>
-          <div style={{ float: 'right' }}><Button text='Publish' onClick={this.handleSubmit} disabled={this.props.is_submitting} /></div>
+          <div style={{ float: 'right' }}><Button text='Publish' onClick={this.handleSubmit} disabled={disabled} /></div>
           <div style={{ float: 'right', marginRight: '16px', lineHeight: '36px' }}><CharacterCounter max={500} text={this.props.text} /></div>
         </div>
       </div>
index b9c22a19d38d4b9cacd50732501bafd344d0e0c7..2427f89f0559b77280ca98aba6efb0685bdd10d1 100644 (file)
@@ -7,6 +7,7 @@ const mapStateToProps = function (state, props) {
   return {
     text: state.getIn(['compose', 'text']),
     is_submitting: state.getIn(['compose', 'is_submitting']),
+    is_uploading: state.getIn(['compose', 'is_uploading']),
     in_reply_to: selectStatus(state, state.getIn(['compose', 'in_reply_to']))
   };
 };