twreporter-redux
Version:
redux actions and reducers for twreporter website
83 lines (70 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = function () {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments[1];
switch (action.type) {
case _actionTypes2.default.RECORD_BOOKMARK_ERROR:
{
return _extends({}, state, {
error: action.payload.error
});
}
case _actionTypes2.default.GET_MULTIPLE_BOOKMARKS:
{
var latest_data = _.get(action, ['payload', 'data'], []);
var current_data = _.get(state, 'data', 0);
var total = _.get(action, ['payload', 'total'], 0);
var res_data = _.concat(current_data, latest_data);
return _extends({}, state, {
data: res_data,
total: total,
initialized: true
});
}
case _actionTypes2.default.DELETE_SINGLE_BOOKMARK:
{
var _current_data = _.get(state, ['data'], []);
var current_total = _.get(state, ['total'], 0);
var index = _.get(action, ['payload', 'index'], -1);
if (index > -1) {
_current_data.splice(index, 1);
}
return _extends({}, state, {
data: _current_data,
total: current_total === 0 ? 0 : current_total - 1
});
}
case _actionTypes2.default.CREATE_SINGLE_BOOKMARK:
{
var _current_data2 = _.get(state, ['data'], []);
_current_data2.unshift(_.get(action, ['payload', 'bookmark'], {}));
return _extends({}, state, {
data: _current_data2,
total: _.get(state, ['total'], 0) + 1
});
}
default:
return state;
}
};
var _actionTypes = require('../constants/action-types');
var _actionTypes2 = _interopRequireDefault(_actionTypes);
var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _concat = require('lodash/concat');
var _concat2 = _interopRequireDefault(_concat);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _ = {
get: _get2.default,
concat: _concat2.default
};
var initialState = {
error: {},
data: [],
total: 0,
initialized: false
};