react-redux-fetch
Version:
A declarative and customizable way to fetch data for React components and manage that data in the Redux state
59 lines (39 loc) • 2.11 kB
JavaScript
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _seamlessImmutable = require('seamless-immutable');
var _seamlessImmutable2 = _interopRequireDefault(_seamlessImmutable);
var _actionTypes = require('../constants/actionTypes');
var _request = require('../constants/request');
var _fetchRequest = require('../utils/fetchRequest');
var _fetchRequest2 = _interopRequireDefault(_fetchRequest);
var _fetchFulfill = require('../utils/fetchFulfill');
var _fetchFulfill2 = _interopRequireDefault(_fetchFulfill);
var _fetchReject = require('../utils/fetchReject');
var _fetchReject2 = _interopRequireDefault(_fetchReject);
var _createRemoveFromListAction = require('../utils/createRemoveFromListAction');
var _createRemoveFromListAction2 = _interopRequireDefault(_createRemoveFromListAction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var INITIAL_STATE = _extends({}, _request.INIT, {
value: null,
request: { meta: null }
});
var deleteReducer = function deleteReducer() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _seamlessImmutable2.default)(INITIAL_STATE);
var action = arguments[1];
switch (action.type) {
case _actionTypes.FETCH.for('delete').REQUEST:
return (0, _fetchRequest2.default)(state, action);
case _actionTypes.FETCH.for('delete').FULFILL:
if (action.request.meta && action.request.meta.removeFromList && state.value) {
var newAction = (0, _createRemoveFromListAction2.default)(state, action);
return (0, _fetchFulfill2.default)(state, newAction);
}
return (0, _fetchFulfill2.default)(state, action);
case _actionTypes.FETCH.for('delete').REJECT:
return (0, _fetchReject2.default)(state, action);
default:
return state;
}
};
exports.default = deleteReducer;
;