UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

34 lines (33 loc) 1.43 kB
"use strict"; // 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 }; }; }