mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
35 lines (34 loc) • 2.1 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.getReadRecaps = exports.getUnreadRecaps = exports.getPendingRecaps = exports.getCompletedRecaps = exports.getSortedRecaps = exports.getRecapsByStatus = void 0;
exports.getAllRecaps = getAllRecaps;
exports.getRecap = getRecap;
const recaps_1 = require("@mattermost/types/recaps");
const create_selector_1 = require("mattermost-redux/selectors/create_selector");
function getAllRecaps(state) {
const { byId, allIds } = state.entities.recaps;
return allIds.map((id) => byId[id]);
}
function getRecap(state, recapId) {
return state.entities.recaps.byId[recapId] || undefined;
}
exports.getRecapsByStatus = (0, create_selector_1.createSelector)('getRecapsByStatus', getAllRecaps, (_state, status) => status, (recaps, status) => {
return recaps.filter((recap) => recap.status === status);
});
exports.getSortedRecaps = (0, create_selector_1.createSelector)('getSortedRecaps', getAllRecaps, (recaps) => {
return [...recaps].sort((a, b) => b.create_at - a.create_at);
});
exports.getCompletedRecaps = (0, create_selector_1.createSelector)('getCompletedRecaps', getAllRecaps, (recaps) => {
return recaps.filter((recap) => recap.status === recaps_1.RecapStatus.COMPLETED).sort((a, b) => b.create_at - a.create_at);
});
exports.getPendingRecaps = (0, create_selector_1.createSelector)('getPendingRecaps', getAllRecaps, (recaps) => {
return recaps.filter((recap) => recap.status === recaps_1.RecapStatus.PENDING || recap.status === recaps_1.RecapStatus.PROCESSING);
});
exports.getUnreadRecaps = (0, create_selector_1.createSelector)('getUnreadRecaps', getAllRecaps, (recaps) => {
return recaps.filter((recap) => recap.read_at === 0).sort((a, b) => b.create_at - a.create_at);
});
exports.getReadRecaps = (0, create_selector_1.createSelector)('getReadRecaps', getAllRecaps, (recaps) => {
return recaps.filter((recap) => recap.read_at > 0).sort((a, b) => b.read_at - a.read_at);
});