From 7d33e0f74def632cba508e1d3eaf942b030bf82d Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 11 May 2023 12:50:27 +0100 Subject: [PATCH] Allow programmatically refreshing flatpickr element via "flatpickr:change" event after changing the select's value externally --- .../controllers/flatpickr_controller.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/webpacker/controllers/flatpickr_controller.js b/app/webpacker/controllers/flatpickr_controller.js index e85017e189..66a5d53a5d 100644 --- a/app/webpacker/controllers/flatpickr_controller.js +++ b/app/webpacker/controllers/flatpickr_controller.js @@ -80,17 +80,13 @@ export default class extends Flatpickr { } onChangeEvent = (e) => { - if ( - this.modeValue === "range" && - this.hasStartTarget && - this.hasEndTarget && - e.detail.startDate && - e.detail.endDate - ) { + if (this.modeValue === "range" && this.hasStartTarget && this.hasEndTarget) { // date range mode - this.startTarget.value = e.detail.startDate; - this.endTarget.value = e.detail.endDate; - this.fp.setDate([e.detail.startDate, e.detail.endDate]); + if (e.detail) { + this.startTarget.value = e.detail.startDate; + this.endTarget.value = e.detail.endDate; + } + this.fp.setDate([this.startTarget.value, this.endTarget.value]); } else if (e.detail.date) { // single date mode this.fp.setDate(e.detail.date);