@twreporter/redux
Version:
redux actions and reducers for twreporter website
74 lines (72 loc) • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
var _reduxStateFieldNames = _interopRequireDefault(require("../constants/redux-state-field-names"));
var _concat = _interopRequireDefault(require("lodash/concat"));
var _get = _interopRequireDefault(require("lodash/get"));
var _map = _interopRequireDefault(require("lodash/map"));
var _merge = _interopRequireDefault(require("lodash/merge"));
var _values = _interopRequireDefault(require("lodash/values"));
var _snakeCase = _interopRequireDefault(require("lodash/snakeCase"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// lodash
var _ = {
concat: _concat["default"],
get: _get["default"],
map: _map["default"],
merge: _merge["default"],
values: _values["default"],
snakeCase: _snakeCase["default"]
};
var initialState = {
error: null,
isFetching: false,
isReady: false
};
function indexPage() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var payload;
switch (action.type) {
case _actionTypes["default"].indexPage.read.success:
{
payload = action.payload;
var rtn = {};
var sections = _.values(_reduxStateFieldNames["default"].sections);
var categories = _.values(_reduxStateFieldNames["default"].categories);
var fields = _.concat(sections, categories);
fields.forEach(function (field) {
var key = _.snakeCase(field);
rtn[field] = _.map(_.get(payload, ['items', key]), function (post) {
return _.get(post, 'id');
});
});
return _.merge({}, state, rtn, {
error: null,
isFetching: false,
isReady: true
});
}
case _actionTypes["default"].indexPage.read.request:
{
return _.merge({}, state, {
isFetching: true,
isReady: false
});
}
case _actionTypes["default"].indexPage.read.failure:
{
return _.merge({}, state, {
error: action.payload.error,
isFetching: false,
isReady: false
});
}
default:
return state;
}
}
var _default = exports["default"] = indexPage;