strapi-plugin-config-sync/admin/src/state/reducers/Config/index.js

40 lines
937 B
JavaScript

/**
*
* Main reducer
*
*/
import { fromJS, Map, List } from 'immutable';
import {
SET_CONFIG_DIFF_IN_STATE,
SET_CONFIG_PARTIAL_DIFF_IN_STATE,
SET_LOADING_STATE,
SET_APP_ENV_IN_STATE,
} from '../../actions/Config';
const initialState = fromJS({
configDiff: Map({}),
partialDiff: List([]),
isLoading: false,
appEnv: 'development',
});
export default function configReducer(state = initialState, action) {
switch (action.type) {
case SET_CONFIG_DIFF_IN_STATE:
return state
.update('configDiff', () => fromJS(action.config));
case SET_CONFIG_PARTIAL_DIFF_IN_STATE:
return state
.update('partialDiff', () => fromJS(action.config));
case SET_LOADING_STATE:
return state
.update('isLoading', () => fromJS(action.value));
case SET_APP_ENV_IN_STATE:
return state
.update('appEnv', () => fromJS(action.value));
default:
return state;
}
}