Make agent diff tab consistent with commit view tab (#60470)
Some checks are pending
Congratsbot / check-author (push) Waiting to run
Congratsbot / congrats (push) Blocked by required conditions
deploy_nightly_docs / deploy_docs (push) Waiting to run
run_tests / orchestrate (push) Waiting to run
run_tests / check_style (push) Waiting to run
run_tests / build_visual_tests_binary (push) Blocked by required conditions
run_tests / check_wasm (push) Blocked by required conditions
run_tests / check_dependencies (push) Blocked by required conditions
run_tests / check_docs (push) Blocked by required conditions
run_tests / run_tests_linux (push) Blocked by required conditions
run_tests / check_licenses (push) Blocked by required conditions
run_tests / check_scripts (push) Blocked by required conditions
run_tests / check_postgres_and_protobuf_migrations (push) Blocked by required conditions
run_tests / extension_tests (push) Blocked by required conditions
run_tests / tests_pass (push) Blocked by required conditions
run_tests / check_workspace_binaries (push) Blocked by required conditions
run_tests / clippy_windows (push) Blocked by required conditions
run_tests / clippy_linux (push) Blocked by required conditions
run_tests / clippy_mac (push) Blocked by required conditions
run_tests / clippy_mac_x86_64 (push) Blocked by required conditions
run_tests / run_tests_windows (push) Blocked by required conditions
run_tests / run_tests_mac (push) Blocked by required conditions
run_tests / miri_scheduler (push) Blocked by required conditions
run_tests / doctests (push) Blocked by required conditions

This makes them more consistent with regards to limiting the label size.
These two tabs are similar because they frequently house a label that's
pretty big, and the agent diff tab didn't truncate it in any way.

Release Notes:

- N/A
This commit is contained in:
Danilo Leal 2026-07-09 10:41:58 -03:00 committed by GitHub
parent da4703be85
commit 717e1c0590
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -29,11 +29,11 @@ use std::{
sync::Arc,
};
use ui::{CommonAnimationExt, Divider, IconButtonShape, KeyBinding, Tooltip, prelude::*};
use util::ResultExt;
use util::{ResultExt, truncate_and_trailoff};
use workspace::{
Item, ItemHandle, ItemNavHistory, ToolbarItemEvent, ToolbarItemLocation, ToolbarItemView,
Workspace,
item::{ItemEvent, SaveOptions, TabContentParams},
item::{ItemEvent, SaveOptions, TabContentParams, TabTooltipContent},
searchable::SearchableItemHandle,
};
use zed_actions::assistant::ToggleFocus;
@ -528,23 +528,33 @@ impl Item for AgentDiffPane {
.update(cx, |editor, cx| editor.navigate(data, window, cx))
}
fn tab_tooltip_text(&self, _: &App) -> Option<SharedString> {
Some("Agent Diff".into())
fn tab_content(&self, params: TabContentParams, _window: &Window, cx: &App) -> AnyElement {
let label_content = self.tab_content_text(params.detail.unwrap_or_default(), cx);
Label::new(label_content)
.when(!params.selected, |this| this.color(Color::Muted))
.into_any_element()
}
fn tab_content(&self, params: TabContentParams, _window: &Window, cx: &App) -> AnyElement {
fn tab_tooltip_content(&self, cx: &App) -> Option<TabTooltipContent> {
let title = self.thread.read(cx).title();
Label::new(if let Some(title) = title {
format!("Review: {}", title)
} else {
"Review".to_string()
})
.color(if params.selected {
Color::Default
} else {
Color::Muted
})
.into_any_element()
Some(TabTooltipContent::Custom(Box::new(Tooltip::element({
let title = title.map(|title| title.to_string());
move |_, _| {
v_flex()
.child(Label::new(
title.clone().unwrap_or_else(|| "Review".to_string()),
))
.child(
Label::new("Agent Diff")
.color(Color::Muted)
.size(LabelSize::Small),
)
.into_any_element()
}
}))))
}
fn telemetry_event_text(&self) -> Option<&'static str> {
@ -666,8 +676,11 @@ impl Item for AgentDiffPane {
});
}
fn tab_content_text(&self, _detail: usize, _cx: &App) -> SharedString {
"Agent Diff".into()
fn tab_content_text(&self, _detail: usize, cx: &App) -> SharedString {
match self.thread.read(cx).title() {
Some(title) => format!("Review: {}", truncate_and_trailoff(&title, 20)).into(),
None => "Review".into(),
}
}
}