ola-toolkit
Version:
ola 开发工具套件
65 lines (57 loc) • 1.68 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.initialApiState = undefined;
var _extends2 = require("babel-runtime/helpers/extends");
var _extends3 = _interopRequireDefault(_extends2);
exports.createBasicApiReducer = createBasicApiReducer;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initialApiState = exports.initialApiState = {
loaded: false,
loading: false,
error: null,
payload: {
page: {}
}
};
var successAndUpdate = function successAndUpdate(state, action) {
return (0, _extends3.default)({}, state, {
loading: false,
loaded: true,
error: null,
payload: action.payload
});
};
/**
* api 调用 reducer
* @returns {{init: (*|Immutable.Map<any, any>|Immutable.Map<string, *>), fetch: (function(*, *): *), success: (function(*, *): *), update: (function(*, *): *), fail: (function(*, *): *), clear: (function(*, *): *)}}
*/
function createBasicApiReducer() {
return {
fetch: function fetch(state, action) {
return (0, _extends3.default)({}, state, {
loaded: false,
loading: true
});
},
success: successAndUpdate,
update: successAndUpdate,
fail: function fail(state, action) {
return (0, _extends3.default)({}, state, {
loading: false,
loaded: false,
error: action.payload,
payload: initialApiState.payload
});
},
clear: function clear(state, action) {
return (0, _extends3.default)({}, state, {
loading: false,
loaded: false,
error: null,
payload: initialApiState.payload
});
}
};
}
;