mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 21:31:04 +08:00
DEV: Include helper in core for applyLocalDates
(#16325)
This commit is contained in:
@ -13,6 +13,7 @@ import { notEmpty } from "@ember/object/computed";
|
||||
import { propertyNotEqual } from "discourse/lib/computed";
|
||||
import { schedule } from "@ember/runloop";
|
||||
import { getOwner } from "discourse-common/lib/get-owner";
|
||||
import { applyLocalDates } from "discourse/lib/local-dates";
|
||||
|
||||
export default Component.extend({
|
||||
timeFormat: "HH:mm:ss",
|
||||
@ -56,19 +57,21 @@ export default Component.extend({
|
||||
});
|
||||
},
|
||||
|
||||
@observes("markup")
|
||||
@observes("computedConfig.{from,to,options}", "options", "isValid", "isRange")
|
||||
_renderPreview() {
|
||||
discourseDebounce(
|
||||
this,
|
||||
function () {
|
||||
const markup = this.markup;
|
||||
|
||||
if (markup) {
|
||||
cookAsync(markup).then((result) => {
|
||||
this.set("currentPreview", result);
|
||||
schedule("afterRender", () =>
|
||||
this.$(".preview .discourse-local-date").applyLocalDates()
|
||||
);
|
||||
schedule("afterRender", () => {
|
||||
applyLocalDates(
|
||||
document.querySelectorAll(".preview .discourse-local-date"),
|
||||
this.siteSettings
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -321,7 +324,6 @@ export default Component.extend({
|
||||
text = this._generateDateMarkup(config.from, options, isRange);
|
||||
}
|
||||
}
|
||||
|
||||
return text;
|
||||
},
|
||||
|
||||
|
@ -8,6 +8,7 @@ import { downloadCalendar } from "discourse/lib/download-calendar";
|
||||
import { renderIcon } from "discourse-common/lib/icon-library";
|
||||
import I18n from "I18n";
|
||||
|
||||
// Import applyLocalDates from discourse/lib/local-dates instead
|
||||
export function applyLocalDates(dates, siteSettings) {
|
||||
if (!siteSettings.discourse_local_dates_enabled) {
|
||||
return;
|
||||
|
@ -1,6 +1,11 @@
|
||||
import { acceptance, queryAll } 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";
|
||||
|
||||
acceptance("Local Dates - composer", function (needs) {
|
||||
needs.user();
|
||||
@ -61,4 +66,19 @@ acceptance("Local Dates - composer", function (needs) {
|
||||
);
|
||||
assert.notOk(getAttr("time"), "it doesn’t have time");
|
||||
});
|
||||
|
||||
test("date modal", async function (assert) {
|
||||
await visit("/");
|
||||
await click("#create-topic");
|
||||
await click(".d-editor-button-bar .local-dates");
|
||||
|
||||
const timezoneChooser = selectKit(".timezone-input");
|
||||
await timezoneChooser.expand();
|
||||
await timezoneChooser.selectRowByValue("Asia/Macau");
|
||||
|
||||
assert.ok(
|
||||
query(".preview .discourse-local-date").textContent.includes("Macau"),
|
||||
"it outputs a preview date in selected timezone"
|
||||
);
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user