@stackend/api
Version:
JS bindings to api.stackend.com
92 lines • 3.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.forums = exports.INVALIDATE_FORUMS = exports.REQUEST_FORUMS = exports.RECEIVE_FORUMS = void 0;
// @flow
var immutability_helper_1 = __importDefault(require("immutability-helper"));
var get_1 = __importDefault(require("lodash/get"));
var createReducer_1 = __importDefault(require("../api/createReducer"));
exports.RECEIVE_FORUMS = 'RECEIVE_FORUMS';
exports.REQUEST_FORUMS = 'REQUEST_FORUMS';
exports.INVALIDATE_FORUMS = 'INVALIDATE_FORUMS';
var initialState = {
isFetching: false,
didInvalidate: false,
lastUpdated: 0,
entries: []
};
// export default function forums(state: ForumState = initialState, action: ForumActions): ForumState {
// switch (action.type) {
// case REQUEST_FORUMS:
// return update(state, {
// isFetching: { $set: true },
// didInvalidate: { $set: false }
// });
//
// case RECEIVE_FORUMS: {
// const allForums = action.entries.concat(get(state, `entries`, []));
// const uniqueForums = allForums.filter((a, i) => allForums.findIndex(s => a.id === s.id) === i);
// // console.log(forums1);
// //
// // const uniqueForums = chain(action.entries)
// // .concat(get(state, `entries`, []))
// // .groupBy('id')
// // .map(spread(merge))
// // .value();
//
// const forumState = update(state, {
// isFetching: { $set: false },
// didInvalidate: { $set: false },
// lastUpdated: { $set: Date.now() },
// entries: { $set: uniqueForums }
// });
//
// console.log(forumState);
//
// return forumState;
// }
//
// case INVALIDATE_FORUMS:
// return update(state, {
// didInvalidate: { $set: true }
// });
//
// default:
// return state;
// }
// }
exports.forums = (0, createReducer_1.default)(initialState, {
REQUEST_FORUMS: function (state) {
return (0, immutability_helper_1.default)(state, {
isFetching: { $set: true },
didInvalidate: { $set: false }
});
},
RECEIVE_FORUMS: function (state, action) {
var allForums = action.entries.concat((0, get_1.default)(state, "entries", []));
var uniqueForums = allForums.filter(function (a, i) { return allForums.findIndex(function (s) { return a.id === s.id; }) === i; });
// console.log(forums1);
//
// const uniqueForums = chain(action.entries)
// .concat(get(state, `entries`, []))
// .groupBy('id')
// .map(spread(merge))
// .value();
var forumState = (0, immutability_helper_1.default)(state, {
isFetching: { $set: false },
didInvalidate: { $set: false },
lastUpdated: { $set: Date.now() },
entries: { $set: uniqueForums }
});
return forumState;
},
INVALIDATE_FORUMS: function (state, action) {
return (0, immutability_helper_1.default)(state, {
didInvalidate: { $set: true }
});
}
});
exports.default = exports.forums;
//# sourceMappingURL=forumReducer.js.map