@twreporter/redux
Version:
redux actions and reducers for twreporter website
75 lines (74 loc) • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = bookmarkWidget;
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
var _get = _interopRequireDefault(require("lodash/get"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _ = {
get: _get["default"]
};
var initState = {
actionType: null,
isRequesting: false,
bookmark: null,
errorMessage: null
};
function bookmarkWidget() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initState;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case _actionTypes["default"].singleBookmark.read.request:
case _actionTypes["default"].singleBookmark["delete"].request:
case _actionTypes["default"].singleBookmark.create.request:
{
return {
actionType: action.type,
isRequesting: true,
bookmark: _.get(state, 'bookmark'),
errorMessage: null
};
}
case _actionTypes["default"].singleBookmark.read.success:
{
return {
actionType: action.type,
isRequesting: false,
bookmark: _.get(action, 'payload.data.record'),
errorMessage: null
};
}
case _actionTypes["default"].singleBookmark["delete"].success:
{
return {
actionType: action.type,
isRequesting: false,
bookmark: null,
errorMessage: null
};
}
case _actionTypes["default"].singleBookmark.create.success:
{
return {
actionType: action.type,
isRequesting: false,
bookmark: _.get(action, 'payload.data.record'),
errorMessage: null
};
}
case _actionTypes["default"].singleBookmark.read.failure:
case _actionTypes["default"].singleBookmark["delete"].failure:
case _actionTypes["default"].singleBookmark.create.failure:
{
return {
actionType: action.type,
isRequesting: false,
bookmark: _.get(state, 'bookmark'),
errorMessage: _.get(action, 'payload.error.message')
};
}
default:
return state;
}
}