redux-boost
Version:
80 lines (60 loc) • 2.87 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.requestsReducer = exports.defaultRequestState = undefined;
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _createReducer;
var _reduxYo = require('redux-yo');
var _utils = require('../utils');
var _actions = require('./actions');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initialState = {
errors: []
};
var defaultRequestState = exports.defaultRequestState = {
loading: false,
success: false,
result: undefined,
error: undefined
};
var requestsReducer = exports.requestsReducer = (0, _reduxYo.createReducer)((_createReducer = {}, (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchStart, function (state, _ref) {
var name = _ref.name;
return (0, _utils.merge)(state, (0, _defineProperty3.default)({}, name, (0, _extends4.default)({}, defaultRequestState, state[name], {
loading: true
})));
}), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchSuccess, function (state, payload) {
var name = payload.name,
result = payload.result,
saveRequestResult = payload.saveRequestResult;
if (name) {
return (0, _utils.update)(state, {
$merge: (0, _defineProperty3.default)({}, name, (0, _extends4.default)({}, defaultRequestState, saveRequestResult && {
result: result
}, {
success: true
}))
});
}
return state;
}), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.fetchFail, function (state, _ref2) {
var _extends2;
var name = _ref2.name,
error = _ref2.error;
return (0, _extends4.default)({}, state, (_extends2 = {}, (0, _defineProperty3.default)(_extends2, name, (0, _extends4.default)({}, defaultRequestState, {
data: state[name].data,
error: error
})), (0, _defineProperty3.default)(_extends2, 'errors', [error].concat((0, _toConsumableArray3.default)(state.errors.slice(0, 4)))), _extends2));
}), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.resetRequest, function (state, name) {
return (0, _utils.merge)(state, (0, _defineProperty3.default)({}, name, defaultRequestState));
}), (0, _defineProperty3.default)(_createReducer, _actions.requestActions.resetRequests, function (state, names) {
return (0, _utils.merge)(state, names.reduce(function (acc, name) {
acc[name] = defaultRequestState;
return acc;
}, {}));
}), _createReducer), initialState);
;