mutants-appfx
Version:
appfx module
49 lines (39 loc) • 873 B
JavaScript
import {
action,
runInAction,
observable,
} from 'mobx';
import DataProviderManager from './DataProviderManager';
class FunctionModel {
access;
operations = [];
has(operation) {
return this.operations.indexOf(operation) > -1;
}
constructor(obj){
this.access = obj.access;
this.operations = obj.operations || [];
}
}
const NoFunction = {
operations: [],
has() {
return false;
}
}
class UIFunction {
items = observable.map();
get(access) {
return this.items.get(access) || NoFunction;
}
async loadUIFunction({mid}) {
if (this.items.has(mid)){
return;
}
const functions = (await DataProviderManager.getFunction({access:mid}));
runInAction(()=>{
this.items.set(mid, new FunctionModel(functions));
});
}
}
export default new UIFunction();