2022-07-07 20:44:33 +03:00

38 lines
1.1 KiB
TypeScript

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