From 8bdcc9254ef681e0d6061cb69f8c48d392384351 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Wed, 28 Aug 2019 11:18:21 +0200 Subject: [PATCH] fix(datepicker): fix selecting date from manual input in internal format --- frontend/src/utils/form/datepicker.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/utils/form/datepicker.js b/frontend/src/utils/form/datepicker.js index dbc1ee1a1..2a32f5a99 100644 --- a/frontend/src/utils/form/datepicker.js +++ b/frontend/src/utils/form/datepicker.js @@ -150,13 +150,17 @@ export class Datepicker { this._element.classList.add(DATEPICKER_INITIALIZED_CLASS); const setDatepickerDate = () => { + // try to parse the current input element value with fancy and internal format string const parsedMomentDate = moment(this._element.value, FORM_DATE_FORMAT_MOMENT[this.elementType]); const parsedMomentDateInternal = moment(this._element.value, FORM_DATE_FORMAT[this.elementType]); // only set the datepicker date if the input is either in valid fancy format or in valid internal format - if (parsedMomentDate.isValid() || parsedMomentDateInternal.isValid()) { + if (parsedMomentDate.isValid()) { this.datepickerInstance.selectDate(parsedMomentDate.toDate()); + } else if (parsedMomentDateInternal.isValid()) { + this.datepickerInstance.selectDate(parsedMomentDateInternal.toDate()); } + // reregister change event to prevent event loop this._element.addEventListener('change', setDatepickerDate, { once: true }); };