From 0a1b0d051a1a7d83ad01502f8073d35ee5da95cc Mon Sep 17 00:00:00 2001 From: Nick Frazier Date: Mon, 26 Dec 2016 09:25:50 -0500 Subject: 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 --- webapp/components/create_comment.jsx | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'webapp/components/create_comment.jsx') diff --git a/webapp/components/create_comment.jsx b/webapp/components/create_comment.jsx index 8ecda6777..09ec32b6b 100644 --- a/webapp/components/create_comment.jsx +++ b/webapp/components/create_comment.jsx @@ -55,6 +55,7 @@ export default class CreateComment extends React.Component { this.focusTextbox = this.focusTextbox.bind(this); this.showPostDeletedModal = this.showPostDeletedModal.bind(this); this.hidePostDeletedModal = this.hidePostDeletedModal.bind(this); + this.handlePostError = this.handlePostError.bind(this); PostStore.clearCommentDraftUploads(); MessageHistoryStore.resetHistoryIndex('comment'); @@ -96,6 +97,10 @@ export default class CreateComment extends React.Component { } } + handlePostError(postError) { + this.setState({postError}); + } + handleSubmit(e) { e.preventDefault(); @@ -109,16 +114,11 @@ export default class CreateComment extends React.Component { const message = this.state.message; - if (message.length > Constants.CHARACTER_LIMIT) { - this.setState({ - postError: ( - - ) - }); + if (this.state.postError) { + this.setState({errorClass: 'animation--highlight'}); + setTimeout(() => { + this.setState({errorClass: null}); + }, Constants.ANIMATION_TIMEOUT); return; } @@ -420,7 +420,8 @@ export default class CreateComment extends React.Component { let postError = null; if (this.state.postError) { - postError = ; + const postErrorClass = 'post-error' + (this.state.errorClass ? (' ' + this.state.errorClass) : ''); + postError = ; } let preview = null; @@ -434,11 +435,6 @@ export default class CreateComment extends React.Component { ); } - let postFooterClassName = 'post-create-footer'; - if (postError) { - postFooterClassName += ' has-error'; - } - let uploadsInProgressText = null; if (this.state.uploadsInProgress.length > 0) { uploadsInProgressText = ( @@ -470,6 +466,7 @@ export default class CreateComment extends React.Component { onChange={this.handleChange} onKeyPress={this.commentMsgKeyPress} onKeyDown={this.handleKeyDown} + handlePostError={this.handlePostError} value={this.state.message} onBlur={this.handleBlur} createMessage={Utils.localizeMessage('create_comment.addComment', 'Add a comment...')} @@ -494,7 +491,7 @@ export default class CreateComment extends React.Component { channelId={this.props.channelId} parentId={this.props.rootId} /> -
+
{uploadsInProgressText} - {preview} {postError} + {preview} {serverError}
-- cgit v1.2.3-1-g7c22