agent2: Iterate on "new thread" selector in the toolbar (#36144)

Release Notes:

- N/A
This commit is contained in:
Danilo Leal 2025-08-13 18:34:53 -03:00 committed by GitHub
parent 1d2eaf210a
commit 8452532c8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -67,8 +67,8 @@ use theme::ThemeSettings;
use time::UtcOffset; use time::UtcOffset;
use ui::utils::WithRemSize; use ui::utils::WithRemSize;
use ui::{ use ui::{
Banner, ButtonLike, Callout, ContextMenu, ContextMenuEntry, ElevationIndex, KeyBinding, Banner, Callout, ContextMenu, ContextMenuEntry, ElevationIndex, KeyBinding, PopoverMenu,
PopoverMenu, PopoverMenuHandle, ProgressBar, Tab, Tooltip, prelude::*, PopoverMenuHandle, ProgressBar, Tab, Tooltip, prelude::*,
}; };
use util::ResultExt as _; use util::ResultExt as _;
use workspace::{ use workspace::{
@ -1996,9 +1996,7 @@ impl AgentPanel {
PopoverMenu::new("agent-nav-menu") PopoverMenu::new("agent-nav-menu")
.trigger_with_tooltip( .trigger_with_tooltip(
IconButton::new("agent-nav-menu", icon) IconButton::new("agent-nav-menu", icon).icon_size(IconSize::Small),
.icon_size(IconSize::Small)
.style(ui::ButtonStyle::Subtle),
{ {
let focus_handle = focus_handle.clone(); let focus_handle = focus_handle.clone();
move |window, cx| { move |window, cx| {
@ -2135,9 +2133,10 @@ impl AgentPanel {
.pl_1() .pl_1()
.gap_1() .gap_1()
.child(match &self.active_view { .child(match &self.active_view {
ActiveView::History | ActiveView::Configuration => { ActiveView::History | ActiveView::Configuration => div()
self.render_toolbar_back_button(cx).into_any_element() .pl(DynamicSpacing::Base04.rems(cx))
} .child(self.render_toolbar_back_button(cx))
.into_any_element(),
_ => self _ => self
.render_recent_entries_menu(IconName::MenuAlt, cx) .render_recent_entries_menu(IconName::MenuAlt, cx)
.into_any_element(), .into_any_element(),
@ -2175,33 +2174,7 @@ impl AgentPanel {
let new_thread_menu = PopoverMenu::new("new_thread_menu") let new_thread_menu = PopoverMenu::new("new_thread_menu")
.trigger_with_tooltip( .trigger_with_tooltip(
ButtonLike::new("new_thread_menu_btn").child( IconButton::new("new_thread_menu_btn", IconName::Plus).icon_size(IconSize::Small),
h_flex()
.group("agent-selector")
.gap_1p5()
.child(
h_flex()
.relative()
.size_4()
.justify_center()
.child(
h_flex()
.group_hover("agent-selector", |s| s.invisible())
.child(
Icon::new(self.selected_agent.icon())
.color(Color::Muted),
),
)
.child(
h_flex()
.absolute()
.invisible()
.group_hover("agent-selector", |s| s.visible())
.child(Icon::new(IconName::Plus)),
),
)
.child(Label::new(self.selected_agent.label())),
),
{ {
let focus_handle = focus_handle.clone(); let focus_handle = focus_handle.clone();
move |window, cx| { move |window, cx| {
@ -2419,15 +2392,24 @@ impl AgentPanel {
.size_full() .size_full()
.gap(DynamicSpacing::Base08.rems(cx)) .gap(DynamicSpacing::Base08.rems(cx))
.child(match &self.active_view { .child(match &self.active_view {
ActiveView::History | ActiveView::Configuration => { ActiveView::History | ActiveView::Configuration => div()
self.render_toolbar_back_button(cx).into_any_element() .pl(DynamicSpacing::Base04.rems(cx))
} .child(self.render_toolbar_back_button(cx))
.into_any_element(),
_ => h_flex() _ => h_flex()
.h_full() .h_full()
.px(DynamicSpacing::Base04.rems(cx)) .px(DynamicSpacing::Base04.rems(cx))
.border_r_1() .border_r_1()
.border_color(cx.theme().colors().border) .border_color(cx.theme().colors().border)
.child(new_thread_menu) .child(
h_flex()
.px_0p5()
.gap_1p5()
.child(
Icon::new(self.selected_agent.icon()).color(Color::Muted),
)
.child(Label::new(self.selected_agent.label())),
)
.into_any_element(), .into_any_element(),
}) })
.child(self.render_title_view(window, cx)), .child(self.render_title_view(window, cx)),
@ -2445,6 +2427,7 @@ impl AgentPanel {
.pr(DynamicSpacing::Base06.rems(cx)) .pr(DynamicSpacing::Base06.rems(cx))
.border_l_1() .border_l_1()
.border_color(cx.theme().colors().border) .border_color(cx.theme().colors().border)
.child(new_thread_menu)
.child(self.render_recent_entries_menu(IconName::HistoryRerun, cx)) .child(self.render_recent_entries_menu(IconName::HistoryRerun, cx))
.child(self.render_panel_options_menu(window, cx)), .child(self.render_panel_options_menu(window, cx)),
), ),