redux-data-structures
Version:
Creator functions for common reducers
37 lines (36 loc) • 1.71 kB
JavaScript
export default (function (_ref) {
var _ref$initialState = _ref.initialState,
initialState = _ref$initialState === undefined ? false : _ref$initialState,
_ref$trueActionTypes = _ref.trueActionTypes,
trueActionTypes = _ref$trueActionTypes === undefined ? [] : _ref$trueActionTypes,
_ref$additionalCondit = _ref.additionalConditionToTrue,
additionalConditionToTrue = _ref$additionalCondit === undefined ? function () {
return true;
} : _ref$additionalCondit,
_ref$falseActionTypes = _ref.falseActionTypes,
falseActionTypes = _ref$falseActionTypes === undefined ? [] : _ref$falseActionTypes,
_ref$additionalCondit2 = _ref.additionalConditionToFalse,
additionalConditionToFalse = _ref$additionalCondit2 === undefined ? function () {
return true;
} : _ref$additionalCondit2,
_ref$toggleActionType = _ref.toggleActionTypes,
toggleActionTypes = _ref$toggleActionType === undefined ? [] : _ref$toggleActionType,
_ref$resetActionTypes = _ref.resetActionTypes,
resetActionTypes = _ref$resetActionTypes === undefined ? [] : _ref$resetActionTypes;
return function () {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
var type = action.type;
if (trueActionTypes.includes(type) && additionalConditionToTrue(action)) {
return true;
} else if (falseActionTypes.includes(type) && additionalConditionToFalse(action)) {
return false;
} else if (toggleActionTypes.includes(type)) {
return !state;
} else if (resetActionTypes.includes(type)) {
return initialState;
} else {
return state;
}
};
});