reducers.ts 1011 B

123456789101112131415161718192021222324252627282930313233
  1. import { Invitee, OrgUser, UsersState } from 'app/types';
  2. import { Action, ActionTypes } from './actions';
  3. import config from 'app/core/config';
  4. export const initialState: UsersState = {
  5. invitees: [] as Invitee[],
  6. users: [] as OrgUser[],
  7. searchQuery: '',
  8. canInvite: !config.disableLoginForm && !config.externalUserMngLinkName,
  9. externalUserMngInfo: config.externalUserMngInfo,
  10. externalUserMngLinkName: config.externalUserMngLinkName,
  11. externalUserMngLinkUrl: config.externalUserMngLinkUrl,
  12. hasFetched: false,
  13. };
  14. export const usersReducer = (state = initialState, action: Action): UsersState => {
  15. switch (action.type) {
  16. case ActionTypes.LoadUsers:
  17. return { ...state, hasFetched: true, users: action.payload };
  18. case ActionTypes.LoadInvitees:
  19. return { ...state, hasFetched: true, invitees: action.payload };
  20. case ActionTypes.SetUsersSearchQuery:
  21. return { ...state, searchQuery: action.payload };
  22. }
  23. return state;
  24. };
  25. export default {
  26. users: usersReducer,
  27. };