selectors.ts 933 B

123456789101112131415161718192021222324252627282930
  1. import { Team, TeamsState, TeamState } from 'app/types';
  2. export const getSearchQuery = (state: TeamsState) => state.searchQuery;
  3. export const getSearchMemberQuery = (state: TeamState) => state.searchMemberQuery;
  4. export const getTeamGroups = (state: TeamState) => state.groups;
  5. export const getTeamsCount = (state: TeamsState) => state.teams.length;
  6. export const getTeam = (state: TeamState, currentTeamId): Team | null => {
  7. if (state.team.id === parseInt(currentTeamId, 10)) {
  8. return state.team;
  9. }
  10. return null;
  11. };
  12. export const getTeams = (state: TeamsState) => {
  13. const regex = RegExp(state.searchQuery, 'i');
  14. return state.teams.filter(team => {
  15. return regex.test(team.name);
  16. });
  17. };
  18. export const getTeamMembers = (state: TeamState) => {
  19. const regex = RegExp(state.searchMemberQuery, 'i');
  20. return state.members.filter(member => {
  21. return regex.test(member.login) || regex.test(member.email);
  22. });
  23. };