From d75cb0294896e0e45f280cbccde8581376d501ce Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 6 May 2016 08:06:34 -0400 Subject: Multiple cross-team functionality fixes (#2902) --- webapp/action_creators/global_actions.jsx | 2 +- webapp/components/posts_view.jsx | 13 +++++++++++-- webapp/stores/notification_store.jsx | 2 +- webapp/stores/user_store.jsx | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) (limited to 'webapp') diff --git a/webapp/action_creators/global_actions.jsx b/webapp/action_creators/global_actions.jsx index 78c56dd12..c1bb4dbc8 100644 --- a/webapp/action_creators/global_actions.jsx +++ b/webapp/action_creators/global_actions.jsx @@ -234,7 +234,7 @@ export function emitPostRecievedEvent(post, msg) { } else { AsyncClient.getChannel(post.channel_id); } - } else if (msg && TeamStore.getCurrentId() === msg.team_id) { + } else if (msg && (TeamStore.getCurrentId() === msg.team_id || msg.props.channel_type === Constants.DM_CHANNEL)) { AsyncClient.getChannel(post.channel_id); } diff --git a/webapp/components/posts_view.jsx b/webapp/components/posts_view.jsx index 3cc0c1a92..4a81feba2 100644 --- a/webapp/components/posts_view.jsx +++ b/webapp/components/posts_view.jsx @@ -47,13 +47,18 @@ export default class PostsView extends React.Component { this.scrollStopAction = new DelayedAction(this.handleScrollStop); + let profiles = UserStore.getProfiles(); + if (props.channel.type === Constants.DM_CHANNEL) { + profiles = Object.assign({}, profiles, UserStore.getDirectProfiles()); + } + this.state = { displayNameType: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', 'false'), centerPosts: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_CENTERED, isScrolling: false, topPostId: null, currentUser: UserStore.getCurrentUser(), - profiles: UserStore.getProfiles() + profiles }; } static get SCROLL_TYPE_FREE() { @@ -78,7 +83,11 @@ export default class PostsView extends React.Component { }); } onUserChange() { - this.setState({currentUser: UserStore.getCurrentUser(), profiles: JSON.parse(JSON.stringify(UserStore.getProfiles()))}); + let profiles = UserStore.getProfiles(); + if (this.props.channel.type === Constants.DM_CHANNEL) { + profiles = Object.assign({}, profiles, UserStore.getDirectProfiles()); + } + this.setState({currentUser: UserStore.getCurrentUser(), profiles: JSON.parse(JSON.stringify(profiles))}); } isAtBottom() { // consider the view to be at the bottom if it's within this many pixels of the bottom diff --git a/webapp/stores/notification_store.jsx b/webapp/stores/notification_store.jsx index 6722af281..7d7039780 100644 --- a/webapp/stores/notification_store.jsx +++ b/webapp/stores/notification_store.jsx @@ -43,7 +43,7 @@ class NotificationStoreClass extends EventEmitter { if (notifyLevel === 'none') { return; - } else if (notifyLevel === 'mention' && mentions.indexOf(user.id) === -1 && channel.type !== Constants.DM_CHANNEL) { + } else if (notifyLevel === 'mention' && mentions.indexOf(user.id) === -1 && msgProps.channel_type !== Constants.DM_CHANNEL) { return; } diff --git a/webapp/stores/user_store.jsx b/webapp/stores/user_store.jsx index 5a27d15ea..2d792fa17 100644 --- a/webapp/stores/user_store.jsx +++ b/webapp/stores/user_store.jsx @@ -111,7 +111,7 @@ class UserStoreClass extends EventEmitter { } hasProfile(userId) { - return this.getProfiles()[userId] != null; + return this.getProfile(userId) != null; } getProfile(userId) { -- cgit v1.2.3-1-g7c22