Grégoire Delattre 4b26080193
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Update redux state management
Use immer with native javascript objects instead of immutablejs.
2020-04-07 18:22:26 +02:00

40 lines
858 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_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;
}
});