2018-02-08 12:01:06 +01:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* HomePage reducer
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2018-02-19 13:10:35 +01:00
|
|
|
import { fromJS, List, Map } from 'immutable';
|
2018-02-08 12:01:06 +01:00
|
|
|
|
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,
|
2018-02-16 15:39:35 +01:00
|
|
|
GET_DATA_SUCCESS,
|
2018-02-16 14:17:24 +01:00
|
|
|
ON_SEARCH,
|
2018-02-23 12:21:57 +01:00
|
|
|
SET_PARAMS,
|
2018-02-16 14:17:24 +01:00
|
|
|
} from './constants';
|
2018-02-08 12:01:06 +01:00
|
|
|
|
2018-02-15 17:46:57 +01:00
|
|
|
const initialState = fromJS({
|
2018-02-19 15:14:32 +01:00
|
|
|
deleteSuccess: false,
|
|
|
|
dataToDelete: '',
|
2018-02-22 18:24:17 +01:00
|
|
|
entriesNumber: 0,
|
2018-02-15 17:46:57 +01:00
|
|
|
search: '',
|
2018-02-19 13:10:35 +01:00
|
|
|
uploadedFiles: List([Map({})]),
|
2018-02-19 15:14:32 +01:00
|
|
|
params: Map({
|
2018-02-22 18:24:17 +01:00
|
|
|
sort: 'hash',
|
2018-02-19 15:14:32 +01:00
|
|
|
limit: 10,
|
2018-02-20 19:20:31 +01:00
|
|
|
page: 1,
|
2018-02-19 15:14:32 +01:00
|
|
|
}),
|
2018-02-15 17:46:57 +01:00
|
|
|
});
|
2018-02-08 12:01:06 +01:00
|
|
|
|
|
|
|
function homePageReducer(state = initialState, action) {
|
|
|
|
switch (action.type) {
|
2018-02-19 15:14:32 +01:00
|
|
|
case CHANGE_PARAMS:
|
2018-02-19 17:05:23 +01:00
|
|
|
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));
|
2018-02-16 15:39:35 +01:00
|
|
|
case GET_DATA_SUCCESS:
|
|
|
|
return state
|
|
|
|
.update('uploadedFiles', () => List(action.data))
|
|
|
|
.update('entriesNumber', () => action.entriesNumber);
|
2018-02-15 17:46:57 +01:00
|
|
|
case ON_SEARCH:
|
|
|
|
return state.update('search', () => action.value);
|
2018-02-23 12:21:57 +01:00
|
|
|
case SET_PARAMS:
|
|
|
|
return state.set('params', Map(action.params));
|
2018-02-08 12:01:06 +01:00
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default homePageReducer;
|