discourse/app/assets/javascripts/admin/addon/routes/admin.js
David Taylor 5a99243629
DEV: Introduce declarative hide-application-footer helper (#23088)
Previously, we had a `showFooter` boolean on the application controller which would be set true/false in various routes by different routes/controllers. A global `routeWillChange` hook would set it `false` before every route transition, and the destination route/controller would have to set it `true` for the footer to show correctly.

This commit replaces that with a new 'declarative' system. Instead of having to set the value true/false manually, UIs which need the footer to be hidden can simply include the `{{hide-application-footer}}` helper in their template when needed. The helper/service will automatically keep track of all the current invocations of that helper, and only show the footer when there are 0 invocations.

This significantly simplifies things, and removes the need for many observers and controller injections, both of which are considered 'code smells' in modern Ember applications.
2023-08-17 12:47:08 +01:00

19 lines
383 B
JavaScript

import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
export default class AdminRoute extends DiscourseRoute {
titleToken() {
return I18n.t("admin_title");
}
activate() {
this.controllerFor("application").setProperties({
showTop: false,
});
}
deactivate() {
this.controllerFor("application").set("showTop", true);
}
}