diff --git a/process/calculate/reactions/validation.ts b/process/calculate/reactions/validation.ts index 7e160aa..4e38fdf 100644 --- a/process/calculate/reactions/validation.ts +++ b/process/calculate/reactions/validation.ts @@ -17,11 +17,11 @@ export default function calculateValidationReactions( }, (hasErrors) => { if (hasErrors) { - $calculation.$status.setStatus('btnCalculate', 'Disabled'); - $calculation.$status.setStatus('btnCreateKP', 'Disabled'); + $calculation.blockElement('btnCalculate'); + $calculation.blockElement('btnCreateKP'); } else { - $calculation.$status.resetStatus('btnCalculate'); - $calculation.$status.resetStatus('btnCreateKP'); + $calculation.unblockElement('btnCalculate'); + $calculation.unblockElement('btnCreateKP'); } }, { diff --git a/process/lead-opportunity/reactions/urls.ts b/process/lead-opportunity/reactions/urls.ts index 9e135b2..dce915e 100644 --- a/process/lead-opportunity/reactions/urls.ts +++ b/process/lead-opportunity/reactions/urls.ts @@ -43,8 +43,11 @@ export default function leadOpportunityUrlsReactions( reaction( () => $calculation.$values.getElementValue(linkElementName), (url) => { - const status = url ? 'Default' : 'Disabled'; - $calculation.$status.setStatus(linkElementName, status); + if (!url) { + $calculation.blockElement(linkElementName); + } else { + $calculation.unblockElement(linkElementName); + } } ); } diff --git a/stores/calculation/index.ts b/stores/calculation/index.ts index fcc3484..b02e2e2 100644 --- a/stores/calculation/index.ts +++ b/stores/calculation/index.ts @@ -1,5 +1,6 @@ /* eslint-disable import/no-cycle */ -import type { Elements } from 'Components/Calculation/config/map/values'; +import type { Elements as ElementsActions } from 'Components/Calculation/config/map/actions'; +import type { Elements as ElementsValues } from 'Components/Calculation/config/map/values'; import type RootStore from 'stores/root'; import OptionsStore from './options'; import StatusStore from './statuses'; @@ -19,10 +20,18 @@ export default class CalculationStore { this.$validation = new ValidationStore(rootStore); } - resetElement = (elementName: Elements) => { + resetElement = (elementName: ElementsValues) => { this.$values.resetElementValue(elementName); this.$options.resetOption(elementName); this.$status.resetStatus(elementName); this.$validation.clearErrors(elementName); }; + + blockElement = (elementName: ElementsValues | ElementsActions) => { + this.$status.setStatus(elementName, 'Disabled'); + }; + + unblockElement = (elementName: ElementsValues | ElementsActions) => { + this.$status.setStatus(elementName, 'Default'); + }; }