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
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
87d84dfc30
Коммит
0a1b0d051a
@@ -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...')}
|
||||
|
||||
Ссылка в новой задаче
Block a user