2022-05-14 15:13:03 +03:00

36 lines
1014 B
TypeScript

/* eslint-disable object-curly-newline */
/* eslint-disable import/no-cycle */
import type { Elements } from 'Components/Calculation/config/map';
import { makeAutoObservable } from 'mobx';
import { computedFn } from 'mobx-utils';
import RootStore from 'stores/root';
import type { CalculationStatuses, Status } from './types';
export default class StatusStore {
root: RootStore;
statuses: CalculationStatuses = {};
constructor(rootStore: RootStore) {
makeAutoObservable(this);
this.root = rootStore;
}
hydrate = (initialStatuses: CalculationStatuses) => {
this.statuses = initialStatuses;
};
getStatus(elementName: Elements) {
return this.statuses[elementName];
}
observeStatus = computedFn((elementName: Elements) => this.getStatus(elementName));
setStatus = (elementName: Elements, status: Status) => {
this.statuses[elementName] = status;
};
setStatuses = (statuses: CalculationStatuses) => {
this.statuses = Object.assign(this.statuses, statuses);
};
}