/* 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); }; }