27 lines
598 B
JavaScript
27 lines
598 B
JavaScript
|
import { FETCH_PROJECTS_SUCCESS } from "../actions/projects";
|
||
|
|
||
|
export const defaultState = {
|
||
|
byName: {},
|
||
|
};
|
||
|
|
||
|
export function projectsReducer(state = defaultState, action) {
|
||
|
switch(action.type) {
|
||
|
case FETCH_PROJECTS_SUCCESS:
|
||
|
return handleFetchProjectsSuccess(state, action);
|
||
|
default:
|
||
|
return state;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function handleFetchProjectsSuccess(state, action) {
|
||
|
const projectsByName = action.projects.reduce((byName, project) => {
|
||
|
byName[project.full_name] = project;
|
||
|
return byName;
|
||
|
}, {});
|
||
|
return {
|
||
|
...state,
|
||
|
byName: {
|
||
|
...projectsByName,
|
||
|
}
|
||
|
};
|
||
|
}
|