diff --git a/src/selectors/entities/channels.js b/src/selectors/entities/channels.js index 5bbbe79dc..4f965c2fa 100644 --- a/src/selectors/entities/channels.js +++ b/src/selectors/entities/channels.js @@ -112,6 +112,19 @@ export const getChannelsInCurrentTeam = createSelector( } ); +export const getChannelsNameMapInCurrentTeam = createSelector( + getAllChannels, + getChannelSetInCurrentTeam, + (channels, currentTeamChannelSet) => { + const channelMap = {}; + currentTeamChannelSet.forEach((id) => { + const channel = channels[id]; + channelMap[channel.name] = channel; + }); + return channelMap; + } +); + export const getDirectChannels = createSelector( getAllChannels, getDirectChannelsSet, diff --git a/test/selectors/channels.test.js b/test/selectors/channels.test.js index 02c3c3952..a30d89d2b 100644 --- a/test/selectors/channels.test.js +++ b/test/selectors/channels.test.js @@ -100,4 +100,14 @@ describe('Selectors.Channels', () => { it('get unreads for current team', () => { assert.equal(Selectors.getUnreadsInCurrentTeam(testState).mentionCount, 1); }); + + it('get channel map for current team', () => { + const channelMap = { + [channel1.name]: channel1, + [channel2.name]: channel2, + [channel5.name]: channel5, + [channel6.name]: channel6 + }; + assert.deepEqual(Selectors.getChannelsNameMapInCurrentTeam(testState), channelMap); + }); });