UNPKG

mattermost-redux

Version:

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

60 lines (59 loc) 2.5 kB
"use strict"; // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.getSchemes = getSchemes; exports.getScheme = getScheme; exports.makeGetSchemeChannels = makeGetSchemeChannels; exports.makeGetSchemeTeams = makeGetSchemeTeams; const schemes_1 = require("mattermost-redux/constants/schemes"); const create_selector_1 = require("mattermost-redux/selectors/create_selector"); const channels_1 = require("mattermost-redux/selectors/entities/channels"); const teams_1 = require("mattermost-redux/selectors/entities/teams"); function getSchemes(state) { return state.entities.schemes.schemes; } function getScheme(state, id) { const schemes = getSchemes(state); return schemes[id]; } function makeGetSchemeChannels() { return (0, create_selector_1.createSelector)('makeGetSchemeChannels', channels_1.getAllChannels, (state, props) => getScheme(state, props.schemeId), (allChannels, scheme) => { if (!scheme) { return []; } if (scheme.scope === schemes_1.ScopeTypes.TEAM) { const msg = `Not implemented: scheme '${scheme.id}' is team-scope but 'getSchemeChannels' only accepts channel-scoped schemes.`; console.log(msg); // eslint-disable-line no-console return []; } const schemeChannels = []; Object.entries(allChannels).forEach((item) => { const [, channel] = item; if (channel.scheme_id === scheme.id) { schemeChannels.push(channel); } }); return schemeChannels; }); } function makeGetSchemeTeams() { return (0, create_selector_1.createSelector)('makeGetSchemeTeams', teams_1.getTeams, (state, props) => getScheme(state, props.schemeId), (allTeams, scheme) => { if (!scheme) { return []; } if (scheme.scope === schemes_1.ScopeTypes.CHANNEL) { const msg = `Error: scheme '${scheme.id}' is channel-scoped but 'getSchemeChannels' only accepts team-scoped schemes.`; console.log(msg); // eslint-disable-line no-console return []; } const schemeTeams = []; Object.entries(allTeams).forEach((item) => { const [, team] = item; if (team.scheme_id === scheme.id) { schemeTeams.push(team); } }); return schemeTeams; }); }