mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
36 lines (35 loc) • 1.82 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCustomEmojiIdsSortedByName = exports.getCustomEmojisByName = exports.getCustomEmojisAsMap = exports.getCustomEmojis = exports.getCustomEmojisEnabled = void 0;
const create_selector_1 = require("mattermost-redux/selectors/create_selector");
const general_1 = require("mattermost-redux/selectors/entities/general");
const helpers_1 = require("mattermost-redux/utils/helpers");
const getCustomEmojisEnabled = (state) => {
return (0, general_1.getConfig)(state)?.EnableCustomEmoji === 'true';
};
exports.getCustomEmojisEnabled = getCustomEmojisEnabled;
exports.getCustomEmojis = (0, create_selector_1.createSelector)('getCustomEmojis', exports.getCustomEmojisEnabled, (state) => state.entities.emojis.customEmoji, (customEmojiEnabled, customEmoji) => {
if (!customEmojiEnabled) {
return {};
}
return customEmoji;
});
exports.getCustomEmojisAsMap = (0, create_selector_1.createSelector)('getCustomEmojisAsMap', exports.getCustomEmojis, (emojis) => {
const map = new Map();
Object.keys(emojis).forEach((key) => {
map.set(key, emojis[key]);
});
return map;
});
exports.getCustomEmojisByName = (0, create_selector_1.createSelector)('getCustomEmojisByName', exports.getCustomEmojis, (emojis) => {
const map = new Map();
Object.keys(emojis).forEach((key) => {
map.set(emojis[key].name, emojis[key]);
});
return map;
});
exports.getCustomEmojiIdsSortedByName = (0, helpers_1.createIdsSelector)('getCustomEmojiIdsSortedByName', exports.getCustomEmojis, (emojis) => {
return Object.keys(emojis).sort((a, b) => emojis[a].name.localeCompare(emojis[b].name));
});