diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-07-10 13:58:01 -0400 |
---|---|---|
committer | Saturnino Abril <saturnino.abril@gmail.com> | 2017-07-11 01:58:01 +0800 |
commit | 45e7ad0c3428b4a050fedb354048f8a66aedf2a0 (patch) | |
tree | 5c98dab8975a7efc8b7bbb4785e4bdd8b30455d1 /webapp | |
parent | 9a7453e20853c9fe347a17524e58a183afffcab8 (diff) | |
download | chat-45e7ad0c3428b4a050fedb354048f8a66aedf2a0.tar.gz chat-45e7ad0c3428b4a050fedb354048f8a66aedf2a0.tar.bz2 chat-45e7ad0c3428b4a050fedb354048f8a66aedf2a0.zip |
Fix out of order posts for admins plus two minor fixes (#6886)
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/actions/emoji_actions.jsx | 2 | ||||
-rw-r--r-- | webapp/components/post_view/post_list.jsx | 21 | ||||
-rw-r--r-- | webapp/package.json | 2 | ||||
-rw-r--r-- | webapp/yarn.lock | 4 |
4 files changed, 18 insertions, 11 deletions
diff --git a/webapp/actions/emoji_actions.jsx b/webapp/actions/emoji_actions.jsx index a6323449e..1c0d8b5ea 100644 --- a/webapp/actions/emoji_actions.jsx +++ b/webapp/actions/emoji_actions.jsx @@ -13,7 +13,7 @@ import {getProfilesByIds} from 'mattermost-redux/actions/users'; import * as EmojiActions from 'mattermost-redux/actions/emojis'; export async function loadEmoji(getProfiles = true) { - const data = await EmojiActions.getAllCustomEmojis(10000)(dispatch, getState); + const data = await EmojiActions.getAllCustomEmojis()(dispatch, getState); if (data && getProfiles) { loadProfilesForEmoji(data); diff --git a/webapp/components/post_view/post_list.jsx b/webapp/components/post_view/post_list.jsx index 20d1ce0ff..a57a20677 100644 --- a/webapp/components/post_view/post_list.jsx +++ b/webapp/components/post_view/post_list.jsx @@ -104,6 +104,7 @@ export default class PostList extends React.PureComponent { this.previousScrollTop = Number.MAX_SAFE_INTEGER; this.previousScrollHeight = 0; this.previousClientHeight = 0; + this.atBottom = false; this.state = { atEnd: false, @@ -144,6 +145,7 @@ export default class PostList extends React.PureComponent { this.hasScrolled = false; this.hasScrolledToFocusedPost = false; this.hasScrolledToNewMessageSeparator = false; + this.atBottom = false; this.setState({atEnd: false}); if (nextChannel.id) { @@ -152,7 +154,7 @@ export default class PostList extends React.PureComponent { return; } - if (!this.wasAtBottom() && this.props.posts !== nextProps.posts && this.hasScrolledToNewMessageSeparator) { + if (!this.atBottom && this.props.posts !== nextProps.posts && this.hasScrolledToNewMessageSeparator) { const unViewedCount = nextProps.posts.reduce((count, post) => { if (post.create_at > this.state.lastViewed && post.user_id !== nextProps.currentUserId && @@ -206,6 +208,7 @@ export default class PostList extends React.PureComponent { return; } else if (postList && !this.hasScrolledToNewMessageSeparator) { postList.scrollTop = postList.scrollHeight; + this.atBottom = true; return; } @@ -218,7 +221,7 @@ export default class PostList extends React.PureComponent { const pendingPostId = posts[0].pending_post_id; if (postId !== prevPostId && pendingPostId !== prevPostId) { // If already scrolled to bottom - if (this.wasAtBottom()) { + if (this.atBottom) { doScrollToBottom = true; } @@ -229,6 +232,7 @@ export default class PostList extends React.PureComponent { } if (doScrollToBottom) { + this.atBottom = true; postList.scrollTop = postList.scrollHeight; return; } @@ -246,13 +250,13 @@ export default class PostList extends React.PureComponent { }); } - wasAtBottom = () => { - return this.previousClientHeight + this.previousScrollTop >= this.previousScrollHeight - CLOSE_TO_BOTTOM_SCROLL_MARGIN; + checkBottom = () => { + return this.refs.postlist.clientHeight + this.refs.postlist.scrollTop >= this.refs.postlist.scrollHeight - CLOSE_TO_BOTTOM_SCROLL_MARGIN; } handleResize = (forceScrollToBottom) => { const postList = this.refs.postlist; - const doScrollToBottom = this.wasAtBottom() || forceScrollToBottom; + const doScrollToBottom = this.atBottom || forceScrollToBottom; if (postList && doScrollToBottom) { postList.scrollTop = postList.scrollHeight; @@ -298,6 +302,9 @@ export default class PostList extends React.PureComponent { handleScroll = () => { this.hasScrolled = true; this.previousScrollTop = this.refs.postlist.scrollTop; + if (this.refs.postlist.scrollHeight === this.previousScrollHeight) { + this.atBottom = this.checkBottom(); + } this.updateFloatingTimestamp(); @@ -307,7 +314,7 @@ export default class PostList extends React.PureComponent { }); } - if (this.wasAtBottom()) { + if (this.atBottom) { this.setState({ lastViewed: new Date().getTime(), unViewedCount: 0, @@ -509,7 +516,7 @@ export default class PostList extends React.PureComponent { /> <ScrollToBottomArrows isScrolling={this.state.isScrolling} - atBottom={this.wasAtBottom()} + atBottom={this.atBottom} onClick={this.scrollToBottom} /> <NewMessageIndicator diff --git a/webapp/package.json b/webapp/package.json index ac9febbf3..9e1dd4dcb 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -24,7 +24,7 @@ "localforage": "1.5.0", "marked": "mattermost/marked#8f5902fff9bad793cd6c66e0c44002c9e79e1317", "match-at": "0.1.0", - "mattermost-redux": "mattermost/mattermost-redux#webapp-master", + "mattermost-redux": "mattermost/mattermost-redux#webapp-4.0", "object-assign": "4.1.1", "pdfjs-dist": "1.8.474", "perfect-scrollbar": "0.7.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index dde0b98d3..9b8cc391d 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -5041,9 +5041,9 @@ math-expression-evaluator@^1.2.14: version "1.2.16" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9" -mattermost-redux@mattermost/mattermost-redux#webapp-master: +mattermost-redux@mattermost/mattermost-redux#webapp-4.0: version "0.0.1" - resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/b4bab66d36f10ace06bcd3243d68807bfbca9c48" + resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/cb3aee571a78c835ed0ff5629114e05fce41a5f5" dependencies: deep-equal "1.0.1" harmony-reflect "1.5.1" |