UNPKG

react-redux-fetch

Version:

A declarative and customizable way to fetch data for React components and manage that data in the Redux state

71 lines (49 loc) 2.68 kB
'use strict'; exports.__esModule = true; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 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 _filter = require('lodash/filter'); var _filter2 = _interopRequireDefault(_filter); 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); 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 _ret = function () { var idName = action.request.meta.removeFromList.idName; var id = action.request.meta.removeFromList.id; var val = (0, _filter2.default)(state.value, function (value) { return value[idName] !== id; }); return { v: (0, _fetchFulfill2.default)(state, Object.assign({}, action, { value: val })) }; }(); if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; } return (0, _fetchFulfill2.default)(state, action); case _actionTypes.FETCH.for('delete').REJECT: return (0, _fetchReject2.default)(state, action); default: return state; } }; exports.default = deleteReducer;