From a6e15320d4110799c78c4a02b7600af6c1065c4a Mon Sep 17 00:00:00 2001 From: Sudheer Date: Fri, 21 Sep 2018 18:36:33 +0530 Subject: [PATCH] MM-11974, MM-11980 Add deactivated user to LHS search (#2080) * MM-11974, MM-11980 Add deactivated user to LHS search * Add (you) to current user in jumpto search * Change to use old format of objects for non-search results * Remove deactivated when searched using JumpTo * Use archive icon in JumpTo Search for deactivates users * Update snapshots * Change snapshots to use getElement * Fix snapshot --- app/components/channel_icon.js | 2 +- .../__snapshots__/channel_item.test.js.snap | 81 +++++++++++++++++++ .../channel_item/channel_item.test.js | 13 +++ .../main/channels_list/channel_item/index.js | 24 ++++-- .../filtered_list/filtered_list.js | 7 +- 5 files changed, 115 insertions(+), 12 deletions(-) diff --git a/app/components/channel_icon.js b/app/components/channel_icon.js index 59c1a10e3..f865d83e4 100644 --- a/app/components/channel_icon.js +++ b/app/components/channel_icon.js @@ -43,8 +43,8 @@ export default class ChannelIcon extends React.PureComponent { membersCount, size, status, - teammateDeletedAt, theme, + teammateDeletedAt, type, isArchived, } = this.props; diff --git a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap index 3e7845a3a..d8be6f31d 100644 --- a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap +++ b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap @@ -80,3 +80,84 @@ exports[`ChannelItem should match snapshot 1`] = ` `; + +exports[`ChannelItem should match snapshot for deactivated user 1`] = ` + + + + + + + + + + +`; diff --git a/app/components/sidebars/main/channels_list/channel_item/channel_item.test.js b/app/components/sidebars/main/channels_list/channel_item/channel_item.test.js index d348001b4..870720633 100644 --- a/app/components/sidebars/main/channels_list/channel_item/channel_item.test.js +++ b/app/components/sidebars/main/channels_list/channel_item/channel_item.test.js @@ -43,4 +43,17 @@ describe('ChannelItem', () => { expect(wrapper.getElement()).toMatchSnapshot(); }); + + test('should match snapshot for deactivated user', () => { + const newProps = { + ...baseProps, + teammateDeletedAt: 100, + type: 'D', + }; + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + expect(wrapper.getElement()).toMatchSnapshot(); + }); }); diff --git a/app/components/sidebars/main/channels_list/channel_item/index.js b/app/components/sidebars/main/channels_list/channel_item/index.js index ef0738e81..de62b95d8 100644 --- a/app/components/sidebars/main/channels_list/channel_item/index.js +++ b/app/components/sidebars/main/channels_list/channel_item/index.js @@ -28,14 +28,21 @@ function makeMapStateToProps() { let isMyUser = false; let teammateDeletedAt = 0; let displayName = channel.display_name; - if (channel.type === General.DM_CHANNEL && channel.teammate_id) { - isMyUser = channel.teammate_id === currentUserId; - const teammate = getUser(state, channel.teammate_id); - if (teammate && teammate.delete_at) { - teammateDeletedAt = teammate.delete_at; + let isArchived = false; + if (channel.type === General.DM_CHANNEL) { + if (ownProps.isSearchResult) { + isMyUser = channel.id === currentUserId; + teammateDeletedAt = channel.delete_at; + } else { + isMyUser = channel.teammate_id === currentUserId; + const teammate = getUser(state, channel.teammate_id); + if (teammate && teammate.delete_at) { + teammateDeletedAt = teammate.delete_at; + } + const teammateNameDisplay = getTeammateNameDisplaySetting(state); + displayName = displayUsername(teammate, teammateNameDisplay, false); + isArchived = channel.delete_at > 0; } - const teammateNameDisplay = getTeammateNameDisplaySetting(state); - displayName = displayUsername(teammate, teammateNameDisplay, false); } const currentChannelId = getCurrentChannelId(state); @@ -62,6 +69,7 @@ function makeMapStateToProps() { showUnreadForMsgs = member.notify_props.mark_unread !== General.MENTION; } return { + channel, currentChannelId, displayName, fake: channel.fake, @@ -75,7 +83,7 @@ function makeMapStateToProps() { theme: getTheme(state), type: channel.type, unreadMsgs, - isArchived: channel.delete_at > 0, + isArchived, }; }; } diff --git a/app/components/sidebars/main/channels_list/filtered_list/filtered_list.js b/app/components/sidebars/main/channels_list/filtered_list/filtered_list.js index 378cc5cf0..590020af7 100644 --- a/app/components/sidebars/main/channels_list/filtered_list/filtered_list.js +++ b/app/components/sidebars/main/channels_list/filtered_list/filtered_list.js @@ -203,7 +203,7 @@ class FilteredList extends Component { const pastDirectMessageUsers = pastDirectMessages.map((p) => profiles[p]).filter((p) => typeof p !== 'undefined'); const dms = [...directChannelUsers, ...pastDirectMessageUsers].map((u) => { - const displayName = displayUsername(u, teammateNameDisplay); + const displayName = displayUsername(u, teammateNameDisplay, false); return { id: u.id, @@ -211,11 +211,11 @@ class FilteredList extends Component { display_name: displayName, username: u.username, email: u.email, - name: displayName, type: General.DM_CHANNEL, fake: true, nickname: u.nickname, fullname: `${u.first_name} ${u.last_name}`, + delete_at: u.delete_at, }; }); @@ -244,7 +244,7 @@ class FilteredList extends Component { const userNotInDirectOrGroupChannels = Object.values(profilesToUse).filter((u) => directAndGroupChannelMembers.indexOf(u.id) === -1 && pastDirectMessages.indexOf(u.id) === -1 && u.id !== currentUserId); const members = userNotInDirectOrGroupChannels.map((u) => { - const displayName = displayUsername(u, teammateNameDisplay); + const displayName = displayUsername(u, teammateNameDisplay, false); return { id: u.id, @@ -257,6 +257,7 @@ class FilteredList extends Component { fake: true, nickname: u.nickname, fullname: `${u.first_name} ${u.last_name}`, + delete_at: u.delete_at, }; });