Add error to RHS reply box for messages > 4000 chars, consistent with create post and edit post errors (#4871)

* functionality

* CSS updates

* cleanup

* moved message length checks to Textbox component

* cleanup
Этот коммит содержится в:
Nick Frazier
2016-12-26 09:25:50 -05:00
коммит произвёл Christopher Speller
родитель 87d84dfc30
Коммит 0a1b0d051a
7 изменённых файлов: 89 добавлений и 58 удалений

Просмотреть файл

@@ -25,7 +25,7 @@ import PreferenceStore from 'stores/preference_store.jsx';
import Constants from 'utils/constants.jsx';
import {FormattedHTMLMessage, FormattedMessage} from 'react-intl';
import {FormattedHTMLMessage} from 'react-intl';
import {browserHistory} from 'react-router/es6';
const Preferences = Constants.Preferences;
@@ -61,7 +61,7 @@ export default class CreatePost extends React.Component {
this.showPostDeletedModal = this.showPostDeletedModal.bind(this);
this.hidePostDeletedModal = this.hidePostDeletedModal.bind(this);
this.showShortcuts = this.showShortcuts.bind(this);
this.checkMessageLength = this.checkMessageLength.bind(this);
this.handlePostError = this.handlePostError.bind(this);
PostStore.clearDraftUploads();
@@ -81,6 +81,10 @@ export default class CreatePost extends React.Component {
};
}
handlePostError(postError) {
this.setState({postError});
}
handleSubmit(e) {
e.preventDefault();
@@ -218,25 +222,6 @@ export default class CreatePost extends React.Component {
const draft = PostStore.getCurrentDraft();
draft.message = message;
PostStore.storeCurrentDraft(draft);
this.checkMessageLength(message);
}
checkMessageLength(message) {
if (message.length > Constants.CHARACTER_LIMIT) {
const errorMessage = (
<FormattedMessage
id='create_post.error_message'
defaultMessage='Your message is too long. Character count: {length}/{limit}'
values={{
length: message.length,
limit: Constants.CHARACTER_LIMIT
}}
/>);
this.setState({postError: errorMessage});
} else {
this.setState({postError: null});
}
}
handleUploadClick() {
@@ -335,8 +320,6 @@ export default class CreatePost extends React.Component {
fullWidthTextBox: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_FULL_SCREEN,
showTutorialTip: tutorialStep === TutorialSteps.POST_POPOVER
});
this.checkMessageLength(this.state.message);
}
componentDidMount() {
@@ -543,6 +526,7 @@ export default class CreatePost extends React.Component {
onChange={this.handleChange}
onKeyPress={this.postMsgKeyPress}
onKeyDown={this.handleKeyDown}
handlePostError={this.handlePostError}
value={this.state.message}
onBlur={this.handleBlur}
createMessage={Utils.localizeMessage('create_post.write', 'Write a message...')}