2018-02-20 19:20:31 +01:00

51 lines
1.1 KiB
JavaScript
Executable File

/*
*
* HomePage reducer
*
*/
import { fromJS, List, Map } from 'immutable';
import {
CHANGE_PARAMS,
DELETE_SUCCESS,
DROP_SUCCESS,
GET_DATA_SUCCESS,
ON_SEARCH,
} from './constants';
const initialState = fromJS({
deleteSuccess: false,
dataToDelete: '',
entriesNumber: 1,
search: '',
uploadedFiles: List([Map({})]),
params: Map({
sort: 'updatedAt',
limit: 10,
page: 1,
}),
});
function homePageReducer(state = initialState, action) {
switch (action.type) {
case CHANGE_PARAMS:
return state.updateIn(action.keys, () => action.value);
case DELETE_SUCCESS:
return state.update('deleteSuccess', (v) => v = !v);
case DROP_SUCCESS:
return state
.update('uploadedFiles', (list) => List(action.newFiles).concat(list));
case GET_DATA_SUCCESS:
return state
.update('uploadedFiles', () => List(action.data))
.update('entriesNumber', () => action.entriesNumber);
case ON_SEARCH:
return state.update('search', () => action.value);
default:
return state;
}
}
export default homePageReducer;