function reducer(state, action) { state = state || { width: 960, height: 500 - 88, loading: true, margin: { top: 80, right: 80, bottom: 40, left: 80 }, x: 'Year', y: 'Unemployment', color: 'Country', radius: 'Investment', }; switch (action.type) { case 'INGEST_DATA': return Object.assign({}, state, { loading: false, data: action.data, numericColumns: action.numericColumns, ordinalColumns: action.ordinalColumns, }); case 'SET_X': return Object.assign({}, state, { x: action.column }); case 'SET_Y': return Object.assign({}, state, { y: action.column }); case 'SET_COLOR': return Object.assign({}, state, { color: action.column }); case 'SET_RADIUS': return Object.assign({}, state, { radius: action.column }); default: return state; } }