mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-03 13:02:12 +00:00
UX: Adjust bot conversation header and sidebar on hamburger mode (#1295)
Context in dev conversation -- in hamburger mode we don't need the robot icon to swap to shuffle, AND we don't need back to forum link.
This commit is contained in:
parent
541e6d7437
commit
06ab446e47
@ -10,6 +10,7 @@ import { AI_CONVERSATIONS_PANEL } from "../services/ai-conversations-sidebar-man
|
|||||||
export default class AiBotHeaderIcon extends Component {
|
export default class AiBotHeaderIcon extends Component {
|
||||||
@service composer;
|
@service composer;
|
||||||
@service currentUser;
|
@service currentUser;
|
||||||
|
@service navigationMenu;
|
||||||
@service router;
|
@service router;
|
||||||
@service sidebarState;
|
@service sidebarState;
|
||||||
@service siteSettings;
|
@service siteSettings;
|
||||||
@ -35,6 +36,7 @@ export default class AiBotHeaderIcon extends Component {
|
|||||||
|
|
||||||
get clickShouldRouteOutOfConversations() {
|
get clickShouldRouteOutOfConversations() {
|
||||||
return (
|
return (
|
||||||
|
!this.navigationMenu.isHeaderDropdownMode &&
|
||||||
this.siteSettings.ai_enable_experimental_bot_ux &&
|
this.siteSettings.ai_enable_experimental_bot_ux &&
|
||||||
this.sidebarState.currentPanel?.key === AI_CONVERSATIONS_PANEL
|
this.sidebarState.currentPanel?.key === AI_CONVERSATIONS_PANEL
|
||||||
);
|
);
|
||||||
|
@ -29,13 +29,14 @@ export default {
|
|||||||
);
|
);
|
||||||
const appEvents = api.container.lookup("service:app-events");
|
const appEvents = api.container.lookup("service:app-events");
|
||||||
const messageBus = api.container.lookup("service:message-bus");
|
const messageBus = api.container.lookup("service:message-bus");
|
||||||
|
const navigationMenu = api.container.lookup("service:navigationMenu");
|
||||||
|
|
||||||
api.addSidebarPanel(
|
api.addSidebarPanel(
|
||||||
(BaseCustomSidebarPanel) =>
|
(BaseCustomSidebarPanel) =>
|
||||||
class AiConversationsSidebarPanel extends BaseCustomSidebarPanel {
|
class AiConversationsSidebarPanel extends BaseCustomSidebarPanel {
|
||||||
key = AI_CONVERSATIONS_PANEL;
|
key = AI_CONVERSATIONS_PANEL;
|
||||||
hidden = true;
|
hidden = true;
|
||||||
displayHeader = true;
|
displayHeader = !navigationMenu.isHeaderDropdownMode;
|
||||||
expandActiveSection = true;
|
expandActiveSection = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -99,6 +99,7 @@ RSpec.describe "AI Bot - Homepage", type: :system do
|
|||||||
|
|
||||||
SiteSetting.ai_enable_experimental_bot_ux = true
|
SiteSetting.ai_enable_experimental_bot_ux = true
|
||||||
SiteSetting.ai_bot_enabled = true
|
SiteSetting.ai_bot_enabled = true
|
||||||
|
SiteSetting.navigation_menu = "sidebar"
|
||||||
Jobs.run_immediately!
|
Jobs.run_immediately!
|
||||||
SiteSetting.ai_bot_allowed_groups = "#{Group::AUTO_GROUPS[:trust_level_0]}"
|
SiteSetting.ai_bot_allowed_groups = "#{Group::AUTO_GROUPS[:trust_level_0]}"
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
@ -123,15 +124,6 @@ RSpec.describe "AI Bot - Homepage", type: :system do
|
|||||||
expect(composer).to be_closed
|
expect(composer).to be_closed
|
||||||
end
|
end
|
||||||
|
|
||||||
it "renders sidebar even when navigation menu is set to header" do
|
|
||||||
SiteSetting.navigation_menu = "header dropdown"
|
|
||||||
visit "/"
|
|
||||||
header.click_bot_button
|
|
||||||
expect(ai_pm_homepage).to have_homepage
|
|
||||||
expect(sidebar).to be_visible
|
|
||||||
expect(header_dropdown).to be_visible
|
|
||||||
end
|
|
||||||
|
|
||||||
it "hides default content in the sidebar" do
|
it "hides default content in the sidebar" do
|
||||||
visit "/"
|
visit "/"
|
||||||
header.click_bot_button
|
header.click_bot_button
|
||||||
@ -266,6 +258,31 @@ RSpec.describe "AI Bot - Homepage", type: :system do
|
|||||||
ai_pm_homepage.llm_selector.select_row_by_name(claude_2_dup.display_name)
|
ai_pm_homepage.llm_selector.select_row_by_name(claude_2_dup.display_name)
|
||||||
ai_pm_homepage.llm_selector.collapse
|
ai_pm_homepage.llm_selector.collapse
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "renders back to forum link" do
|
||||||
|
ai_pm_homepage.visit
|
||||||
|
expect(ai_pm_homepage).to have_sidebar_back_link
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with hamburger menu" do
|
||||||
|
before { SiteSetting.navigation_menu = "header dropdown" }
|
||||||
|
it "keeps robot icon in the header and doesn't display sidebar back link" do
|
||||||
|
visit "/"
|
||||||
|
expect(header).to have_icon_in_bot_button(icon: "robot")
|
||||||
|
header.click_bot_button
|
||||||
|
expect(ai_pm_homepage).to have_homepage
|
||||||
|
expect(header).to have_icon_in_bot_button(icon: "robot")
|
||||||
|
expect(ai_pm_homepage).to have_no_sidebar_back_link
|
||||||
|
end
|
||||||
|
|
||||||
|
it "still renders the sidebar" do
|
||||||
|
visit "/"
|
||||||
|
header.click_bot_button
|
||||||
|
expect(ai_pm_homepage).to have_homepage
|
||||||
|
expect(sidebar).to be_visible
|
||||||
|
expect(header_dropdown).to be_visible
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when `ai_enable_experimental_bot_ux` is disabled" do
|
context "when `ai_enable_experimental_bot_ux` is disabled" do
|
||||||
|
@ -53,6 +53,14 @@ module PageObjects
|
|||||||
def llm_selector
|
def llm_selector
|
||||||
PageObjects::Components::SelectKit.new(".persona-llm-selector__llm-dropdown")
|
PageObjects::Components::SelectKit.new(".persona-llm-selector__llm-dropdown")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def has_sidebar_back_link?
|
||||||
|
page.has_css?(".sidebar-sections__back-to-forum")
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_no_sidebar_back_link?
|
||||||
|
page.has_no_css?(".sidebar-sections__back-to-forum")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user