diff --git a/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js b/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js index c49d279ca4b..eda349b253e 100644 --- a/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js +++ b/app/assets/javascripts/discourse/app/lib/keyboard-shortcuts.js @@ -117,8 +117,10 @@ export default { }, teardown() { - this.keyTrapper.reset(); - this.keyTrapper = null; + if (this.keyTrapper) { + this.keyTrapper.reset(); + this.keyTrapper = null; + } this.container = null; }, diff --git a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js index 37509ba78c9..9d4cc72299c 100644 --- a/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js +++ b/app/assets/javascripts/discourse/app/pre-initializers/inject-discourse-objects.js @@ -42,6 +42,10 @@ export default { let siteSettings = container.lookup("site-settings:main"); + ALL_TARGETS.forEach((t) => + app.inject(t, "appEvents", "service:app-events") + ); + const currentUser = User.current(); app.register("current-user:main", currentUser, { instantiate: false }); app.currentUser = currentUser; @@ -82,10 +86,6 @@ export default { ALL_TARGETS.forEach((t) => app.inject(t, "store", "service:store")); - ALL_TARGETS.forEach((t) => - app.inject(t, "appEvents", "service:app-events") - ); - ALL_TARGETS.concat("service").forEach((t) => app.inject(t, "messageBus", "message-bus:main") ); diff --git a/app/assets/javascripts/discourse/tests/unit/services/current-user-test.js b/app/assets/javascripts/discourse/tests/unit/services/current-user-test.js new file mode 100644 index 00000000000..ca850853351 --- /dev/null +++ b/app/assets/javascripts/discourse/tests/unit/services/current-user-test.js @@ -0,0 +1,11 @@ +import { acceptance } from "discourse/tests/helpers/qunit-helpers"; +import { test } from "qunit"; + +acceptance("current-user", function (needs) { + needs.user(); + + test("currentUser has appEvents", function (assert) { + let currentUser = this.container.lookup("current-user:main"); + assert.ok(currentUser.appEvents); + }); +});