/* eslint-disable object-curly-newline */ import defaultValues from 'config/default-values'; import { makeAutoObservable } from 'mobx'; import type RootStore from '../../root'; import type { CalculationValues, Values } from './types'; export default class ValuesStore { root: RootStore; values: CalculationValues = defaultValues; constructor(rootStore: RootStore) { makeAutoObservable(this); this.root = rootStore; } hydrate = (initialValues: CalculationValues) => { this.values = initialValues; }; setValues = (params: { values: CalculationValues }) => { const { values } = params; this.values = values; }; getValue(valueName: V) { return this.values[valueName]; } setValue = (valueName: V, value: CalculationValues[V]) => { this.values[valueName] = value; }; resetValue = (valueName: Values) => { this.setValue(valueName, defaultValues[valueName]); }; }