import Component from "@glimmer/component"; import { service } from "@ember/service"; import { htmlSafe } from "@ember/template"; import { on } from "@ember/modifier"; import { concat } from "@ember/helper"; import { eq, and, not } from "truth-helpers"; import didInsert from "@ember/render-modifiers/modifiers/did-insert"; import willDestroy from "@ember/render-modifiers/modifiers/will-destroy"; import SearchMenu from "discourse/components/search-menu"; import icon from "discourse-common/helpers/d-icon"; export default class WelcomeBanner extends Component { @service router; @service site; @service currentUser; get displayForRoute() { const showOnPages = settings.show_on_pages || "homepage_only"; const currentRoute = this.router.currentRouteName; if (showOnPages === "all_pages") { return true; } // Show only on homepage return currentRoute === "discovery.latest" || currentRoute === "discovery.categories"; } get shouldDisplay() { return settings.enable_welcome_banner && this.displayForRoute; } get isAnonymous() { return !this.currentUser; } get heroTitle() { return this.isAnonymous ? settings.hero_title_anonymous_html : settings.hero_title_html; } get heroContent() { return this.isAnonymous ? settings.hero_content_anonymous_html : settings.hero_content_html; } didInsert() { document.documentElement.classList.add("display-welcome-banner"); } willDestroy() { document.documentElement.classList.remove("display-welcome-banner"); } openSearchMenu(event) { event.preventDefault(); // Search menu will be handled by Discourse's native component } goToLogin = () => { this.router.transitionTo("login"); }; goToSignup = () => { this.router.transitionTo("signup"); }; }