51 lines
1.1 KiB
JavaScript
Raw Normal View History

/*
*
* HomePage reducer
*
*/
2018-02-19 13:10:35 +01:00
import { fromJS, List, Map } from 'immutable';
2018-02-16 14:17:24 +01:00
import {
2018-02-19 15:14:32 +01:00
CHANGE_PARAMS,
DELETE_SUCCESS,
2018-02-16 14:17:24 +01:00
DROP_SUCCESS,
GET_DATA_SUCCESS,
2018-02-16 14:17:24 +01:00
ON_SEARCH,
} from './constants';
const initialState = fromJS({
2018-02-19 15:14:32 +01:00
deleteSuccess: false,
dataToDelete: '',
2018-02-19 17:41:05 +01:00
entriesNumber: 1,
search: '',
2018-02-19 13:10:35 +01:00
uploadedFiles: List([Map({})]),
2018-02-19 15:14:32 +01:00
params: Map({
sort: 'updatedAt',
limit: 10,
2018-02-20 19:20:31 +01:00
page: 1,
2018-02-19 15:14:32 +01:00
}),
});
function homePageReducer(state = initialState, action) {
switch (action.type) {
2018-02-19 15:14:32 +01:00
case CHANGE_PARAMS:
return state.updateIn(action.keys, () => action.value);
2018-02-19 15:14:32 +01:00
case DELETE_SUCCESS:
return state.update('deleteSuccess', (v) => v = !v);
2018-02-16 14:17:24 +01:00
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;