Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: correctly closes panel when exiting chat #23201

Merged
merged 1 commit into from Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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
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
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
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