@lvxiaowu/antd4
Version:
antd4-components
57 lines (49 loc) • 1.9 kB
JavaScript
import { action } from 'mobx';
import { getGlobalConfig, DataType } from '@lvxiaowu/utils'; // 重置mobx的store
export var resetStore = action(function (self, Instance, propNames) {
if (self && Instance) {
var store = DataType.isFunc(Instance) ? new Instance() : Instance;
var allProps;
if (Array.isArray(propNames)) {
allProps = propNames;
} else {
var proto = Object.getPrototypeOf(store);
var ownPropsName = Object.getOwnPropertyNames(store);
var protoName = Object.getOwnPropertyNames(proto);
allProps = ownPropsName.concat(protoName);
}
allProps.forEach(function (name) {
if (!DataType.isFunc(self[name]) && self[name] !== store[name]) {
var _self$name;
if ((_self$name = self[name]) === null || _self$name === void 0 ? void 0 : _self$name.$storeName) {
var _self$name2;
(_self$name2 = self[name]) === null || _self$name2 === void 0 ? void 0 : _self$name2.resetStore();
} else {
self[name] = store[name];
}
}
});
}
});
export function overrideStore(instance, overrides) {
Object.keys(overrides || {}).forEach(function (name) {
var desc = Object.getOwnPropertyDescriptor(overrides, name);
if (desc.get) {
Object.defineProperty(instance, name, desc);
} else {
instance[name] = overrides[name];
}
});
}
export function getPathLevel(pathname) {
var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var pathSplit = pathname.split('/').filter(Boolean);
if (pathSplit.length >= level) {
return '/' + pathSplit.splice(0, level).join('/');
}
}
export function hasAuth(value) {
var _admin$hasAuth;
var admin = getGlobalConfig('appContext') || {};
return !!((_admin$hasAuth = admin.hasAuth) === null || _admin$hasAuth === void 0 ? void 0 : _admin$hasAuth.call(admin, value));
}