grafana/public/app/features/users/state/selectors.ts
Jack Westbrook 9caf2f8b3a
Configuration: Prevent browser hanging / crashing with large number of org users (#32546)
* fix(userslist): introduce pagination to prevent browser crash with large number of users

* test(userlist): fix failing tests

* refactor(userlist): use layout components for spacing

* test(userslist): update snapshots
2021-04-01 14:46:55 +02:00

22 lines
736 B
TypeScript

import { UsersState } from 'app/types';
export const getUsers = (state: UsersState) => {
const regex = new RegExp(state.searchQuery, 'i');
return state.users.filter((user) => {
return regex.test(user.login) || regex.test(user.email) || regex.test(user.name);
});
};
export const getInvitees = (state: UsersState) => {
const regex = new RegExp(state.searchQuery, 'i');
return state.invitees.filter((invitee) => {
return regex.test(invitee.name) || regex.test(invitee.email);
});
};
export const getInviteesCount = (state: UsersState) => state.invitees.length;
export const getUsersSearchQuery = (state: UsersState) => state.searchQuery;
export const getUsersSearchPage = (state: UsersState) => state.searchPage;