64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import { handleActions } from 'redux-actions';
|
|
import * as actions from '../actions';
|
|
|
|
const settings = handleActions(
|
|
{
|
|
[actions.initSettingsRequest]: (state) => ({
|
|
...state,
|
|
processing: true,
|
|
}),
|
|
[actions.initSettingsFailure]: (state) => ({
|
|
...state,
|
|
processing: false,
|
|
}),
|
|
[actions.initSettingsSuccess]: (state, { payload }) => {
|
|
const { settingsList } = payload;
|
|
const newState = {
|
|
...state,
|
|
settingsList,
|
|
processing: false,
|
|
};
|
|
return newState;
|
|
},
|
|
[actions.toggleSettingStatus]: (state, { payload }) => {
|
|
const { settingsList } = state;
|
|
const { settingKey } = payload;
|
|
|
|
const setting = settingsList[settingKey];
|
|
|
|
const newSetting = {
|
|
...setting,
|
|
enabled: !setting.enabled,
|
|
};
|
|
const newSettingsList = {
|
|
...settingsList,
|
|
[settingKey]: newSetting,
|
|
};
|
|
return {
|
|
...state,
|
|
settingsList: newSettingsList,
|
|
};
|
|
},
|
|
[actions.testUpstreamRequest]: (state) => ({
|
|
...state,
|
|
processingTestUpstream: true,
|
|
}),
|
|
[actions.testUpstreamFailure]: (state) => ({
|
|
...state,
|
|
processingTestUpstream: false,
|
|
}),
|
|
[actions.testUpstreamSuccess]: (state) => ({
|
|
...state,
|
|
processingTestUpstream: false,
|
|
}),
|
|
},
|
|
{
|
|
processing: true,
|
|
processingTestUpstream: false,
|
|
processingDhcpStatus: false,
|
|
settingsList: {},
|
|
},
|
|
);
|
|
|
|
export default settings;
|