34 lines
865 B
JavaScript
34 lines
865 B
JavaScript
import Component from "@ember/component";
|
|
import KeyEnterEscape from "discourse/mixins/key-enter-escape";
|
|
import { schedule } from "@ember/runloop";
|
|
|
|
export let topicTitleDecorators = [];
|
|
|
|
export function addTopicTitleDecorator(decorator) {
|
|
topicTitleDecorators.push(decorator);
|
|
}
|
|
|
|
export function resetTopicTitleDecorators() {
|
|
topicTitleDecorators = [];
|
|
}
|
|
|
|
export default Component.extend(KeyEnterEscape, {
|
|
elementId: "topic-title",
|
|
|
|
didInsertElement() {
|
|
this._super(...arguments);
|
|
|
|
schedule("afterRender", () => {
|
|
if (this.element && !this.isDestroying && !this.isDestroyed) {
|
|
const fancyTitle = this.element.querySelector(".fancy-title");
|
|
|
|
fancyTitle &&
|
|
topicTitleDecorators &&
|
|
topicTitleDecorators.forEach(cb =>
|
|
cb(this.model, fancyTitle, "topic-title")
|
|
);
|
|
}
|
|
});
|
|
}
|
|
});
|