twreporter-redux
Version:
redux actions and reducers for twreporter website
106 lines (78 loc) • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.topics = exports.topic = undefined;
var _actionTypes = require('../constants/action-types');
var _actionTypes2 = _interopRequireDefault(_actionTypes);
var _concat = require('lodash/concat');
var _concat2 = _interopRequireDefault(_concat);
var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _map = require('lodash/map');
var _map2 = _interopRequireDefault(_map);
var _merge = require('lodash/merge');
var _merge2 = _interopRequireDefault(_merge);
var _set = require('lodash/set');
var _set2 = _interopRequireDefault(_set);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _ = {
concat: _concat2.default,
get: _get2.default,
map: _map2.default,
merge: _merge2.default,
set: _set2.default
};
// lodash
function topic() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
switch (action.type) {
case _actionTypes2.default.GET_A_FULL_TOPIC:
{
return {
slug: _.get(action, 'payload.slug'),
error: null
};
}
case _actionTypes2.default.START_TO_GET_A_FULL_TOPIC:
console.log('url to fetch:', action.url);
return state;
case _actionTypes2.default.ERROR_TO_GET_A_FULL_TOPIC:
return {
error: action.error
};
default:
return state;
}
}
function topics() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
switch (action.type) {
case _actionTypes2.default.GET_TOPICS:
{
var items = _.get(action, 'payload.items', []);
var total = _.get(action, 'payload.total', 0);
var concatItems = _.concat(_.get(state, 'items', []), _.map(items, function (item) {
return item.slug;
}));
return _.merge({}, state, {
items: concatItems,
total: total,
error: null
});
}
case _actionTypes2.default.START_TO_GET_TOPICS:
console.log('url to fetch:', action.url);
return state;
case _actionTypes2.default.ERROR_TO_GET_TOPICS:
return _.merge({}, state, {
error: _.get(action, 'error')
});
default:
return state;
}
}
exports.topic = topic;
exports.topics = topics;