45 lines
978 B
JavaScript

import { produce } from "immer";
export const defaultState = {
fetchingModules: false,
users: new Map(),
stats: {},
modules: {},
};
export default (state = defaultState, action) =>
produce(state, (draft) => {
switch (action.type) {
case "ADMIN_LIST_USERS_FULFILLED": {
action.payload.response.data.forEach((user) => {
draft.users.set(user.id, user);
});
break;
}
case "ADMIN_DELETE_USER_FULFILLED": {
draft.users.delete(action.payload.main.id);
break;
}
case "ADMIN_GET_STATS_FULFILLED": {
draft.stats = action.payload.response.data;
break;
}
case "ADMIN_GET_MODULES_PENDING": {
draft.fetchingModules = true;
break;
}
case "ADMIN_GET_MODULES_FULFILLED": {
draft.fetchingModules = false;
draft.modules = action.payload.response.data;
break;
}
default:
return draft;
}
});