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;
|