// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { getInputLabel, FloatCommandInputParameter } from '~/models/workflow'; import { Field, WrappedFieldProps } from 'redux-form'; import { TextField } from '~/components/text-field/text-field'; import { isNumber } from '~/validators/is-number'; export interface FloatInputProps { input: FloatCommandInputParameter; } export const FloatInput = ({ input }: FloatInputProps) => isNaN(value) ? '' : JSON.stringify(value)} validate={[isNumber]} />; class DecimalInput extends React.Component { state = { endsWithDecimalSeparator: false, }; handleChange = (event: React.ChangeEvent) => { const [base, fraction] = event.target.value.split('.'); this.setState({ endsWithDecimalSeparator: fraction === '' }); this.props.input.onChange(event); } render() { const props = { ...this.props, input: { ...this.props.input, value: this.props.input.value + (this.state.endsWithDecimalSeparator ? '.' : ''), onChange: this.handleChange, }, }; return ; } }