Newer
Older
ADD_TASK,
DELETE_TASK,
EDIT_TASK,
ADD_SOLUTION,
GET_PROFILES,
GET_DOCUMENTS } from '../actions/types';
id: 0,
documents: [],
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
return { ...state, tasks: action.payload };
case GET_SOLUTIONS:
return { ...state, solutions: action.payload };
case CORRECT_SOLUTION:
const modifiedSolution = state.solutions.find(sol => sol.id === action.payload.id);
const modifiedSolutions = state.solutions.slice();
modifiedSolutions.splice(state.solutions.indexOf(modifiedSolution), 1, action.payload);
return { ...state, solutions: [...modifiedSolutions] };
return { ...state, solutions: [action.payload, ...state.solutions], id: action.payload.id };
return { ...state, tasks: [action.payload, ...state.tasks] };
case DELETE_TASK:
return {
...state,
tasks: [...state.tasks.slice(0, state.tasks.indexOf(action.payload)),
...state.tasks.slice(state.tasks.indexOf(action.payload) + 1)],
};
case EDIT_TASK:
return {
...state,
tasks: [...state.tasks.map((task) => {
if (task.id !== action.payload.id) {
return task;
}
return action.payload;
}),
],
};
case GET_PROFILES:
return { ...state, profiles: action.payload };
case GET_DOCUMENTS:
return { ...state, documents: action.payload };