mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
62 lines • 2.58 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeGetSchemeTeams = exports.makeGetSchemeChannels = exports.getScheme = exports.getSchemes = void 0;
var tslib_1 = require("tslib");
var reselect_1 = require("reselect");
var schemes_1 = require("../../constants/schemes");
var channels_1 = require("./channels");
var teams_1 = require("./teams");
function getSchemes(state) {
return state.entities.schemes.schemes;
}
exports.getSchemes = getSchemes;
function getScheme(state, id) {
var schemes = getSchemes(state);
return schemes[id];
}
exports.getScheme = getScheme;
function makeGetSchemeChannels() {
return reselect_1.createSelector(channels_1.getAllChannels, function (state, props) { return getScheme(state, props.schemeId); }, function (allChannels, scheme) {
if (!scheme) {
return [];
}
if (scheme.scope === schemes_1.ScopeTypes.TEAM) {
var 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 [];
}
var schemeChannels = [];
Object.entries(allChannels).forEach(function (item) {
var _a = tslib_1.__read(item, 2), channel = _a[1];
if (channel.scheme_id === scheme.id) {
schemeChannels.push(channel);
}
});
return schemeChannels;
});
}
exports.makeGetSchemeChannels = makeGetSchemeChannels;
function makeGetSchemeTeams() {
return reselect_1.createSelector(teams_1.getTeams, function (state, props) { return getScheme(state, props.schemeId); }, function (allTeams, scheme) {
if (!scheme) {
return [];
}
if (scheme.scope === schemes_1.ScopeTypes.CHANNEL) {
var msg = "Error: scheme '" + scheme.id + "' is channel-scoped but 'getSchemeChannels' only accepts team-scoped schemes.";
console.log(msg); // eslint-disable-line no-console
return [];
}
var schemeTeams = [];
Object.entries(allTeams).forEach(function (item) {
var _a = tslib_1.__read(item, 2), team = _a[1];
if (team.scheme_id === scheme.id) {
schemeTeams.push(team);
}
});
return schemeTeams;
});
}
exports.makeGetSchemeTeams = makeGetSchemeTeams;
//# sourceMappingURL=schemes.js.map