Skip to content

Commit 4b96c9d

Browse files
committed
Refactor constructing date in onChangeExternal
1 parent 4925622 commit 4b96c9d

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/DateTimeInput.jsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -587,20 +587,23 @@ export default class DateTimeInput extends PureComponent {
587587

588588
const values = {};
589589
formElements.forEach((formElement) => {
590-
values[formElement.name] = formElement.value;
590+
values[formElement.name] =
591+
'valueAsNumber' in formElement
592+
? formElement.valueAsNumber
593+
: parseInt(formElement.value, 10);
591594
});
592595

593596
if (formElementsWithoutSelect.every((formElement) => !formElement.value)) {
594597
onChange(null, false);
595598
} else if (
596599
formElements.every((formElement) => formElement.value && formElement.validity.valid)
597600
) {
598-
const year = parseInt(values.year, 10) || new Date().getFullYear();
599-
const monthIndex = parseInt(values.month || 1, 10) - 1;
600-
const day = parseInt(values.day || 1, 10);
601-
const hour = parseInt(values.hour24 || convert12to24(values.hour12, values.amPm) || 0, 10);
602-
const minute = parseInt(values.minute || 0, 10);
603-
const second = parseInt(values.second || 0, 10);
601+
const year = 'year' in values ? values.year : new Date().getFullYear();
602+
const monthIndex = 'month' in values ? values.month - 1 : 0;
603+
const day = 'day' in values ? values.day : 1;
604+
const hour = values.hour24 || convert12to24(values.hour12, values.amPm) || 0;
605+
const minute = values.minute || 0;
606+
const second = values.second || 0;
604607

605608
const proposedValue = new Date();
606609
proposedValue.setFullYear(year, monthIndex, day);

0 commit comments

Comments
 (0)