mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
26 lines (25 loc) • 1.47 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeAddLastViewAtToProfiles = makeAddLastViewAtToProfiles;
const create_selector_1 = require("mattermost-redux/selectors/create_selector");
const channels_1 = require("mattermost-redux/selectors/entities/channels");
const users_1 = require("mattermost-redux/selectors/entities/users");
const channel_utils_1 = require("mattermost-redux/utils/channel_utils");
function makeAddLastViewAtToProfiles() {
return (0, create_selector_1.createSelector)('makeAddLastViewAtToProfiles', users_1.getCurrentUserId, channels_1.getMyChannelMemberships, channels_1.getAllDmChannels, users_1.getUserStatuses, (_, profiles) => profiles, (currentUserId, memberships, allDmChannels, userStatuses, profiles) => {
const formattedProfiles = profiles.map((profile) => {
const channelName = (0, channel_utils_1.getDirectChannelName)(currentUserId, profile.id);
const channel = allDmChannels[channelName];
const membership = channel ? memberships[channel.id] : null;
const status = userStatuses[profile.id];
return {
...profile,
status,
last_viewed_at: channel && membership ? membership.last_viewed_at : 0,
};
});
return formattedProfiles;
});
}