|
|
|
@ -40,17 +40,16 @@ class ComposeForm extends ImmutablePureComponent { |
|
|
|
|
static propTypes = { |
|
|
|
|
intl: PropTypes.object.isRequired, |
|
|
|
|
text: PropTypes.string.isRequired, |
|
|
|
|
suggestion_token: PropTypes.string, |
|
|
|
|
suggestions: ImmutablePropTypes.list, |
|
|
|
|
spoiler: PropTypes.bool, |
|
|
|
|
privacy: PropTypes.string, |
|
|
|
|
spoiler_text: PropTypes.string, |
|
|
|
|
spoilerText: PropTypes.string, |
|
|
|
|
focusDate: PropTypes.instanceOf(Date), |
|
|
|
|
caretPosition: PropTypes.number, |
|
|
|
|
preselectDate: PropTypes.instanceOf(Date), |
|
|
|
|
is_submitting: PropTypes.bool, |
|
|
|
|
is_changing_upload: PropTypes.bool, |
|
|
|
|
is_uploading: PropTypes.bool, |
|
|
|
|
isSubmitting: PropTypes.bool, |
|
|
|
|
isChangingUpload: PropTypes.bool, |
|
|
|
|
isUploading: PropTypes.bool, |
|
|
|
|
onChange: PropTypes.func.isRequired, |
|
|
|
|
onSubmit: PropTypes.func.isRequired, |
|
|
|
|
onClearSuggestions: PropTypes.func.isRequired, |
|
|
|
@ -85,10 +84,10 @@ class ComposeForm extends ImmutablePureComponent { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Submit disabled:
|
|
|
|
|
const { is_submitting, is_changing_upload, is_uploading, anyMedia } = this.props; |
|
|
|
|
const fulltext = [this.props.spoiler_text, countableText(this.props.text)].join(''); |
|
|
|
|
const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; |
|
|
|
|
const fulltext = [this.props.spoilerText, countableText(this.props.text)].join(''); |
|
|
|
|
|
|
|
|
|
if (is_submitting || is_uploading || is_changing_upload || length(fulltext) > 500 || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) { |
|
|
|
|
if (isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -133,7 +132,7 @@ class ComposeForm extends ImmutablePureComponent { |
|
|
|
|
|
|
|
|
|
this.autosuggestTextarea.textarea.setSelectionRange(selectionStart, selectionEnd); |
|
|
|
|
this.autosuggestTextarea.textarea.focus(); |
|
|
|
|
} else if(prevProps.is_submitting && !this.props.is_submitting) { |
|
|
|
|
} else if(prevProps.isSubmitting && !this.props.isSubmitting) { |
|
|
|
|
this.autosuggestTextarea.textarea.focus(); |
|
|
|
|
} else if (this.props.spoiler !== prevProps.spoiler) { |
|
|
|
|
if (this.props.spoiler) { |
|
|
|
@ -162,9 +161,9 @@ class ComposeForm extends ImmutablePureComponent { |
|
|
|
|
|
|
|
|
|
render () { |
|
|
|
|
const { intl, onPaste, showSearch, anyMedia } = this.props; |
|
|
|
|
const disabled = this.props.is_submitting; |
|
|
|
|
const text = [this.props.spoiler_text, countableText(this.props.text)].join(''); |
|
|
|
|
const disabledButton = disabled || this.props.is_uploading || this.props.is_changing_upload || length(text) > 500 || (text.length !== 0 && text.trim().length === 0 && !anyMedia); |
|
|
|
|
const disabled = this.props.isSubmitting; |
|
|
|
|
const text = [this.props.spoilerText, countableText(this.props.text)].join(''); |
|
|
|
|
const disabledButton = disabled || this.props.isUploading || this.props.isChangingUpload || length(text) > 500 || (text.length !== 0 && text.trim().length === 0 && !anyMedia); |
|
|
|
|
let publishText = ''; |
|
|
|
|
|
|
|
|
|
if (this.props.privacy === 'private' || this.props.privacy === 'direct') { |
|
|
|
@ -182,7 +181,7 @@ class ComposeForm extends ImmutablePureComponent { |
|
|
|
|
<div className={`spoiler-input ${this.props.spoiler ? 'spoiler-input--visible' : ''}`}> |
|
|
|
|
<label> |
|
|
|
|
<span style={{ display: 'none' }}>{intl.formatMessage(messages.spoiler_placeholder)}</span> |
|
|
|
|
<input placeholder={intl.formatMessage(messages.spoiler_placeholder)} value={this.props.spoiler_text} onChange={this.handleChangeSpoilerText} onKeyDown={this.handleKeyDown} tabIndex={this.props.spoiler ? 0 : -1} type='text' className='spoiler-input__input' id='cw-spoiler-input' ref={this.setSpoilerText} /> |
|
|
|
|
<input placeholder={intl.formatMessage(messages.spoiler_placeholder)} value={this.props.spoilerText} onChange={this.handleChangeSpoilerText} onKeyDown={this.handleKeyDown} tabIndex={this.props.spoiler ? 0 : -1} type='text' className='spoiler-input__input' id='cw-spoiler-input' ref={this.setSpoilerText} /> |
|
|
|
|
</label> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|