lml-main
Version:
This is now a mono repository published into many standalone packages.
84 lines • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const FrequenciesActions = require("../../frequencies/actions");
exports.frequenciesPendingInitialState = {
pendingFrequencies: {},
pendingFrequenciesAutoOn: {},
selectedServiceCentreCode: null,
};
exports.frequenciesPendingReducer = (state = exports.frequenciesPendingInitialState, action) => {
switch (action.type) {
case FrequenciesActions.SET_PENDING_FREQUENCIES: {
return setPendingFrequencies(state, action);
}
case FrequenciesActions.SET_PENDING_FREQUENCY_AUTO_ON_BATCH: {
return setPendingFrequencyAutoOnBatch(state, action);
}
case FrequenciesActions.SET_PENDING_SERVICE_CENTRE_CODE: {
return setPendingServiceCentreCode(state, action);
}
case FrequenciesActions.SET_PENDING_FREQUENCY_SELECTED: {
return setPendingFrequencySelected(state, action);
}
case FrequenciesActions.SET_PENDING_FREQUENCY_AUTO_ON: {
return setPendingFrequencyAutoOn(state, action);
}
case FrequenciesActions.SET_ALL_PENDING_FREQUENCIES_IN_SERVICE_CENTRE_SELECTED: {
return setAllPendingFrequenciesInServiceCentreSelected(state, action);
}
default: {
return state;
}
}
};
const setPendingFrequencies = (state, action) => {
const pendingFrequencies = action.frequencies;
return Object.assign({}, state, { pendingFrequencies });
};
const setPendingFrequencyAutoOnBatch = (state, action) => {
const pendingFrequenciesAutoOn = action.frequencies;
return Object.assign({}, state, { pendingFrequenciesAutoOn });
};
const setPendingServiceCentreCode = (state, action) => {
const selectedServiceCentreCode = action.code;
return Object.assign({}, state, { selectedServiceCentreCode });
};
const setPendingFrequencySelected = (state, action) => {
let pendingFrequencies;
if (!action.selected) {
// shallow coppy the selected frequencies and then delete the key from the copy
pendingFrequencies = Object.assign({}, state.pendingFrequencies);
if (action.frequency)
delete pendingFrequencies[action.frequency];
if (action.counterpart)
delete pendingFrequencies[action.counterpart];
}
else {
pendingFrequencies = Object.assign({}, state.pendingFrequencies, { [action.frequency]: true });
if (action.counterpart) {
pendingFrequencies = Object.assign({}, pendingFrequencies, { [action.counterpart]: true });
}
}
return Object.assign({}, state, { pendingFrequencies });
};
const setAllPendingFrequenciesInServiceCentreSelected = (state, action) => {
let pendingFrequencies = Object.assign({}, state.pendingFrequencies);
if (state.selectedServiceCentreCode == null) {
return state;
}
for (let frequency of action.frequencies) {
if (action.selected) {
pendingFrequencies = Object.assign({}, pendingFrequencies, { [frequency.label]: true });
}
else {
delete pendingFrequencies[frequency.label];
}
}
return Object.assign({}, state, { pendingFrequencies });
};
const setPendingFrequencyAutoOn = (state, action) => {
let pendingFrequenciesAutoOn;
pendingFrequenciesAutoOn = Object.assign({}, state.pendingFrequenciesAutoOn, { [action.frequency]: action.autoIsOn });
return Object.assign({}, state, { pendingFrequenciesAutoOn });
};
//# sourceMappingURL=pending.js.map