mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
54 lines • 2.67 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUnreadThreadOrderInCurrentTeam = exports.getThreadOrderInCurrentTeam = exports.getThread = exports.getThreads = exports.getThreadCountsInCurrentTeam = exports.getTeamThreadCounts = exports.getThreadCounts = exports.getThreadsInCurrentTeam = exports.getThreadsInTeam = void 0;
var tslib_1 = require("tslib");
var reselect_1 = require("reselect");
var teams_1 = require("./teams");
function getThreadsInTeam(state) {
return state.entities.threads.threadsInTeam;
}
exports.getThreadsInTeam = getThreadsInTeam;
exports.getThreadsInCurrentTeam = reselect_1.createSelector(teams_1.getCurrentTeamId, getThreadsInTeam, function (currentTeamId, threadsInTeam) {
var _a;
return (_a = threadsInTeam === null || threadsInTeam === void 0 ? void 0 : threadsInTeam[currentTeamId]) !== null && _a !== void 0 ? _a : [];
});
function getThreadCounts(state) {
return state.entities.threads.counts;
}
exports.getThreadCounts = getThreadCounts;
function getTeamThreadCounts(state, teamId) {
return getThreadCounts(state)[teamId];
}
exports.getTeamThreadCounts = getTeamThreadCounts;
exports.getThreadCountsInCurrentTeam = reselect_1.createSelector(teams_1.getCurrentTeamId, getThreadCounts, function (currentTeamId, counts) {
return counts === null || counts === void 0 ? void 0 : counts[currentTeamId];
});
function getThreads(state) {
return state.entities.threads.threads;
}
exports.getThreads = getThreads;
function getThread(state, threadId) {
var _a;
if (!threadId || !((_a = exports.getThreadsInCurrentTeam(state)) === null || _a === void 0 ? void 0 : _a.includes(threadId))) {
return null;
}
return getThreads(state)[threadId];
}
exports.getThread = getThread;
exports.getThreadOrderInCurrentTeam = reselect_1.createSelector(exports.getThreadsInCurrentTeam, getThreads, function (threadsInTeam, threads) {
var ids = tslib_1.__spread(threadsInTeam);
return sortByLastReply(ids, threads);
});
exports.getUnreadThreadOrderInCurrentTeam = reselect_1.createSelector(exports.getThreadsInCurrentTeam, getThreads, function (threadsInTeam, threads) {
var ids = threadsInTeam.filter(function (id) {
var thread = threads[id];
return thread.unread_mentions || thread.unread_replies;
});
return sortByLastReply(ids, threads);
});
function sortByLastReply(ids, threads) {
return ids.sort(function (a, b) { return threads[b].last_reply_at - threads[a].last_reply_at; });
}
//# sourceMappingURL=threads.js.map