From 3a91d4e5e419a43ff19a0736ce697f8d611d36e3 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 2 Mar 2017 17:48:56 -0500 Subject: PLT-3077 Add group messaging (#5489) * Implement server changes for group messaging * Majority of client-side implementation * Some server updates * Added new React multiselect component * Fix style issues * Add custom renderer for options * Fix model test * Update ENTER functionality for multiselect control * Remove buttons from multiselect UI control * Updating group messaging UI (#5524) * Move filter controls up a component level * Scroll with arrow keys * Updating mobile layout for multiselect (#5534) * Fix race condition when backspacing quickly * Hidden or new GMs show up for regular messages * Add overriding of number remaining text * Add UI filtering for team if config setting set * Add icon to channel switcher and class prop to status icon * Minor updates per feedback * Improving group messaging UI (#5563) * UX changes per feedback * Update email for group messages * UI fixes for group messaging (#5587) * Fix missing localization string * Add maximum users message when adding members to GM * Fix input clearing on Android * Updating group messaging UI (#5603) * Updating UI for group messaging (#5604) --- webapp/stores/modal_store.jsx | 1 + webapp/stores/notification_store.jsx | 3 +++ webapp/stores/user_store.jsx | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'webapp/stores') diff --git a/webapp/stores/modal_store.jsx b/webapp/stores/modal_store.jsx index 9961475b2..b1c2887df 100644 --- a/webapp/stores/modal_store.jsx +++ b/webapp/stores/modal_store.jsx @@ -38,6 +38,7 @@ class ModalStoreClass extends EventEmitter { case ActionTypes.TOGGLE_GET_POST_LINK_MODAL: case ActionTypes.TOGGLE_GET_TEAM_INVITE_LINK_MODAL: case ActionTypes.TOGGLE_GET_PUBLIC_LINK_MODAL: + case ActionTypes.TOGGLE_DM_MODAL: this.emit(type, value, args); break; } diff --git a/webapp/stores/notification_store.jsx b/webapp/stores/notification_store.jsx index 58e4433ec..28e5ea65d 100644 --- a/webapp/stores/notification_store.jsx +++ b/webapp/stores/notification_store.jsx @@ -8,6 +8,7 @@ import UserStore from './user_store.jsx'; import ChannelStore from './channel_store.jsx'; import * as UserAgent from 'utils/user_agent.jsx'; import * as Utils from 'utils/utils.jsx'; +import {buildGroupChannelName} from 'utils/channel_utils.jsx'; import * as PostUtils from 'utils/post_utils.jsx'; const ActionTypes = Constants.ActionTypes; @@ -74,6 +75,8 @@ class NotificationStoreClass extends EventEmitter { }; } else if (channel.type === Constants.DM_CHANNEL) { title = Utils.localizeMessage('notification.dm', 'Direct Message'); + } else if (channel.type === Constants.GM_CHANNEL) { + title = buildGroupChannelName(channel.id); } else { title = channel.display_name; } diff --git a/webapp/stores/user_store.jsx b/webapp/stores/user_store.jsx index bcc59b690..007d8a5a7 100644 --- a/webapp/stores/user_store.jsx +++ b/webapp/stores/user_store.jsx @@ -414,13 +414,18 @@ class UserStoreClass extends EventEmitter { userIds.splice(index, 1); } - getProfileListInChannel(channelId = ChannelStore.getCurrentId()) { + getProfileListInChannel(channelId = ChannelStore.getCurrentId(), skipCurrent = false) { const userIds = this.profiles_in_channel[channelId] || []; + const currentId = this.getCurrentId(); const profiles = []; for (let i = 0; i < userIds.length; i++) { const profile = this.getProfile(userIds[i]); if (profile) { + if (skipCurrent && profile.id === currentId) { + continue; + } + profiles.push(profile); } } -- cgit v1.2.3-1-g7c22