diff --git a/plugins/chat/assets/javascripts/discourse/initializers/chat-sidebar.js b/plugins/chat/assets/javascripts/discourse/initializers/chat-sidebar.js index 5e7af1fd0bb..24b7bf80a8e 100644 --- a/plugins/chat/assets/javascripts/discourse/initializers/chat-sidebar.js +++ b/plugins/chat/assets/javascripts/discourse/initializers/chat-sidebar.js @@ -12,6 +12,7 @@ import { until } from "discourse/lib/formatter"; import { inject as service } from "@ember/service"; import ChatModalNewMessage from "discourse/plugins/chat/discourse/components/chat/modal/new-message"; import getURL from "discourse-common/lib/get-url"; +import { initSidebarState } from "discourse/plugins/chat/discourse/lib/init-sidebar-state"; export default { name: "chat-sidebar", @@ -34,6 +35,8 @@ export default { switchButtonDefaultUrl = getURL("/chat"); } ); + + initSidebarState(api, api.getCurrentUser()); }); withPluginApi("1.3.0", (api) => { diff --git a/plugins/chat/assets/javascripts/discourse/lib/init-sidebar-state.js b/plugins/chat/assets/javascripts/discourse/lib/init-sidebar-state.js new file mode 100644 index 00000000000..4706366fc84 --- /dev/null +++ b/plugins/chat/assets/javascripts/discourse/lib/init-sidebar-state.js @@ -0,0 +1,16 @@ +import { getUserChatSeparateSidebarMode } from "discourse/plugins/chat/discourse/lib/get-user-chat-separate-sidebar-mode"; + +export function initSidebarState(api, user) { + api.setSidebarPanel("main"); + + const chatSeparateSidebarMode = getUserChatSeparateSidebarMode(user); + if (chatSeparateSidebarMode.fullscreen) { + api.setCombinedSidebarMode(); + api.showSidebarSwitchPanelButtons(); + } else if (chatSeparateSidebarMode.always) { + api.setSeparatedSidebarMode(); + } else { + api.setCombinedSidebarMode(); + api.hideSidebarSwitchPanelButtons(); + } +} diff --git a/plugins/chat/assets/javascripts/discourse/routes/chat.js b/plugins/chat/assets/javascripts/discourse/routes/chat.js index 3186d64d233..9ca6ef9d307 100644 --- a/plugins/chat/assets/javascripts/discourse/routes/chat.js +++ b/plugins/chat/assets/javascripts/discourse/routes/chat.js @@ -5,7 +5,9 @@ import { inject as service } from "@ember/service"; import { scrollTop } from "discourse/mixins/scroll-top"; import { schedule } from "@ember/runloop"; import { withPluginApi } from "discourse/lib/plugin-api"; +import { initSidebarState } from "discourse/plugins/chat/discourse/lib/init-sidebar-state"; import { getUserChatSeparateSidebarMode } from "discourse/plugins/chat/discourse/lib/get-user-chat-separate-sidebar-mode"; + export default class ChatRoute extends DiscourseRoute { @service chat; @service router; @@ -81,20 +83,7 @@ export default class ChatRoute extends DiscourseRoute { deactivate(transition) { withPluginApi("1.8.0", (api) => { - api.setSidebarPanel("main"); - - const chatSeparateSidebarMode = getUserChatSeparateSidebarMode( - this.currentUser - ); - if (chatSeparateSidebarMode.fullscreen) { - api.setCombinedSidebarMode(); - api.showSidebarSwitchPanelButtons(); - } else if (chatSeparateSidebarMode.always) { - api.setSeparatedSidebarMode(); - } else { - api.setCombinedSidebarMode(); - api.hideSidebarSwitchPanelButtons(); - } + initSidebarState(api, this.currentUser); }); if (transition) {