Previously, the `{{mobile-nav}}` component required a `currentRouteName` property, passed from the router service. It would observe changes in this property, and update the UI accordingly.
If we change between routes which have the same `currentRouteName` (e.g. two different group message inboxes), then the `currentRouteName` does not change and does not trigger the observer. Currently in core, we are relying on the fact that currentRouteName temporarily enters a `.loading` substate during a transition. This will change when we remove the loading substate in the near future.
This commit refactors `{{mobile-nav}}` to inject the router directly, and use the `routeDidChange` event instead of an observer. The change is backwards compatible, but plugins passing the old `currentPath` property will be shown a deprecation notice.
|
||
|---|---|---|
| .. | ||
| admin | ||
| confirm-new-email | ||
| discourse | ||
| discourse-common | ||
| discourse-hbr | ||
| discourse-widget-hbs | ||
| docs | ||
| ember-addons | ||
| locales | ||
| pretty-text | ||
| select-kit | ||
| wizard | ||
| activate-account.js | ||
| admin.js.erb | ||
| app-boot.js | ||
| application.js | ||
| auto-redirect.js | ||
| browser-detect.js | ||
| browser-update.js | ||
| discourse-loader.js | ||
| discourse-shims.js | ||
| embed-application.js | ||
| ember_include.js.erb | ||
| ember_jquery.js | ||
| env.js | ||
| google-tag-manager.js | ||
| google-universal-analytics-v3.js | ||
| google-universal-analytics-v4.js | ||
| handlebars-shim.js | ||
| main_include_admin.js | ||
| markdown-it-bundle.js | ||
| onpopstate-handler.js | ||
| package.json | ||
| polyfills.js | ||
| pretty-text-bundle.js | ||
| print-page.js | ||
| service-worker.js.erb | ||
| set-prototype-polyfill.js | ||
| start-discourse.js | ||
| template_include.js | ||
| test-shims.js | ||
| vendor.js | ||
| widget-runtime.js | ||
| wizard-application.js | ||
| wizard-shims.js | ||
| wizard-start.js | ||
| wizard-vendor.js | ||
| yarn.lock | ||