UNPKG

mutants-appfx

Version:

appfx module

49 lines (39 loc) 873 B
import { action, runInAction, observable, } from 'mobx'; import DataProviderManager from './DataProviderManager'; class FunctionModel { @observable access; @observable 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 { @observable items = observable.map(); get(access) { return this.items.get(access) || NoFunction; } @action 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();