diff --git a/app/assets/javascripts/discourse/app/components/welcome-topic-banner.js b/app/assets/javascripts/discourse/app/components/welcome-topic-banner.js new file mode 100644 index 00000000000..e8778b4f84f --- /dev/null +++ b/app/assets/javascripts/discourse/app/components/welcome-topic-banner.js @@ -0,0 +1,25 @@ +import GlimmerComponent from "discourse/components/glimmer"; +import { action } from "@ember/object"; +import { getOwner } from "discourse-common/lib/get-owner"; +import Topic from "discourse/models/topic"; +import Composer from "discourse/models/composer"; + +export default class WelcomeTopicBanner extends GlimmerComponent { + @action + editWelcomeTopic() { + const topicController = getOwner(this).lookup("controller:topic"); + + Topic.find(this.siteSettings.welcome_topic_id, {}).then((topic) => { + this.store + .createRecord("topic", { + id: topic.id, + slug: topic.slug, + }) + .postStream.loadPostByPostNumber(1) + .then((post) => { + post.topic.set("draft_key", Composer.EDIT); + topicController.send("editPost", post); + }); + }); + } +} diff --git a/app/assets/javascripts/discourse/app/controllers/discovery/topics.js b/app/assets/javascripts/discourse/app/controllers/discovery/topics.js index 0897026ddd6..a0037f4da57 100644 --- a/app/assets/javascripts/discourse/app/controllers/discovery/topics.js +++ b/app/assets/javascripts/discourse/app/controllers/discovery/topics.js @@ -24,6 +24,13 @@ const controllerOpts = { showTopicPostBadges: not("new"), redirectedReason: alias("currentUser.redirected_to_top.reason"), + @discourseComputed("model.filter", "site.show_welcome_topic_banner") + showEditWelcomeTopicBanner(filter, showWelcomeTopicBanner) { + return ( + this.currentUser?.staff && filter === "latest" && showWelcomeTopicBanner + ); + }, + expandGloballyPinned: false, expandAllPinned: false, diff --git a/app/assets/javascripts/discourse/app/templates/components/welcome-topic-banner.hbs b/app/assets/javascripts/discourse/app/templates/components/welcome-topic-banner.hbs new file mode 100644 index 00000000000..f5a577a8663 --- /dev/null +++ b/app/assets/javascripts/discourse/app/templates/components/welcome-topic-banner.hbs @@ -0,0 +1,9 @@ +
diff --git a/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs b/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs index 8e6196607ef..7deb8d1edc0 100644 --- a/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs +++ b/app/assets/javascripts/discourse/app/templates/discovery/topics.hbs @@ -2,6 +2,10 @@