fix validation | prevent non digit in inputnumber

This commit is contained in:
Chika 2020-12-16 19:15:08 +03:00
parent cd38f5c93e
commit 397b2b1e77
2 changed files with 15 additions and 7 deletions

View File

@ -14,11 +14,15 @@ const InputNumber = ({
<Form.Item validateStatus={validateStatus} help={message}>
<AntInputNumber
{...props}
parser={value => {
if (value === '') {
return 0;
}
return value.replace(/[^0-9.,]+/, '');
}}
disabled={status === ElementStatus.Disabled}
style={styles}
onChange={value => {
setCurrentValue(typeof value !== 'string' ? value : 0);
}}
onChange={value => setCurrentValue(value)}
value={value}
/>
</Form.Item>

View File

@ -1,9 +1,10 @@
import { toJS } from 'mobx';
import { elementsValues } from 'client/Containers/Calculation/lib/elements/values';
import { TElements } from 'core/types/Calculation/Store/elements';
import CalculationStore from '../../..';
const VALIDATIONS = {
IS_NULL: valueName => !CalculationStore.getValue(valueName),
IS_NULL: valueName => CalculationStore.getValue(valueName) === undefined,
LESS_ZERO: valueName => CalculationStore.getValue(valueName) < 0,
LESS_OR_EQUALS_ZERO: valueName => CalculationStore.getValue(valueName) <= 0,
};
@ -26,9 +27,11 @@ const elementsValidations: TElements<any> = {
selectLeaseObjectCategory: VALIDATIONS.IS_NULL,
tbxLeasingPeriod: valueName => CalculationStore.getValue(valueName) < 7,
tbxLeaseObjectPrice: VALIDATIONS.LESS_OR_EQUALS_ZERO,
tbxLastPaymentPerc: VALIDATIONS.LESS_OR_EQUALS_ZERO,
tbxFirstPaymentPerc: VALIDATIONS.LESS_ZERO,
tbxLeaseObjectCount: VALIDATIONS.LESS_ZERO,
tbxLastPaymentPerc: VALIDATIONS.IS_NULL,
tbxLastPaymentRub: VALIDATIONS.IS_NULL,
tbxFirstPaymentPerc: VALIDATIONS.IS_NULL,
tbxFirstPaymentRub: VALIDATIONS.IS_NULL,
tbxLeaseObjectCount: VALIDATIONS.LESS_OR_EQUALS_ZERO,
};
const validateElement = (elementName, condition) => {
@ -83,6 +86,7 @@ const validateTables = () => {
};
export default () => {
const v = toJS(CalculationStore.values);
validateElements();
validateTables();
};