weclome-banner/javascripts/discourse/api-initializers/welcome-banner.js
gabeszm c683bc82a9 Modernize to .gjs Glimmer component with renderInOutlet pattern
- Replace plugin outlet connectors with modern .gjs Glimmer component
- Use api.renderInOutlet() instead of connector templates (official pattern)
- Add service injection (@service router, @service site)
- Implement lifecycle hooks with didInsert/willDestroy modifiers
- Use native SearchMenu component integration
- Remove old connector directory structure
- Update CSS to target outlet wrapper classes
- Simplify API initializer to 10 lines (from 112 lines)
- Add route-based display logic with router service
- Direct settings access without this.theme wrapper

This follows the official discourse-search-banner implementation pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 17:16:53 +02:00

10 lines
336 B
JavaScript

import { apiInitializer } from "discourse/lib/api";
import WelcomeBanner from "../components/welcome-banner";
export default apiInitializer("1.8.0", (api) => {
const outletName = settings.banner_position === "below_header"
? "below-site-header"
: "above-main-container";
api.renderInOutlet(outletName, WelcomeBanner);
});