mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
34 lines (33 loc) • 1.43 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeNotVisibleUsers = removeNotVisibleUsers;
const redux_batched_actions_1 = require("redux-batched-actions");
const action_types_1 = require("mattermost-redux/action_types");
const users_1 = require("mattermost-redux/selectors/entities/users");
const users_2 = require("./users");
function removeNotVisibleUsers() {
return async (dispatch, getState) => {
const state = getState();
let knownUsers;
try {
const fetchResult = await dispatch((0, users_2.getKnownUsers)());
knownUsers = new Set(fetchResult.data);
}
catch (err) {
return { error: err };
}
knownUsers.add((0, users_1.getCurrentUserId)(state));
const allUsers = Object.keys((0, users_1.getUsers)(state));
const usersToRemove = new Set(allUsers.filter((x) => !knownUsers.has(x)));
const actions = [];
for (const userToRemove of usersToRemove.values()) {
actions.push({ type: action_types_1.UserTypes.PROFILE_NO_LONGER_VISIBLE, data: { user_id: userToRemove } });
}
if (actions.length > 0) {
dispatch((0, redux_batched_actions_1.batchActions)(actions));
}
return { data: true };
};
}