FIX: correctly closes panel when exiting chat (#23201)
We don't use activate/deactivate as it would cause: close/open in short succession when going from threads to thread for example.
This commit is contained in:
parent
5842e0f50d
commit
a008f61f8f
|
@ -30,7 +30,8 @@ export default class ChatChannelThread extends DiscourseRoute {
|
||||||
if (
|
if (
|
||||||
transition.targetName === "chat.channel.index" ||
|
transition.targetName === "chat.channel.index" ||
|
||||||
transition.targetName === "chat.channel.near-message" ||
|
transition.targetName === "chat.channel.near-message" ||
|
||||||
transition.targetName === "chat.index"
|
transition.targetName === "chat.index" ||
|
||||||
|
!transition.targetName.startsWith("chat")
|
||||||
) {
|
) {
|
||||||
this.chatStateManager.closeSidePanel();
|
this.chatStateManager.closeSidePanel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,12 @@ export default class ChatChannelThreads extends DiscourseRoute {
|
||||||
|
|
||||||
@action
|
@action
|
||||||
willTransition(transition) {
|
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();
|
this.chatStateManager.closeSidePanel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -352,5 +352,29 @@ RSpec.describe "Navigation", type: :system do
|
||||||
expect(sidebar_component).to have_no_section_link(category_channel.name, active: true)
|
expect(sidebar_component).to have_no_section_link(category_channel.name, active: true)
|
||||||
end
|
end
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,6 +30,10 @@ module PageObjects
|
||||||
has_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
|
has_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def switch_to_chat
|
||||||
|
find(".sidebar__panel-switch-button[data-key='chat']").click
|
||||||
|
end
|
||||||
|
|
||||||
def has_no_section?(name)
|
def has_no_section?(name)
|
||||||
has_no_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
|
has_no_css?(".sidebar-sections [data-section-name='#{name.parameterize}']")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue