grafana/public/app/features/users/state/reducers.ts

34 lines
1011 B
TypeScript
Raw Normal View History

2018-10-03 02:43:10 -05:00
import { Invitee, OrgUser, UsersState } from 'app/types';
import { Action, ActionTypes } from './actions';
2018-10-11 04:49:34 -05:00
import config from 'app/core/config';
2018-10-03 02:43:10 -05:00
export const initialState: UsersState = {
invitees: [] as Invitee[],
users: [] as OrgUser[],
searchQuery: '',
canInvite: !config.disableLoginForm && !config.externalUserMngLinkName,
externalUserMngInfo: config.externalUserMngInfo,
externalUserMngLinkName: config.externalUserMngLinkName,
externalUserMngLinkUrl: config.externalUserMngLinkUrl,
2018-10-11 04:49:34 -05:00
hasFetched: false,
2018-10-03 02:43:10 -05:00
};
export const usersReducer = (state = initialState, action: Action): UsersState => {
switch (action.type) {
case ActionTypes.LoadUsers:
2018-10-11 04:49:34 -05:00
return { ...state, hasFetched: true, users: action.payload };
2018-10-03 02:43:10 -05:00
case ActionTypes.LoadInvitees:
2018-10-11 04:49:34 -05:00
return { ...state, hasFetched: true, invitees: action.payload };
2018-10-03 02:43:10 -05:00
case ActionTypes.SetUsersSearchQuery:
return { ...state, searchQuery: action.payload };
}
return state;
};
export default {
users: usersReducer,
};