Files
discourse-ai/assets/javascripts/initializers/topic-summary.js
T

45 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-04-19 16:57:31 -04:00
import { withPluginApi } from "discourse/lib/plugin-api";
import showModal from "discourse/lib/show-modal";
function initializeTopicSummary(api) {
api.modifyClass("component:scrolling-post-stream", {
2023-04-25 13:19:57 +02:00
pluginId: "discourse-ai",
2023-04-19 16:57:31 -04:00
showAiSummary() {
showModal("ai-summary").setProperties({
targetId: this.posts["posts"][0].topic_id,
targetType: "topic",
allowTimeframe: false,
});
},
});
api.addTopicSummaryCallback((html, attrs, widget) => {
html.push(
widget.attach("button", {
className: "btn btn-primary topic-ai-summarization",
icon: "magic",
title: "discourse_ai.summarization.title",
label: "discourse_ai.summarization.title",
action: "showAiSummary",
})
);
return html;
});
}
export default {
2023-04-25 13:19:57 +02:00
name: "discourse-ai-topic-summary",
2023-04-19 16:57:31 -04:00
initialize(container) {
2023-04-25 13:19:57 +02:00
const settings = container.lookup("service:site-settings");
2023-04-19 16:57:31 -04:00
const summarizationEnabled =
settings.discourse_ai_enabled && settings.ai_summarization_enabled;
if (summarizationEnabled) {
withPluginApi("1.6.0", initializeTopicSummary);
}
},
};