stores/options: extract setElementOptions

This commit is contained in:
Chika 2022-07-15 12:28:10 +03:00
parent 74b125c959
commit 8d9dfef7ea
4 changed files with 13 additions and 8 deletions

View File

@ -43,7 +43,7 @@ function makeFillAgent(
});
if (agent) {
$calculation.$options.setElementOptions(elementName, normalizeOptions([agent]));
$calculation.setElementOptions(elementName, normalizeOptions([agent]));
$calculation.setElementValue(elementName, agent.value);
}
} else {

View File

@ -130,7 +130,7 @@ export default function commonReactions(store: RootStore, apolloClient: ApolloCl
},
});
$calculation.$options.setElementOptions('selectQuote', normalizeOptions(quotes));
$calculation.setElementOptions('selectQuote', normalizeOptions(quotes));
} else {
$calculation.resetElement('selectQuote');
}

View File

@ -2,6 +2,7 @@
import type { Elements as ElementsActions } from 'Components/Calculation/config/map/actions';
import type * as Values from 'Components/Calculation/config/map/values';
import { getValueName } from 'Components/Calculation/config/map/values';
import type { BaseOption } from 'Elements/types';
import type RootStore from 'stores/root';
import OptionsStore from './options';
import StatusStore from './statuses';
@ -52,6 +53,13 @@ export default class CalculationStore {
this.$values.resetValue(valueName);
};
setElementOptions = <T extends Values.Elements>(
elementName: T,
options: BaseOption<Values.ElementsTypes[T]>[]
) => {
this.$options.setOptions(elementName, options);
};
getElementOption<T extends Values.Elements>(elementName: T) {
const value = this.getElementValue(elementName);

View File

@ -40,10 +40,7 @@ export default class OptionsStore {
return options;
}
setElementOptions = <T extends Elements>(
elementName: T,
options: BaseOption<ElementsTypes[T]>[]
) => {
setOptions = <T extends Elements>(elementName: T, options: BaseOption<ElementsTypes[T]>[]) => {
/**
* TODO: use T instead of any in BaseOption type
* at this moment T causes typescript error
@ -76,7 +73,7 @@ export default class OptionsStore {
this.options[elementName] = defaultOptions[elementName];
};
setOptions = (
setManyOptions = (
options: Partial<CalculationOptions>,
settings?: { reset: boolean; exclude: Elements[] }
) => {
@ -92,7 +89,7 @@ export default class OptionsStore {
const elementOptions = options[elementName];
if (elementOptions) {
this.setElementOptions(elementName, elementOptions);
this.setOptions(elementName, elementOptions);
}
});
};