Fixed: Additional UI number input fixes

This commit is contained in:
Qstick 2018-01-26 22:00:32 -05:00
parent 8cb8059b2f
commit b5339b75ff
3 changed files with 29 additions and 14 deletions

View file

@ -8,24 +8,36 @@ class NumberInput extends Component {
// Listeners
onChange = ({ name, value }) => {
const {
min,
max
} = this.props;
let newValue = null;
if (value) {
newValue = this.props.isFloat ? parseFloat(value) : parseInt(value);
}
if (min != null && newValue < min) {
this.props.onChange({
name,
value: newValue
});
}
onBlur = () => {
const {
name,
value,
min,
max,
onChange
} = this.props;
let newValue = value;
if (min != null && newValue != null && newValue < min) {
newValue = min;
} else if (max != null && newValue > max) {
} else if (max != null && newValue != null && newValue > max) {
newValue = max;
}
this.props.onChange({
onChange({
name,
value: newValue
});
@ -44,12 +56,14 @@ class NumberInput extends Component {
type="number"
{...otherProps}
onChange={this.onChange}
onBlur={this.onBlur}
/>
);
}
}
NumberInput.propTypes = {
name: PropTypes.string.isRequired,
value: PropTypes.number,
min: PropTypes.number,
max: PropTypes.number,

View file

@ -122,7 +122,8 @@ class TextInput extends Component {
value,
hasError,
hasWarning,
hasButton
hasButton,
onBlur
} = this.props;
return (
@ -143,6 +144,7 @@ class TextInput extends Component {
value={value}
onChange={this.onChange}
onFocus={this.onFocus}
onBlur={onBlur}
onKeyUp={this.onKeyUp}
onMouseDown={this.onMouseDown}
onMouseUp={this.onMouseUp}
@ -164,6 +166,7 @@ TextInput.propTypes = {
hasButton: PropTypes.bool,
onChange: PropTypes.func.isRequired,
onFocus: PropTypes.func,
onBlur: PropTypes.func,
onSelectionChange: PropTypes.func
};