35 lines
983 B
TypeScript
35 lines
983 B
TypeScript
/* eslint-disable object-curly-newline */
|
|
/* eslint-disable import/no-cycle */
|
|
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 = 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);
|
|
};
|
|
}
|