2023-02-06 12:19:39 +03:00

34 lines
1.1 KiB
TypeScript

import type { CalculationStatuses } from './types';
import type { Elements as ElementsActions } from '@/Components/Calculation/config/map/actions';
import type { Elements as ElementsValues } from '@/Components/Calculation/config/map/values';
import defaultStatuses from '@/config/default-statuses';
import type RootStore from '@/stores/root';
import { makeAutoObservable } from 'mobx';
import type { Status } from 'ui/elements/types';
export default class StatusStore {
private root: RootStore;
private statuses: CalculationStatuses = defaultStatuses;
constructor(rootStore: RootStore) {
makeAutoObservable(this);
this.root = rootStore;
}
public hydrate = (initialStatuses: CalculationStatuses) => {
this.statuses = initialStatuses;
};
public getStatus(elementName: ElementsActions | ElementsValues) {
return this.statuses[elementName];
}
public setStatus = (elementName: ElementsActions | ElementsValues, status: Status) => {
this.statuses[elementName] = status;
};
public resetStatus = (elementName: ElementsActions | ElementsValues) => {
this.statuses[elementName] = defaultStatuses[elementName];
};
}