style(ai): Fix AI sidebar overflow when user hasn't enabled or created a chat yet #2044

Merged
zachgoll merged 1 commits from zachgoll/fix-ai-sidebar-overflow into main 2025-04-02 02:36:34 +08:00
3 changed files with 12 additions and 2 deletions

View File

@@ -190,7 +190,8 @@ module ApplicationHelper
is_open: right_sidebar_showing,
initial_width: right_panel_width,
min_width: right_panel_min_width,
max_width: right_panel_max_width
max_width: right_panel_max_width,
overflow: right_sidebar_showing ? "auto" : "hidden"
},
content_max_width: content_max_width
}

View File

@@ -30,6 +30,7 @@ export default class extends Controller {
this.contentTarget.style.maxWidth = `${this.#contentMaxWidth()}px`;
this.leftPanelTarget.style.width = `${this.#leftPanelWidth()}px`;
this.rightPanelTarget.style.width = `${this.#rightPanelWidth()}px`;
this.rightPanelTarget.style.overflow = this.#rightPanelOverflow();
}
#leftPanelWidth() {
@@ -52,6 +53,14 @@ export default class extends Controller {
return 0;
}
#rightPanelOverflow() {
if (this.rightPanelOpen) {
return "auto";
}
return "hidden";
}
#contentMaxWidth() {
if (!this.leftPanelOpen && !this.rightPanelOpen) {
return 1024;

View File

@@ -67,7 +67,7 @@
<%# AI chat sidebar %>
<%= tag.div id: "chat-container",
style: "width: #{sidebar_config.dig(:right_panel, :initial_width)}px",
style: "width: #{sidebar_config.dig(:right_panel, :initial_width)}px; overflow: #{sidebar_config.dig(:right_panel, :overflow)}",
class: class_names("flex flex-col justify-between shrink-0 transition-all duration-300"),
data: { controller: "chat hotkey", sidebar_target: "rightPanel", turbo_permanent: true } do %>