summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturnino Abril <saturnino.abril@gmail.com>2017-06-05 23:09:43 +0800
committerHarrison Healey <harrisonmhealey@gmail.com>2017-06-05 11:09:43 -0400
commitb0f32e3c1928d1a125b9f7bdfd3dcbf2fede65ab (patch)
treec1eabc190d2fbb8a45981662a5effae71fdffaaa
parentb53ca57bad4f62422f9cf4b62d54c6f508ba13cb (diff)
downloadchat-b0f32e3c1928d1a125b9f7bdfd3dcbf2fede65ab.tar.gz
chat-b0f32e3c1928d1a125b9f7bdfd3dcbf2fede65ab.tar.bz2
chat-b0f32e3c1928d1a125b9f7bdfd3dcbf2fede65ab.zip
fix JS error and incorrect comment thread for SHIFT+UP (#6574)
-rw-r--r--webapp/components/common/comment_icon.jsx8
-rw-r--r--webapp/components/create_post.jsx15
-rw-r--r--webapp/components/post_view/components/post_info.jsx2
3 files changed, 15 insertions, 10 deletions
diff --git a/webapp/components/common/comment_icon.jsx b/webapp/components/common/comment_icon.jsx
index 63218971f..4505d51bc 100644
--- a/webapp/components/common/comment_icon.jsx
+++ b/webapp/components/common/comment_icon.jsx
@@ -21,7 +21,7 @@ export default function CommentIcon(props) {
iconStyle = iconStyle + ' ' + props.searchStyle;
}
- let commentIconId = props.idPrefix;
+ let commentIconId = props.channelId + props.idPrefix;
if (props.idCount > -1) {
commentIconId += props.idCount;
}
@@ -47,11 +47,13 @@ CommentIcon.propTypes = {
idCount: PropTypes.number,
handleCommentClick: PropTypes.func.isRequired,
searchStyle: PropTypes.string,
- commentCount: PropTypes.number
+ commentCount: PropTypes.number,
+ channelId: PropTypes.string
};
CommentIcon.defaultProps = {
idCount: -1,
searchStyle: '',
- commentCount: 0
+ commentCount: 0,
+ channelId: ''
}; \ No newline at end of file
diff --git a/webapp/components/create_post.jsx b/webapp/components/create_post.jsx
index 74104cf2a..2735718e1 100644
--- a/webapp/components/create_post.jsx
+++ b/webapp/components/create_post.jsx
@@ -504,11 +504,12 @@ export default class CreatePost extends React.Component {
return;
}
+ const lastPostEl = document.getElementById(this.state.channelId + 'commentIcon0');
+
if (!e.ctrlKey && !e.metaKey && !e.altKey && !e.shiftKey && e.keyCode === KeyCodes.UP && this.state.message === '') {
e.preventDefault();
- const channelId = ChannelStore.getCurrentId();
- const lastPost = PostStore.getCurrentUsersLatestPost(channelId);
+ const lastPost = PostStore.getCurrentUsersLatestPost(this.state.channelId);
if (!lastPost) {
return;
}
@@ -529,15 +530,15 @@ export default class CreatePost extends React.Component {
channelId: lastPost.channel_id,
comments: PostStore.getCommentCount(lastPost)
});
- } else if (!e.ctrlKey && !e.metaKey && !e.altKey && e.shiftKey && e.keyCode === KeyCodes.UP && this.state.message === '') {
+ } else if (!e.ctrlKey && !e.metaKey && !e.altKey && e.shiftKey && e.keyCode === KeyCodes.UP && this.state.message === '' && lastPostEl) {
e.preventDefault();
if (document.createEvent) {
- var evt = document.createEvent('MouseEvents');
+ const evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
- document.getElementById('commentIcon0').dispatchEvent(evt);
+ lastPostEl.dispatchEvent(evt);
} else if (document.createEventObject) {
- var evObj = document.createEventObject();
- document.getElementById('commentIcon0').fireEvent('onclick', evObj);
+ const evObj = document.createEventObject();
+ lastPostEl.fireEvent('onclick', evObj);
}
}
diff --git a/webapp/components/post_view/components/post_info.jsx b/webapp/components/post_view/components/post_info.jsx
index 74ce32817..39a0b1fec 100644
--- a/webapp/components/post_view/components/post_info.jsx
+++ b/webapp/components/post_view/components/post_info.jsx
@@ -17,6 +17,7 @@ import Constants from 'utils/constants.jsx';
import DelayedAction from 'utils/delayed_action.jsx';
import {Overlay} from 'react-bootstrap';
import EmojiPicker from 'components/emoji_picker/emoji_picker.jsx';
+import ChannelStore from 'stores/channel_store.jsx';
import PropTypes from 'prop-types';
@@ -351,6 +352,7 @@ export default class PostInfo extends React.Component {
idCount={idCount}
handleCommentClick={this.props.handleCommentClick}
commentCount={this.props.commentCount}
+ channelId={ChannelStore.getCurrentId()}
/>
);