Skip to content

Commit

Permalink
FIX: correctly closes panel when exiting chat (#23201)
Browse files Browse the repository at this point in the history
We don't use activate/deactivate as it would cause: close/open in short succession when going from threads to thread for example.
  • Loading branch information
jjaffeux committed Aug 23, 2023
1 parent 5842e0f commit a008f61
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ export default class ChatChannelThread extends DiscourseRoute {
if (
transition.targetName === "chat.channel.index" ||
transition.targetName === "chat.channel.near-message" ||
transition.targetName === "chat.index"
transition.targetName === "chat.index" ||
!transition.targetName.startsWith("chat")
) {
this.chatStateManager.closeSidePanel();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ export default class ChatChannelThreads extends DiscourseRoute {

@action
willTransition(transition) {
if (transition.targetName === "chat.channel.index") {
if (
transition.targetName === "chat.channel.index" ||
transition.targetName === "chat.channel.near-message" ||
transition.targetName === "chat.index" ||
!transition.targetName.startsWith("chat")
) {
this.chatStateManager.closeSidePanel();
}
}
Expand Down
24 changes: 24 additions & 0 deletions plugins/chat/spec/system/navigation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -352,5 +352,29 @@
expect(sidebar_component).to have_no_section_link(category_channel.name, active: true)
end
end

context "when exiting a thread for homepage" do
fab!(:thread) { Fabricate(:chat_thread, channel: category_channel) }

before do
current_user.user_option.update(
chat_separate_sidebar_mode: UserOption.chat_separate_sidebar_modes[:always],
)
chat_page.prefers_full_page
category_channel.update!(threading_enabled: true)
thread.add(current_user)
end

it "correctly closes the panel" do
chat_page.visit_thread(thread)

expect(side_panel_page).to have_open_thread(thread)

find("#site-logo").click
sidebar_component.switch_to_chat

expect(page).to have_no_css(".chat-side-panel")
end
end
end
end
4 changes: 4 additions & 0 deletions spec/system/page_objects/components/navigation_menu/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ def has_section?(name)
has_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
end

def switch_to_chat
find(".sidebar__panel-switch-button[data-key='chat']").click
end

def has_no_section?(name)
has_no_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
end
Expand Down

0 comments on commit a008f61

Please sign in to comment.