stores(statuses): fix useStatus hook

This commit is contained in:
Chika 2022-05-14 15:13:03 +03:00
parent be1ffcc624
commit 70ea06c588
2 changed files with 13 additions and 10 deletions

View File

@ -3,7 +3,7 @@ import { useStore } from 'stores/hooks';
export function useStatus(elementName) {
const { $calculation } = useStore();
const status = $calculation.$status.getStatus(elementName);
const status = $calculation.$status.observeStatus(elementName);
return {
status,
};

View File

@ -2,12 +2,13 @@
/* 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 = {};
statuses: CalculationStatuses = {};
constructor(rootStore: RootStore) {
makeAutoObservable(this);
@ -15,18 +16,20 @@ export default class StatusStore {
}
hydrate = (initialStatuses: CalculationStatuses) => {
this.#statuses = initialStatuses;
this.statuses = initialStatuses;
};
getStatus(elementName: Elements) {
return this.#statuses[elementName];
return this.statuses[elementName];
}
setStatus(elementName: Elements, status: Status) {
this.#statuses[elementName] = status;
}
observeStatus = computedFn((elementName: Elements) => this.getStatus(elementName));
setStatuses(statuses: CalculationStatuses) {
this.#statuses = Object.assign(this.#statuses, statuses);
}
setStatus = (elementName: Elements, status: Status) => {
this.statuses[elementName] = status;
};
setStatuses = (statuses: CalculationStatuses) => {
this.statuses = Object.assign(this.statuses, statuses);
};
}