diff --git a/plugins/chat/assets/javascripts/discourse/components/chat-drawer.js b/plugins/chat/assets/javascripts/discourse/components/chat-drawer.js index 37c970688dc..3c46af5a928 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat-drawer.js +++ b/plugins/chat/assets/javascripts/discourse/components/chat-drawer.js @@ -220,7 +220,7 @@ export default Component.extend({ @action openURL(URL = null) { - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; this.chatStateManager.didOpenDrawer(URL); const route = this._buildRouteFromURL( @@ -264,7 +264,7 @@ export default Component.extend({ _openChannel(channelId, afterRenderFunc = null) { return this.chatChannelsManager.find(channelId).then((channel) => { - this.chat.setActiveChannel(channel); + this.chat.activeChannel = channel; this.set("view", CHAT_VIEW); this.appEvents.trigger("chat:float-toggled", false); @@ -278,7 +278,7 @@ export default Component.extend({ openInFullPage() { this.chatStateManager.storeAppURL(); this.chatStateManager.prefersFullPage(); - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; return this.router.transitionTo(this.chatStateManager.lastKnownChatURL); }, @@ -297,7 +297,7 @@ export default Component.extend({ close() { this.computeDrawerStyle(); this.chatStateManager.didCloseDrawer(); - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; this.appEvents.trigger("chat:float-toggled", true); }, @@ -315,7 +315,7 @@ export default Component.extend({ return; } - this.chat.setActiveChannel(channel); + this.chat.activeChannel = channel; if (!channel) { const URL = this._buildURLFromState(LIST_VIEW); diff --git a/plugins/chat/assets/javascripts/discourse/routes/chat-browse-index.js b/plugins/chat/assets/javascripts/discourse/routes/chat-browse-index.js index 367f4adadbf..12fd2d14672 100644 --- a/plugins/chat/assets/javascripts/discourse/routes/chat-browse-index.js +++ b/plugins/chat/assets/javascripts/discourse/routes/chat-browse-index.js @@ -5,7 +5,7 @@ export default class ChatBrowseIndexRoute extends DiscourseRoute { @service chat; activate() { - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; } afterModel() { diff --git a/plugins/chat/assets/javascripts/discourse/routes/chat-channel-decorator.js b/plugins/chat/assets/javascripts/discourse/routes/chat-channel-decorator.js index e502e9c1e30..1d7dc38e9f9 100644 --- a/plugins/chat/assets/javascripts/discourse/routes/chat-channel-decorator.js +++ b/plugins/chat/assets/javascripts/discourse/routes/chat-channel-decorator.js @@ -12,7 +12,7 @@ export default function withChatChannel(extendedClass) { afterModel(model) { this.controllerFor("chat-channel").set("targetMessageId", null); - this.chat.setActiveChannel(model); + this.chat.activeChannel = model; let { messageId } = this.paramsFor(this.routeName); // messageId query param backwards-compatibility diff --git a/plugins/chat/assets/javascripts/discourse/routes/chat-draft-channel.js b/plugins/chat/assets/javascripts/discourse/routes/chat-draft-channel.js index a5fd5df9df3..c28034cb2d4 100644 --- a/plugins/chat/assets/javascripts/discourse/routes/chat-draft-channel.js +++ b/plugins/chat/assets/javascripts/discourse/routes/chat-draft-channel.js @@ -11,6 +11,6 @@ export default class ChatDraftChannelRoute extends DiscourseRoute { } activate() { - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; } } diff --git a/plugins/chat/assets/javascripts/discourse/routes/chat.js b/plugins/chat/assets/javascripts/discourse/routes/chat.js index 5c3fc64bbe9..10538625161 100644 --- a/plugins/chat/assets/javascripts/discourse/routes/chat.js +++ b/plugins/chat/assets/javascripts/discourse/routes/chat.js @@ -75,7 +75,7 @@ export default class ChatRoute extends DiscourseRoute { @action willTransition(transition) { if (!transition?.to?.name?.startsWith("chat.channel")) { - this.chat.setActiveChannel(null); + this.chat.activeChannel = null; } if (!transition?.to?.name?.startsWith("chat.")) { diff --git a/plugins/chat/assets/javascripts/discourse/services/chat.js b/plugins/chat/assets/javascripts/discourse/services/chat.js index 0a400048ac2..0996763ed67 100644 --- a/plugins/chat/assets/javascripts/discourse/services/chat.js +++ b/plugins/chat/assets/javascripts/discourse/services/chat.js @@ -1,4 +1,5 @@ import deprecated from "discourse-common/lib/deprecated"; +import { tracked } from "@glimmer/tracking"; import userSearch from "discourse/lib/user-search"; import { popupAjaxError } from "discourse/lib/ajax-error"; import Service, { inject as service } from "@ember/service"; @@ -35,7 +36,8 @@ export default class Chat extends Service { @service site; @service chatChannelsManager; - activeChannel = null; + @tracked activeChannel = null; + cook = null; presenceChannel = null; sidebarActive = false; @@ -116,10 +118,6 @@ export default class Chat extends Service { } } - setActiveChannel(channel) { - this.set("activeChannel", channel); - } - loadCookFunction(categories) { if (this.cook) { return Promise.resolve(this.cook); @@ -281,12 +279,12 @@ export default class Chat extends Service { this.router.currentRouteName === "chat.channel.near-message") && this.activeChannel?.id === channel.id ) { - this.setActiveChannel(channel); + this.activeChannel = channel; this._fireOpenMessageAppEvent(messageId); return Promise.resolve(); } - this.setActiveChannel(channel); + this.activeChannel = channel; if ( this.chatStateManager.isFullPageActive ||