You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/frontend/src/Components/Form/NumberInput.js

53 lines
852 B

import PropTypes from 'prop-types';
import React, { Component } from 'react';
import TextInput from './TextInput';
class NumberInput extends Component {
//
// Listeners
onChange = ({ name, value }) => {
let newValue = null;
if (value) {
newValue = this.props.isFloat ? parseFloat(value) : parseInt(value);
}
this.props.onChange({
name,
value: newValue
});
}
//
// Render
render() {
const {
...otherProps
} = this.props;
return (
<TextInput
type="number"
{...otherProps}
onChange={this.onChange}
/>
);
}
}
NumberInput.propTypes = {
value: PropTypes.number,
isFloat: PropTypes.bool.isRequired,
onChange: PropTypes.func.isRequired
};
NumberInput.defaultProps = {
value: null,
isFloat: false
};
export default NumberInput;