UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

92 lines 3.3 kB
"use strict"; 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