diff --git a/app/assets/javascripts/discourse/app/components/mobile-nav.js b/app/assets/javascripts/discourse/app/components/mobile-nav.js index db61688f961..8648020a20c 100644 --- a/app/assets/javascripts/discourse/app/components/mobile-nav.js +++ b/app/assets/javascripts/discourse/app/components/mobile-nav.js @@ -1,6 +1,8 @@ -import { observes, on } from "discourse-common/utils/decorators"; +import { on } from "discourse-common/utils/decorators"; import Component from "@ember/component"; import { next } from "@ember/runloop"; +import { inject as service } from "@ember/service"; +import deprecated from "discourse-common/lib/deprecated"; export default Component.extend({ @on("init") @@ -12,6 +14,11 @@ export default Component.extend({ this.set("classNames", classes); } } + if (this.currentPath) { + deprecated("{{mobile-nav}} no longer requires the currentPath property", { + since: "2.7.0.beta4", + }); + } }, tagName: "ul", @@ -19,13 +26,18 @@ export default Component.extend({ classNames: ["mobile-nav"], - @observes("currentPath") - currentPathChanged() { + router: service(), + + currentRouteChanged() { this.set("expanded", false); next(() => this._updateSelectedHtml()); }, _updateSelectedHtml() { + if (!this.element || this.isDestroying || this.isDestroyed) { + return; + } + const active = this.element.querySelector(".active"); if (active && active.innerHTML) { this.set("selectedHtml", active.innerHTML); @@ -36,6 +48,11 @@ export default Component.extend({ this._super(...arguments); this._updateSelectedHtml(); + this.router.on("routeDidChange", this, this.currentRouteChanged); + }, + + willDestroyElement() { + this.router.off("routeDidChange", this, this.currentRouteChanged); }, actions: { diff --git a/app/assets/javascripts/discourse/app/controllers/group-manage.js b/app/assets/javascripts/discourse/app/controllers/group-manage.js index 28b3da6b8b0..de7cea15125 100644 --- a/app/assets/javascripts/discourse/app/controllers/group-manage.js +++ b/app/assets/javascripts/discourse/app/controllers/group-manage.js @@ -1,10 +1,7 @@ import Controller from "@ember/controller"; import discourseComputed from "discourse-common/utils/decorators"; -import { inject as service } from "@ember/service"; export default Controller.extend({ - router: service(), - @discourseComputed("model.automatic") tabs(automatic) { const defaultTabs = [ diff --git a/app/assets/javascripts/discourse/app/controllers/group-messages.js b/app/assets/javascripts/discourse/app/controllers/group-messages.js index cb0c46fcf17..1c0ee0801d4 100644 --- a/app/assets/javascripts/discourse/app/controllers/group-messages.js +++ b/app/assets/javascripts/discourse/app/controllers/group-messages.js @@ -1,5 +1,2 @@ import Controller from "@ember/controller"; -import { inject as service } from "@ember/service"; -export default Controller.extend({ - router: service(), -}); +export default Controller.extend({}); diff --git a/app/assets/javascripts/discourse/app/controllers/group.js b/app/assets/javascripts/discourse/app/controllers/group.js index 3d10fc9f022..8327c52e23d 100644 --- a/app/assets/javascripts/discourse/app/controllers/group.js +++ b/app/assets/javascripts/discourse/app/controllers/group.js @@ -4,8 +4,6 @@ import I18n from "I18n"; import bootbox from "bootbox"; import deprecated from "discourse-common/lib/deprecated"; import discourseComputed from "discourse-common/utils/decorators"; -import { readOnly } from "@ember/object/computed"; -import { inject as service } from "@ember/service"; const Tab = EmberObject.extend({ init() { @@ -23,8 +21,6 @@ export default Controller.extend({ counts: null, showing: "members", destroying: null, - router: service(), - currentPath: readOnly("router.currentRouteName"), @discourseComputed( "showMessages", diff --git a/app/assets/javascripts/discourse/app/controllers/preferences.js b/app/assets/javascripts/discourse/app/controllers/preferences.js index cb0c46fcf17..1c0ee0801d4 100644 --- a/app/assets/javascripts/discourse/app/controllers/preferences.js +++ b/app/assets/javascripts/discourse/app/controllers/preferences.js @@ -1,5 +1,2 @@ import Controller from "@ember/controller"; -import { inject as service } from "@ember/service"; -export default Controller.extend({ - router: service(), -}); +export default Controller.extend({}); diff --git a/app/assets/javascripts/discourse/app/controllers/user-activity.js b/app/assets/javascripts/discourse/app/controllers/user-activity.js index f2023c232bb..c62f5bc72ed 100644 --- a/app/assets/javascripts/discourse/app/controllers/user-activity.js +++ b/app/assets/javascripts/discourse/app/controllers/user-activity.js @@ -4,12 +4,10 @@ import { alias } from "@ember/object/computed"; import bootbox from "bootbox"; import { exportUserArchive } from "discourse/lib/export-csv"; import { observes } from "discourse-common/utils/decorators"; -import { inject as service } from "@ember/service"; export default Controller.extend({ application: controller(), user: controller(), - router: service(), userActionType: null, canDownloadPosts: alias("user.viewingSelf"), diff --git a/app/assets/javascripts/discourse/app/controllers/user-notifications.js b/app/assets/javascripts/discourse/app/controllers/user-notifications.js index 369e6f6f126..3f2b3a47342 100644 --- a/app/assets/javascripts/discourse/app/controllers/user-notifications.js +++ b/app/assets/javascripts/discourse/app/controllers/user-notifications.js @@ -1,14 +1,10 @@ import Controller, { inject as controller } from "@ember/controller"; import discourseComputed, { observes } from "discourse-common/utils/decorators"; import { ajax } from "discourse/lib/ajax"; -import { readOnly } from "@ember/object/computed"; -import { inject as service } from "@ember/service"; export default Controller.extend({ application: controller(), queryParams: ["filter"], - router: service(), - currentPath: readOnly("router._router.currentPath"), filter: "all", @observes("model.canLoadMore") diff --git a/app/assets/javascripts/discourse/app/controllers/user-private-messages.js b/app/assets/javascripts/discourse/app/controllers/user-private-messages.js index e14955789e1..1288ce2fd95 100644 --- a/app/assets/javascripts/discourse/app/controllers/user-private-messages.js +++ b/app/assets/javascripts/discourse/app/controllers/user-private-messages.js @@ -4,12 +4,10 @@ import I18n from "I18n"; import Topic from "discourse/models/topic"; import bootbox from "bootbox"; import discourseComputed from "discourse-common/utils/decorators"; -import { inject as service } from "@ember/service"; export default Controller.extend({ userTopicsList: controller("user-topics-list"), user: controller(), - router: service(), pmView: false, viewingSelf: alias("user.viewingSelf"), diff --git a/app/assets/javascripts/discourse/app/controllers/user.js b/app/assets/javascripts/discourse/app/controllers/user.js index 71990546c50..c8c93be3568 100644 --- a/app/assets/javascripts/discourse/app/controllers/user.js +++ b/app/assets/javascripts/discourse/app/controllers/user.js @@ -1,6 +1,6 @@ import Controller, { inject } from "@ember/controller"; import EmberObject, { computed, set } from "@ember/object"; -import { alias, and, equal, gt, not, or } from "@ember/object/computed"; +import { and, equal, gt, not, or } from "@ember/object/computed"; import CanCheckEmails from "discourse/mixins/can-check-emails"; import User from "discourse/models/user"; import I18n from "I18n"; @@ -16,7 +16,6 @@ import { inject as service } from "@ember/service"; export default Controller.extend(CanCheckEmails, { router: service(), userNotifications: inject("user-notifications"), - currentPath: alias("router._router.currentPath"), adminTools: optionalService(), @discourseComputed("model.username") diff --git a/app/assets/javascripts/discourse/app/templates/components/group-navigation.hbs b/app/assets/javascripts/discourse/app/templates/components/group-navigation.hbs index 316c8882ab8..8b37b67c408 100644 --- a/app/assets/javascripts/discourse/app/templates/components/group-navigation.hbs +++ b/app/assets/javascripts/discourse/app/templates/components/group-navigation.hbs @@ -1,4 +1,4 @@ -{{#mobile-nav class="group-nav" desktopClass="nav nav-pills" currentPath=currentPath}} +{{#mobile-nav class="group-nav" desktopClass="nav nav-pills"}} {{#if site.mobileView}}
  • {{#link-to "groups.index"}} diff --git a/app/assets/javascripts/discourse/app/templates/group/activity.hbs b/app/assets/javascripts/discourse/app/templates/group/activity.hbs index c8f26f44afe..78f71301744 100644 --- a/app/assets/javascripts/discourse/app/templates/group/activity.hbs +++ b/app/assets/javascripts/discourse/app/templates/group/activity.hbs @@ -1,5 +1,5 @@
    - {{#mobile-nav class="activity-nav" desktopClass="action-list activity-list nav-stacked" currentPath=router._router.currentPath}} + {{#mobile-nav class="activity-nav" desktopClass="action-list activity-list nav-stacked"}} {{#if model.can_see_members}} {{group-activity-filter filter="posts" categoryId=category_id}} {{group-activity-filter filter="topics" categoryId=category_id}} diff --git a/app/assets/javascripts/discourse/app/templates/group/manage.hbs b/app/assets/javascripts/discourse/app/templates/group/manage.hbs index de09c826554..478eb75a4fc 100644 --- a/app/assets/javascripts/discourse/app/templates/group/manage.hbs +++ b/app/assets/javascripts/discourse/app/templates/group/manage.hbs @@ -1,5 +1,5 @@
    - {{#mobile-nav class="activity-nav" desktopClass="action-list activity-list nav-stacked" currentPath=router._router.currentPath}} + {{#mobile-nav class="activity-nav" desktopClass="action-list activity-list nav-stacked"}} {{#each tabs as |tab|}}
  • {{#link-to tab.route model.name}} diff --git a/app/assets/javascripts/discourse/app/templates/group/messages.hbs b/app/assets/javascripts/discourse/app/templates/group/messages.hbs index 2a05efd124c..69e370971c9 100644 --- a/app/assets/javascripts/discourse/app/templates/group/messages.hbs +++ b/app/assets/javascripts/discourse/app/templates/group/messages.hbs @@ -1,5 +1,5 @@
    - {{#mobile-nav class="messages-nav" desktopClass="nav-stacked action-list" currentPath=router._router.currentPath}} + {{#mobile-nav class="messages-nav" desktopClass="nav-stacked action-list"}}
  • {{#link-to "group.messages.inbox" model.name}} {{i18n "user.messages.inbox"}} diff --git a/app/assets/javascripts/discourse/app/templates/preferences.hbs b/app/assets/javascripts/discourse/app/templates/preferences.hbs index b5e31ddec64..324517821a3 100644 --- a/app/assets/javascripts/discourse/app/templates/preferences.hbs +++ b/app/assets/javascripts/discourse/app/templates/preferences.hbs @@ -1,5 +1,5 @@ {{#d-section pageClass="user-preferences" class="user-secondary-navigation"}} - {{#mobile-nav class="preferences-nav" desktopClass="preferences-list action-list nav-stacked" currentPath=router._router.currentPath}} + {{#mobile-nav class="preferences-nav" desktopClass="preferences-list action-list nav-stacked"}}
  • - {{#mobile-nav class='main-nav' desktopClass="nav nav-pills user-nav" currentPath=currentPath}} + {{#mobile-nav class='main-nav' desktopClass="nav nav-pills user-nav"}} {{#unless model.profile_hidden}}
  • {{#link-to 'user.summary'}}{{i18n 'user.summary.title'}}{{/link-to}}
  • {{#link-to 'userActivity'}}{{i18n 'user.activity_stream'}}{{/link-to}}
  • diff --git a/app/assets/javascripts/discourse/app/templates/user/activity.hbs b/app/assets/javascripts/discourse/app/templates/user/activity.hbs index fe989486d24..40b558bee14 100644 --- a/app/assets/javascripts/discourse/app/templates/user/activity.hbs +++ b/app/assets/javascripts/discourse/app/templates/user/activity.hbs @@ -1,6 +1,6 @@ {{#d-section pageClass="user-activity" class="user-secondary-navigation" scrollTop="false"}}