summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKacper Kula <kulak@kulak.at>2017-05-18 15:01:59 +0200
committerJoram Wilander <jwawilander@gmail.com>2017-05-18 09:01:59 -0400
commit63e599c43b66f0dd95f7f07c783c40fdaf89e3fb (patch)
tree9eca5d73e5f41b8fcf186f5176da497c4117cc7a
parent5f6a3a2cf89003a1e8dbe591690459aa680825ea (diff)
downloadchat-63e599c43b66f0dd95f7f07c783c40fdaf89e3fb.tar.gz
chat-63e599c43b66f0dd95f7f07c783c40fdaf89e3fb.tar.bz2
chat-63e599c43b66f0dd95f7f07c783c40fdaf89e3fb.zip
[PLT-4643] Don't show empheral messages on sidebar when it is reopened. (#6378)
-rw-r--r--webapp/components/rhs_thread.jsx25
1 files changed, 21 insertions, 4 deletions
diff --git a/webapp/components/rhs_thread.jsx b/webapp/components/rhs_thread.jsx
index 82e54f6ff..26afd76b1 100644
--- a/webapp/components/rhs_thread.jsx
+++ b/webapp/components/rhs_thread.jsx
@@ -55,6 +55,7 @@ export default class RhsThread extends React.Component {
this.onPostChange = this.onPostChange.bind(this);
this.onUserChange = this.onUserChange.bind(this);
+ this.onSelectedChange = this.onSelectedChange.bind(this);
this.forceUpdateInfo = this.forceUpdateInfo.bind(this);
this.onPreferenceChange = this.onPreferenceChange.bind(this);
this.onStatusChange = this.onStatusChange.bind(this);
@@ -64,7 +65,8 @@ export default class RhsThread extends React.Component {
this.handleScrollStop = this.handleScrollStop.bind(this);
this.scrollStopAction = new DelayedAction(this.handleScrollStop);
- const state = this.getPosts();
+ const openTime = (new Date()).getTime();
+ const state = this.getPosts(openTime);
state.windowWidth = Utils.windowWidth();
state.windowHeight = Utils.windowHeight();
state.profiles = JSON.parse(JSON.stringify(UserStore.getProfiles()));
@@ -77,11 +79,13 @@ export default class RhsThread extends React.Component {
this.state = {
...state,
isScrolling: false,
- topRhsPostCreateAt: 0
+ topRhsPostCreateAt: 0,
+ openTime
};
}
componentDidMount() {
+ PostStore.addSelectedPostChangeListener(this.onSelectedChange);
PostStore.addSelectedPostChangeListener(this.onPostChange);
PostStore.addChangeListener(this.onPostChange);
PreferenceStore.addChangeListener(this.onPreferenceChange);
@@ -96,6 +100,7 @@ export default class RhsThread extends React.Component {
}
componentWillUnmount() {
+ PostStore.addSelectedPostChangeListener(this.onSelectedChange);
PostStore.removeSelectedPostChangeListener(this.onPostChange);
PostStore.removeChangeListener(this.onPostChange);
PreferenceStore.removeChangeListener(this.onPreferenceChange);
@@ -192,6 +197,12 @@ export default class RhsThread extends React.Component {
});
}
+ onSelectedChange() {
+ this.setState({
+ openTime: (new Date()).getTime()
+ });
+ }
+
onPreferenceChange(category) {
let previewSuffix = '';
if (category === Preferences.CATEGORY_DISPLAY_SETTINGS) {
@@ -208,7 +219,7 @@ export default class RhsThread extends React.Component {
onPostChange() {
if (this.mounted) {
- this.setState(this.getPosts());
+ this.setState(this.getPosts(this.state.openTime));
}
}
@@ -220,7 +231,7 @@ export default class RhsThread extends React.Component {
this.setState({isBusy});
}
- getPosts() {
+ getPosts(openTime) {
const selected = PostStore.getSelectedPost();
const posts = PostStore.getSelectedPostThread();
@@ -229,6 +240,12 @@ export default class RhsThread extends React.Component {
for (const id in posts) {
if (posts.hasOwnProperty(id)) {
const cpost = posts[id];
+
+ // Do not show empherals created before sidebar has been opened
+ if (cpost.type === 'system_ephemeral' && cpost.create_at < openTime) {
+ continue;
+ }
+
if (cpost.root_id === selected.id) {
postsArray.push(cpost);
}