validate option fields

This commit is contained in:
vchikalkin 2021-08-17 16:58:56 +03:00
parent 0368c75f3c
commit ee94e27832

View File

@ -1,3 +1,4 @@
import { getValueName } from 'client/Containers/Calculation/lib/elements/tools';
import { pipe } from 'core/tools/func';
import { ICalculationStore } from 'core/types/Calculation/Store';
import {
@ -11,6 +12,7 @@ import {
validate,
ValidationCondition,
} from 'core/validation/validate';
import { isNil } from 'lodash';
const customConditions: TElements<ValidationCondition> = {
selectLeaseObjectCategory: calculationStore => {
@ -117,7 +119,32 @@ const elementsConditions = (Object.keys(
{},
);
const conditions = Object.assign({}, customConditions, elementsConditions);
const entityElementsConditions = ([
'selectIndAgentRewardCondition',
'selectCalcBrokerRewardCondition',
'selectFinDepartmentRewardCondtion',
] as ElementsNames[]).reduce(
(ac: TElements<ValidationCondition>, elementName) => {
const valueName = getValueName(elementName);
ac[elementName] = (calculationStore, elementName) => {
if (isNil(calculationStore.getValue(valueName))) {
return { isValid: true };
}
return {
isValid: calculationStore.getOption(elementName) !== undefined,
};
};
return ac;
},
{},
);
const conditions = Object.assign(
{},
customConditions,
elementsConditions,
entityElementsConditions,
);
export default function (this: ICalculationStore) {
const validationResult = validate(this, conditions);