From 3c24e5f187a2d516948b9f11c8b46fd8dd111b33 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Mon, 28 Oct 2019 11:02:43 +0100 Subject: [PATCH] fix(datepicker): fix for empty or browser-filled inputs --- frontend/src/utils/form/datepicker.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/utils/form/datepicker.js b/frontend/src/utils/form/datepicker.js index b935d513f..2cc4972c8 100644 --- a/frontend/src/utils/form/datepicker.js +++ b/frontend/src/utils/form/datepicker.js @@ -126,13 +126,19 @@ export class Datepicker { // FIXME dirty hack below; fix tail.datetime instead // get date object from internal format before datetime does nasty things with it - const parsedMomentDate = moment(this._element.value).toDate(); + var parsedMomentDate = moment(this._element.value, [ FORM_DATE_FORMAT[this.elementType], FORM_DATE_FORMAT_MOMENT[this.elementType] ], true); + if (parsedMomentDate && parsedMomentDate.isValid()) { + parsedMomentDate = parsedMomentDate.toDate(); + } else { + parsedMomentDate = undefined; + } // initialize tail.datetime (datepicker) instance and let it do weird stuff with the element value this.datepickerInstance = datetime(this._element, { ...datepickerGlobalConfig, ...datepickerConfig }); // reset date to something sane - this.datepickerInstance.selectDate(parsedMomentDate); + if (parsedMomentDate) + this.datepickerInstance.selectDate(parsedMomentDate); // insert the datepicker element (dt) after the form this._element.form.parentNode.insertBefore(this.datepickerInstance.dt, this._element.form.nextSibling);