nbugs-pc-select-user
Version:
https://nbugs.yuque.com/front-end/components/project-readme
147 lines (122 loc) • 4.72 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.RESET = void 0;
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/* eslint-disable */
var SHOW = '@@DVA_LOADING/SHOW';
var HIDE = '@@DVA_LOADING/HIDE';
var RESET = '@@DVA_LOADING/ERSET';
exports.RESET = RESET;
var NAMESPACE = 'loading';
function createLoading() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var namespace = opts.namespace || NAMESPACE;
var _opts$only = opts.only,
only = _opts$only === void 0 ? [] : _opts$only,
_opts$except = opts.except,
except = _opts$except === void 0 ? [] : _opts$except;
if (only.length > 0 && except.length > 0) {
throw Error('It is ambiguous to configurate `only` and `except` items at the same time.');
}
var initialState = {
global: false,
models: {},
effects: {}
};
var extraReducers = _defineProperty({}, namespace, function () {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var _ref = arguments.length > 1 ? arguments[1] : undefined,
type = _ref.type,
payload = _ref.payload;
var _ref2 = payload || {},
namespace = _ref2.namespace,
actionType = _ref2.actionType;
var ret;
switch (type) {
case SHOW:
ret = _objectSpread({}, state, {
global: true,
models: _objectSpread({}, state.models, _defineProperty({}, namespace, true)),
effects: _objectSpread({}, state.effects, _defineProperty({}, actionType, true))
});
break;
case HIDE:
// eslint-disable-line
var effects = _objectSpread({}, state.effects, _defineProperty({}, actionType, false));
var models = _objectSpread({}, state.models, _defineProperty({}, namespace, Object.keys(effects).some(function (actionType) {
var _namespace = actionType.split('/')[0];
if (_namespace !== namespace) return false;
return effects[actionType];
})));
var global = Object.keys(models).some(function (namespace) {
return models[namespace];
});
ret = _objectSpread({}, state, {
global: global,
models: models,
effects: effects
});
break;
case RESET:
ret = initialState;
break;
default:
ret = state;
break;
}
return ret;
});
function onEffect(effect, _ref3, model, actionType) {
var put = _ref3.put;
var namespace = model.namespace;
if (only.length === 0 && except.length === 0 || only.length > 0 && only.indexOf(actionType) !== -1 || except.length > 0 && except.indexOf(actionType) === -1) {
return (
/*#__PURE__*/
regeneratorRuntime.mark(function _callee() {
var _args = arguments;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return put({
type: SHOW,
payload: {
namespace: namespace,
actionType: actionType
}
});
case 2:
_context.next = 4;
return effect.apply(void 0, _args);
case 4:
_context.next = 6;
return put({
type: HIDE,
payload: {
namespace: namespace,
actionType: actionType
}
});
case 6:
case "end":
return _context.stop();
}
}
}, _callee);
})
);
} else {
return effect;
}
}
return {
extraReducers: extraReducers,
onEffect: onEffect
};
}
var _default = createLoading;
exports.default = _default;
;