From 2f320e4890a5c74bda5d10fedf6011d23585a4b0 Mon Sep 17 00:00:00 2001 From: Michal Klobukowski Date: Mon, 1 Oct 2018 10:12:30 +0200 Subject: [PATCH] Add conditional validation detection to int and float inputs Feature #13863 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- src/views/run-process-panel/inputs/float-input.tsx | 8 +++++--- src/views/run-process-panel/inputs/int-input.tsx | 8 ++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/views/run-process-panel/inputs/float-input.tsx b/src/views/run-process-panel/inputs/float-input.tsx index 664425d3..f6fffedc 100644 --- a/src/views/run-process-panel/inputs/float-input.tsx +++ b/src/views/run-process-panel/inputs/float-input.tsx @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { getInputLabel, FloatCommandInputParameter } from '~/models/workflow'; +import { getInputLabel, FloatCommandInputParameter, isRequiredInput } from '~/models/workflow'; import { Field, WrappedFieldProps } from 'redux-form'; import { TextField } from '~/components/text-field/text-field'; import { isNumber } from '~/validators/is-number'; @@ -17,8 +17,10 @@ export const FloatInput = ({ input }: FloatInputProps) => component={DecimalInput} parse={parseFloat} format={value => isNaN(value) ? '' : JSON.stringify(value)} - validate={[isNumber]} />; - + validate={[ + isRequiredInput(input) + ? isNumber + : () => undefined,]} />; class DecimalInput extends React.Component { state = { diff --git a/src/views/run-process-panel/inputs/int-input.tsx b/src/views/run-process-panel/inputs/int-input.tsx index 5b6f95db..60a49b61 100644 --- a/src/views/run-process-panel/inputs/int-input.tsx +++ b/src/views/run-process-panel/inputs/int-input.tsx @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { IntCommandInputParameter, getInputLabel } from '~/models/workflow'; +import { IntCommandInputParameter, getInputLabel, isRequiredInput } from '~/models/workflow'; import { Field } from 'redux-form'; import { TextField } from '~/components/text-field/text-field'; import { isInteger } from '~/validators/is-integer'; @@ -18,5 +18,9 @@ export const IntInput = ({ input }: IntInputProps) => component={TextField} parse={value => parseInt(value, 10)} format={value => isNaN(value) ? '' : JSON.stringify(value)} - validate={[isInteger]} />; + validate={[ + isRequiredInput(input) + ? isInteger + : () => undefined, + ]} />; -- 2.30.2