diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js b/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js
index 2c7b9ed5608..400489e8955 100644
--- a/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js
+++ b/plugins/discourse-local-dates/assets/javascripts/discourse/components/discourse-local-dates-create-form.js
@@ -401,22 +401,22 @@ export default Component.extend({
},
_setPickerMinDate(date) {
- if (date && !moment(date, this.dateFormat).isValid()) {
- date = null;
- }
-
schedule("afterRender", () => {
- this._picker.setMinDate(moment(date, this.dateFormat).toDate());
+ if (moment(date, this.dateFormat).isValid()) {
+ this._picker.setMinDate(moment(date, this.dateFormat).toDate());
+ } else {
+ this._picker.setMinDate(null);
+ }
});
},
_setPickerDate(date) {
- if (date && !moment(date, this.dateFormat).isValid()) {
- date = null;
- }
-
schedule("afterRender", () => {
- this._picker.setDate(moment.utc(date), true);
+ if (moment(date, this.dateFormat).isValid()) {
+ this._picker.setDate(moment.utc(date), true);
+ } else {
+ this._picker.setDate(null);
+ }
});
},
diff --git a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
index d029e15c760..10c56ff5e41 100644
--- a/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
+++ b/plugins/discourse-local-dates/assets/javascripts/discourse/templates/components/discourse-local-dates-create-form.hbs
@@ -34,7 +34,7 @@
@translatedLabel={{this.formattedTo}}
@class="date-time" />
{{#if this.toFilled}}
-
+
{{/if}}
diff --git a/plugins/discourse-local-dates/test/javascripts/acceptance/local-dates-composer-test.js b/plugins/discourse-local-dates/test/javascripts/acceptance/local-dates-composer-test.js
index e9a3ff1d489..354e2427523 100644
--- a/plugins/discourse-local-dates/test/javascripts/acceptance/local-dates-composer-test.js
+++ b/plugins/discourse-local-dates/test/javascripts/acceptance/local-dates-composer-test.js
@@ -1,4 +1,8 @@
-import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
+import {
+ acceptance,
+ query,
+ queryAll,
+} from "discourse/tests/helpers/qunit-helpers";
import { test } from "qunit";
import { click, fillIn, visit } from "@ember/test-helpers";
import selectKit from "discourse/tests/helpers/select-kit-helper";
@@ -77,4 +81,45 @@ acceptance("Local Dates - composer", function (needs) {
"it outputs a preview date in selected timezone"
);
});
+
+ test("date modal - controls", async function (assert) {
+ await visit("/");
+ await click("#create-topic");
+ await click(".d-editor-button-bar .local-dates");
+
+ await click('.pika-table td[data-day="5"] > .pika-button');
+
+ assert.ok(
+ query("#from-date-time").textContent.includes("5,"),
+ "selected FROM date works"
+ );
+
+ await click(".date-time-control.to .date-time");
+
+ assert.strictEqual(
+ queryAll(".pika-table .is-disabled").length,
+ 4,
+ "date just before selected FROM date is disabled"
+ );
+
+ await click('.pika-table td[data-day="10"] > .pika-button');
+
+ assert.ok(
+ query(".date-time-control.to button").textContent.includes("10,"),
+ "selected TO date works"
+ );
+
+ assert.strictEqual(
+ query(".pika-table .is-selected").textContent,
+ "10",
+ "selected date is the 10th"
+ );
+
+ await click(".delete-to-date");
+
+ assert.notOk(
+ query(".pika-table .is-selected"),
+ "deleting selected TO date works"
+ );
+ });
});