Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 59339ce

Browse files
author
Shammamah Hossain
committed
Manually convert values to numbers.
1 parent 718ae50 commit 59339ce

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/components/Input.react.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ export default class Input extends PureComponent {
2828
this.onKeyPress = this.onKeyPress.bind(this);
2929
this.setInputValue = this.setInputValue.bind(this);
3030
this.setPropValue = this.setPropValue.bind(this);
31+
this.getValueAsNumber = this.getValueAsNumber.bind(this);
3132
}
3233

3334
componentWillReceiveProps(nextProps) {
34-
const {value, valueAsNumber} = this.input.current;
35+
const {value} = this.input.current;
36+
const valueAsNumber = this.getValueAsNumber(value);
3537
this.setInputValue(
3638
isNil(valueAsNumber) ? value : valueAsNumber,
3739
nextProps.value
@@ -42,7 +44,8 @@ export default class Input extends PureComponent {
4244
}
4345

4446
componentDidMount() {
45-
const {value, valueAsNumber} = this.input.current;
47+
const {value} = this.input.current;
48+
const valueAsNumber = this.getValueAsNumber(value);
4649
this.setInputValue(
4750
isNil(valueAsNumber) ? value : valueAsNumber,
4851
this.props.value
@@ -89,6 +92,15 @@ export default class Input extends PureComponent {
8992
);
9093
}
9194

95+
getValueAsNumber(value) {
96+
if (parseInt(value, 10) != parseFloat(value)) {
97+
return parseFloat(value);
98+
}
99+
else {
100+
return parseInt(value);
101+
}
102+
}
103+
92104
setInputValue(base, value) {
93105
const __value = value;
94106
base = this.input.current.checkValidity() ? convert(base) : NaN;
@@ -109,7 +121,8 @@ export default class Input extends PureComponent {
109121
}
110122

111123
onEvent() {
112-
const {value, valueAsNumber} = this.input.current;
124+
const {value} = this.input.current;
125+
const valueAsNumber = this.getValueAsNumber(value);
113126
if (this.props.type === 'number') {
114127
this.setPropValue(
115128
this.props.value,

0 commit comments

Comments
 (0)