Skip to content

Commit 53d835f

Browse files
committed
Change the way refs are saved in DateInput
This is to ensure unmounted components are removed from refs so that they couldn't have their values read from.
1 parent 815f3dc commit 53d835f

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

src/DateInput.jsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,9 @@ export default class DateInput extends PureComponent {
238238
onKeyDown: this.onKeyDown,
239239
// This is only for showing validity when editing
240240
required: required || isCalendarOpen,
241-
itemRef: (ref) => {
242-
if (!ref) return;
243-
241+
itemRef: (ref, name) => {
244242
// Save a reference to each input field
245-
this[`${ref.name}Input`] = ref;
243+
this[`${name}Input`] = ref;
246244
},
247245
};
248246
}

src/DateInput/DayInput.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export default class DayInput extends PureComponent {
4343
className, disabled, itemRef, value, onChange, onKeyDown, required, showLeadingZeros,
4444
} = this.props;
4545

46+
const name = 'day';
4647
const hasLeadingZero = showLeadingZeros && value !== null && value < 10;
4748

4849
return [
@@ -55,7 +56,7 @@ export default class DayInput extends PureComponent {
5556
hasLeadingZero && `${className}__input--hasLeadingZero`,
5657
)}
5758
disabled={disabled}
58-
name="day"
59+
name={name}
5960
max={maxDay}
6061
min={minDay}
6162
onChange={onChange}

src/DateInput/MonthInput.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export default class MonthInput extends PureComponent {
2626
className, disabled, itemRef, value, onChange, onKeyDown, required, showLeadingZeros,
2727
} = this.props;
2828

29+
const name = 'month';
2930
const hasLeadingZero = showLeadingZeros && value !== null && value < 10;
3031

3132
return [
@@ -38,7 +39,7 @@ export default class MonthInput extends PureComponent {
3839
hasLeadingZero && `${className}__input--hasLeadingZero`,
3940
)}
4041
disabled={disabled}
41-
name="month"
42+
name={name}
4243
max={maxMonth}
4344
min={minMonth}
4445
onChange={onChange}

src/DateInput/YearInput.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,16 @@ export default class YearInput extends PureComponent {
3434
className, disabled, itemRef, value, onChange, onKeyDown, required,
3535
} = this.props;
3636

37+
const name = 'year';
38+
3739
return (
3840
<input
3941
className={mergeClassNames(
4042
`${className}__input`,
4143
`${className}__year`,
4244
)}
4345
disabled={disabled}
44-
name="year"
46+
name={name}
4547
max={maxYear}
4648
min={minYear}
4749
onChange={onChange}

0 commit comments

Comments
 (0)