From b0f32e3c1928d1a125b9f7bdfd3dcbf2fede65ab Mon Sep 17 00:00:00 2001 From: Saturnino Abril Date: Mon, 5 Jun 2017 23:09:43 +0800 Subject: fix JS error and incorrect comment thread for SHIFT+UP (#6574) --- webapp/components/common/comment_icon.jsx | 8 +++++--- webapp/components/create_post.jsx | 15 ++++++++------- webapp/components/post_view/components/post_info.jsx | 2 ++ 3 files changed, 15 insertions(+), 10 deletions(-) (limited to 'webapp') 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()} /> ); -- cgit v1.2.3-1-g7c22