81 lines
2.0 KiB
JavaScript
Raw Normal View History

2016-09-25 21:54:59 +02:00
/*
* AppReducer
*
* The reducer takes care of our data. Using actions, we can change our
* application state.
* To add a new action, add it to the switch statement in the reducer function
*
* Example:
* case YOUR_ACTION_CONSTANT:
* return state.set('yourStateVariable', true);
*/
import {
LOAD_GENERAL_SETTINGS_SUCCESS,
LOAD_GENERAL_SETTINGS,
LOAD_GENERAL_SETTINGS_ERROR,
2016-09-26 18:28:32 +02:00
CHANGE_NAME,
CHANGE_DESCRIPTION,
CHANGE_VERSION,
2016-09-27 18:06:35 +02:00
UPDATE_GENERAL_SETTINGS,
UPDATE_GENERAL_SETTINGS_SUCCESS,
UPDATE_GENERAL_SETTINGS_ERROR,
2016-09-25 21:54:59 +02:00
} from './constants';
import { fromJS } from 'immutable';
// The initial state of the App
const initialState = fromJS({
loading: false,
error: false,
2016-09-26 17:28:40 +02:00
2016-09-26 18:28:32 +02:00
name: false,
2016-09-26 17:28:40 +02:00
description: false,
version: false,
2016-09-25 21:54:59 +02:00
});
function appReducer(state = initialState, action) {
switch (action.type) {
case LOAD_GENERAL_SETTINGS:
return state
.set('loading', true)
.set('error', false)
2016-09-26 17:28:40 +02:00
.set('name', false)
.set('description', false)
.set('version', false);
2016-09-25 21:54:59 +02:00
case LOAD_GENERAL_SETTINGS_SUCCESS:
return state
2016-09-26 17:28:40 +02:00
.set('loading', false)
.set('name', action.data.name)
.set('description', action.data.description)
.set('version', action.data.version);
2016-09-25 21:54:59 +02:00
case LOAD_GENERAL_SETTINGS_ERROR:
return state
.set('error', action.error)
.set('loading', false);
2016-09-26 18:28:32 +02:00
case CHANGE_NAME:
2016-09-26 17:28:40 +02:00
return state
.set('name', action.name);
2016-09-26 18:28:32 +02:00
case CHANGE_DESCRIPTION:
return state
.set('description', action.description);
case CHANGE_VERSION:
return state
.set('version', action.version);
2016-09-27 18:06:35 +02:00
case UPDATE_GENERAL_SETTINGS:
return state
.set('loading', true)
.set('error', false);
case UPDATE_GENERAL_SETTINGS_SUCCESS:
return state
.set('loading', false);
case UPDATE_GENERAL_SETTINGS_ERROR:
return state
.set('error', action.error)
.set('loading', false);
2016-09-25 21:54:59 +02:00
default:
return state;
}
}
export default appReducer;