From a5ed0ea5d6b29bf20bf422316a7a95c1dcdccd8c Mon Sep 17 00:00:00 2001 From: Kelv Date: Fri, 17 Nov 2023 18:36:03 +0800 Subject: [PATCH] DEV: add deprecation notice for decorateTopicTitle API (#24429) * DEV: add deprecation notice for decorateTopicTitle API --- app/assets/javascripts/discourse/app/lib/plugin-api.js | 9 +++++++++ .../javascripts/discourse/tests/acceptance/topic-test.js | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/app/lib/plugin-api.js b/app/assets/javascripts/discourse/app/lib/plugin-api.js index c11b398fcaf..6f2f1190a27 100644 --- a/app/assets/javascripts/discourse/app/lib/plugin-api.js +++ b/app/assets/javascripts/discourse/app/lib/plugin-api.js @@ -1654,8 +1654,17 @@ class PluginApi { * }); * ``` * + * @deprecated because modifying an Ember-rendered DOM tree can lead to very unexpected errors. Use plugin outlet connectors instead **/ decorateTopicTitle(callback) { + deprecated( + "decorateTopicTitle is deprecated because modifying an Ember-rendered DOM tree can lead to very unexpected errors. Use plugin outlet connectors instead", + { + id: "discourse.decorate-topic-title", + since: "3.2", + dropFrom: "3.3", + } + ); addTopicTitleDecorator(callback); } diff --git a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js index 02822d44e1f..04ccbd09908 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/topic-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/topic-test.js @@ -19,6 +19,7 @@ import { visible, } from "discourse/tests/helpers/qunit-helpers"; import selectKit from "discourse/tests/helpers/select-kit-helper"; +import { withSilencedDeprecations } from "discourse-common/lib/deprecated"; import { cloneJSON } from "discourse-common/lib/object"; import I18n from "discourse-i18n"; @@ -463,8 +464,10 @@ acceptance("Topic with title decorated", function (needs) { needs.user(); needs.hooks.beforeEach(() => { withPluginApi("0.8.40", (api) => { - api.decorateTopicTitle((topic, node, topicTitleType) => { - node.innerText = `${node.innerText}-${topic.id}-${topicTitleType}`; + withSilencedDeprecations("discourse.decorate-topic-title", () => { + api.decorateTopicTitle((topic, node, topicTitleType) => { + node.innerText = `${node.innerText}-${topic.id}-${topicTitleType}`; + }); }); }); });