1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
|
8 |
|
9 | var _defineProperty3 = _interopRequireDefault(_defineProperty2);
|
10 |
|
11 | var _extends3 = require('babel-runtime/helpers/extends');
|
12 |
|
13 | var _extends4 = _interopRequireDefault(_extends3);
|
14 |
|
15 | exports.default = createReducer;
|
16 |
|
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
18 |
|
19 |
|
20 |
|
21 | function 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 |