diff --git a/plugins/chat/assets/javascripts/discourse/components/channels-list-public.gjs b/plugins/chat/assets/javascripts/discourse/components/channels-list-public.gjs index 8459d28d63e..f2886e3d3e0 100644 --- a/plugins/chat/assets/javascripts/discourse/components/channels-list-public.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/channels-list-public.gjs @@ -34,9 +34,7 @@ export default class ChannelsListPublic extends Component { } get channelList() { - return this.args.sortByActivity === true - ? this.chatChannelsManager.publicMessageChannelsByActivity - : this.chatChannelsManager.publicMessageChannels; + return this.chatChannelsManager.publicMessageChannelsByActivity; } @action diff --git a/plugins/chat/assets/javascripts/discourse/components/chat/drawer-routes/channels.gjs b/plugins/chat/assets/javascripts/discourse/components/chat/drawer-routes/channels.gjs index 34c5ac63c22..b66bf1a8b8c 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat/drawer-routes/channels.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/chat/drawer-routes/channels.gjs @@ -22,7 +22,7 @@ export default class ChatDrawerRoutesChannels extends Component { {{#if this.chatStateManager.isDrawerExpanded}}
- +
diff --git a/plugins/chat/assets/javascripts/discourse/components/chat/routes/channels.gjs b/plugins/chat/assets/javascripts/discourse/components/chat/routes/channels.gjs index 120d2ac1575..bc7de3a402e 100644 --- a/plugins/chat/assets/javascripts/discourse/components/chat/routes/channels.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/chat/routes/channels.gjs @@ -17,7 +17,7 @@ export default class ChatRoutesChannels extends Component { - + } diff --git a/plugins/chat/assets/javascripts/discourse/services/chat-channels-manager.js b/plugins/chat/assets/javascripts/discourse/services/chat-channels-manager.js index 8825dd76c22..cba2db1707c 100644 --- a/plugins/chat/assets/javascripts/discourse/services/chat-channels-manager.js +++ b/plugins/chat/assets/javascripts/discourse/services/chat-channels-manager.js @@ -136,7 +136,7 @@ export default class ChatChannelsManager extends Service { } get publicMessageChannelsByActivity() { - return this.#sortChannelsByActivity(this.publicMessageChannels); + return this.#sortChannelsByActivity([...this.publicMessageChannels]); } @cached diff --git a/plugins/chat/spec/system/list_channels/sidebar_spec.rb b/plugins/chat/spec/system/list_channels/sidebar_spec.rb index 6405021c806..b45a227e691 100644 --- a/plugins/chat/spec/system/list_channels/sidebar_spec.rb +++ b/plugins/chat/spec/system/list_channels/sidebar_spec.rb @@ -4,6 +4,7 @@ RSpec.describe "List channels | sidebar", type: :system do fab!(:current_user) { Fabricate(:user) } let(:chat) { PageObjects::Pages::Chat.new } + let(:drawer_page) { PageObjects::Pages::ChatDrawer.new } before do chat_system_bootstrap @@ -72,6 +73,24 @@ RSpec.describe "List channels | sidebar", type: :system do ".channel-#{channel_1.id}", ) end + + it "does not change sorting order when using drawer" do + Fabricate(:chat_message, chat_channel: channel_1) + visit("/") + + expect(page.find("#sidebar-section-content-chat-channels li:nth-child(1)")).to have_css( + ".channel-#{channel_2.id}", + ) + + drawer_page.visit_index + drawer_page.click_channels + + expect(drawer_page).to have_channel_at_position(channel_1, 1) + + expect(page.find("#sidebar-section-content-chat-channels li:nth-child(1)")).to have_css( + ".channel-#{channel_2.id}", + ) + end end context "when direct message channels" do