UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

30 lines (25 loc) 1.03 kB
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import {createSelector} from 'reselect'; import {Bot} from 'types/bots'; import {GlobalState} from 'types/store'; import {Dictionary} from 'types/utilities'; import {getUsers} from 'selectors/entities/common'; export const ExternalBotAccountNames: string[] = ['mattermost-advisor']; export function getBotAccounts(state: GlobalState) { return state.entities.bots.accounts; } export const getExternalBotAccounts: (state: GlobalState) => Dictionary<Bot> = createSelector( getBotAccounts, getUsers, (botAccounts, userProfiles) => { const nextState: Dictionary<Bot> = {}; Object.values(botAccounts).forEach((botAccount) => { const botUser = userProfiles[botAccount.user_id]; if (botUser && !ExternalBotAccountNames.includes(botUser.username)) { nextState[botAccount.user_id] = botAccount; } }); return nextState; }, );