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; } });