lml-main
Version:
This is now a mono repository published into many standalone packages.
49 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const FrequenciesActions = require("../../frequencies/actions");
exports.frequenciesDataInitialState = {
regions: {},
serviceCentres: {},
frequencies: {},
autoAllocationGlobal: false,
};
exports.frequenciesDataReducer = (state = exports.frequenciesDataInitialState, action) => {
switch (action.type) {
case FrequenciesActions.SET_FREQUENCIES_DATA: {
return setFrequencies(state, action);
}
case FrequenciesActions.SET_AUTO_ALLOCATION_GLOBAL: {
return setAutoAllocationGlobal(state, action);
}
case FrequenciesActions.SET_FREQUENCY_AUTO_IS_ON: {
return setFrequencyAutoIsOn(state, action);
}
default: {
return state;
}
}
};
const setFrequencies = (state, action) => {
const regions = action.regions;
const serviceCentres = action.serviceCentres;
const frequencies = action.frequencies;
const autoAllocationGlobal = action.autoAllocationGlobal;
return Object.assign({}, state, { regions, serviceCentres, frequencies, autoAllocationGlobal });
};
const setAutoAllocationGlobal = (state, action) => {
const autoAllocationGlobal = action.autoAllocationGlobal;
return Object.assign({}, state, { autoAllocationGlobal });
};
//This is fired after we post a change to the server for setting the autoIsOn and recieve a success response.
const setFrequencyAutoIsOn = (state, action) => {
let frequencies = Object.assign({}, state.frequencies);
if (state.frequencies[action.label]) {
frequencies = Object.assign({}, frequencies, { [action.label]: Object.assign({}, state.frequencies[action.label], { autoIsOn: action.autoIsOn }) });
}
//This is the auto or manual counterpart for the frequency that was set in label.
if (state.frequencies[action.counterpartLabel]) {
frequencies = Object.assign({}, frequencies, { [action.counterpartLabel]: Object.assign({}, state.frequencies[action.counterpartLabel], { autoIsOn: action.autoIsOn }) });
}
return Object.assign({}, state, { frequencies });
};
//# sourceMappingURL=data.js.map