UNPKG

1.48 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
8
9var _defineProperty3 = _interopRequireDefault(_defineProperty2);
10
11var _extends3 = require('babel-runtime/helpers/extends');
12
13var _extends4 = _interopRequireDefault(_extends3);
14
15exports.default = createReducer;
16
17function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19/** Created by hhj on 8/29/16. */
20
21function createReducer(actionTypes) {
22
23 return function lastFetchSignatureReducer() {
24 var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
25 var action = arguments[1];
26
27 if (!action.meta) return state;
28
29 var setSignatureFor = function setSignatureFor(actionType) {
30 return (0, _extends4.default)({}, state, (0, _defineProperty3.default)({}, actionType, action.meta.lastFetchSignature));
31 };
32
33 switch (action.type) {
34 case actionTypes.fetchCollectionSuccess:
35 case actionTypes.fetchCollectionError:
36 return setSignatureFor('fetchCollection');
37
38 case actionTypes.fetchCollectionByIdsSuccess:
39 return setSignatureFor('fetchCollectionByIds');
40
41 case actionTypes.fetchIdsSuccess:
42 return setSignatureFor('fetchIds');
43
44 case actionTypes.fetchOneSuccess:
45 case actionTypes.fetchOneError:
46 return setSignatureFor('fetchOne');
47
48 default:
49 return state;
50 }
51 };
52}
\No newline at end of file