mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Moved duplicate code into functions and added better handling of large paste text dumps
This commit is contained in:
@@ -105,16 +105,9 @@ module.exports = React.createClass({
|
||||
this.lastTime = t;
|
||||
}
|
||||
},
|
||||
handleUserInput: function(messageText) {
|
||||
var newPostError = this.state.postError;
|
||||
|
||||
var len = utils.getLengthOfTextInTextarea(messageText);
|
||||
|
||||
if (!this.state.postError && len >= Constants.MAX_POST_LEN) {
|
||||
newPostError = 'Comment length cannot exceed 4000 characters';
|
||||
} else if (this.state.postError === 'Comment length cannot exceed 4000 characters' && len < Constants.MAX_POST_LEN) {
|
||||
newPostError = '';
|
||||
}
|
||||
handleUserInput: function(message) {
|
||||
var messageText = utils.truncateText(message);
|
||||
var newPostError = utils.checkMessageLengthError(messageText, this.state.postError, 'Comment length cannot exceed ' + Constants.MAX_POST_LEN + ' characters');
|
||||
|
||||
var draft = PostStore.getCommentDraft(this.props.rootId);
|
||||
draft.message = messageText;
|
||||
|
||||
@@ -18,6 +18,7 @@ var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'CreatePost',
|
||||
lastTime: 0,
|
||||
handleSubmit: function(e) {
|
||||
e.preventDefault();
|
||||
@@ -131,16 +132,9 @@ module.exports = React.createClass({
|
||||
this.lastTime = t;
|
||||
}
|
||||
},
|
||||
handleUserInput: function(messageText) {
|
||||
var newPostError = this.state.postError;
|
||||
|
||||
var len = utils.getLengthOfTextInTextarea(messageText);
|
||||
|
||||
if (!this.state.postError && len >= Constants.MAX_POST_LEN) {
|
||||
newPostError = 'Message length cannot exceed 4000 characters';
|
||||
} else if (this.state.postError === 'Message length cannot exceed 4000 characters' && len < Constants.MAX_POST_LEN) {
|
||||
newPostError = '';
|
||||
}
|
||||
handleUserInput: function(message) {
|
||||
var messageText = utils.truncateText(message);
|
||||
var newPostError = utils.checkMessageLengthError(messageText, this.state.postError, 'Message length cannot exceed ' + Constants.MAX_POST_LEN + ' characters');
|
||||
|
||||
this.resizePostHolder();
|
||||
this.setState({messageText: messageText, postError: newPostError});
|
||||
|
||||
@@ -39,17 +39,9 @@ module.exports = React.createClass({
|
||||
$(this.state.refocusId).focus();
|
||||
},
|
||||
handleEditInput: function(editText) {
|
||||
var newError = this.state.error;
|
||||
|
||||
var len = utils.getLengthOfTextInTextarea(editText);
|
||||
|
||||
if (!this.state.error && len >= Constants.MAX_POST_LEN) {
|
||||
newError = 'New message length cannot exceed 4000 characters';
|
||||
} else if (this.state.error === 'New message length cannot exceed 4000 characters' && len < Constants.MAX_POST_LEN) {
|
||||
newError = '';
|
||||
}
|
||||
|
||||
this.setState({editText: editText, error: newError});
|
||||
var editMessage = utils.truncateText(editText);
|
||||
var newError = utils.checkMessageLengthError(editMessage, this.state.error, 'New message length cannot exceed ' + Constants.MAX_POST_LEN + ' characters');
|
||||
this.setState({editText: editMessage, error: newError});
|
||||
},
|
||||
handleEditKeyPress: function(e) {
|
||||
if (e.which == 13 && !e.shiftKey && !e.altKey) {
|
||||
|
||||
@@ -1032,6 +1032,30 @@ module.exports.getLengthOfTextInTextarea = function(messageText) {
|
||||
return len;
|
||||
};
|
||||
|
||||
module.exports.checkMessageLengthError = function(message, currentError, newError) {
|
||||
var updatedError = currentError;
|
||||
var len = module.exports.getLengthOfTextInTextarea(message);
|
||||
|
||||
if (!currentError && len >= Constants.MAX_POST_LEN) {
|
||||
updatedError = newError;
|
||||
} else if (currentError === newError && len < Constants.MAX_POST_LEN) {
|
||||
updatedError = '';
|
||||
}
|
||||
|
||||
return updatedError;
|
||||
};
|
||||
|
||||
// Necessary due to issues with textarea max length and pasting newlines
|
||||
module.exports.truncateText = function(message) {
|
||||
var lengthDifference = module.exports.getLengthOfTextInTextarea(message) - message.length;
|
||||
|
||||
if (lengthDifference > 0) {
|
||||
return message.substring(0, Constants.MAX_POST_LEN - lengthDifference);
|
||||
}
|
||||
|
||||
return message.substring(0, Constants.MAX_POST_LEN);
|
||||
};
|
||||
|
||||
// Used to get the id of the other user from a DM channel
|
||||
module.exports.getUserIdFromChannelName = function(channel) {
|
||||
var ids = channel.name.split('__');
|
||||
|
||||
Reference in New Issue
Block a user