agent: Show project name in the Agent notification (#29211)
Release Notes: - agent: Added the project name in the Agent Panel notification.
This commit is contained in:
parent
19b547565d
commit
36da97935a
2 changed files with 40 additions and 2 deletions
|
@ -1093,9 +1093,21 @@ impl ActiveThread {
|
||||||
) {
|
) {
|
||||||
let options = AgentNotification::window_options(screen, cx);
|
let options = AgentNotification::window_options(screen, cx);
|
||||||
|
|
||||||
|
let project_name = self.workspace.upgrade().and_then(|workspace| {
|
||||||
|
workspace
|
||||||
|
.read(cx)
|
||||||
|
.project()
|
||||||
|
.read(cx)
|
||||||
|
.visible_worktrees(cx)
|
||||||
|
.next()
|
||||||
|
.map(|worktree| worktree.read(cx).root_name().to_string())
|
||||||
|
});
|
||||||
|
|
||||||
if let Some(screen_window) = cx
|
if let Some(screen_window) = cx
|
||||||
.open_window(options, |_, cx| {
|
.open_window(options, |_, cx| {
|
||||||
cx.new(|_| AgentNotification::new(title.clone(), caption.clone(), icon))
|
cx.new(|_| {
|
||||||
|
AgentNotification::new(title.clone(), caption.clone(), icon, project_name)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
.log_err()
|
.log_err()
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,6 +12,7 @@ pub struct AgentNotification {
|
||||||
title: SharedString,
|
title: SharedString,
|
||||||
caption: SharedString,
|
caption: SharedString,
|
||||||
icon: IconName,
|
icon: IconName,
|
||||||
|
project_name: Option<SharedString>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AgentNotification {
|
impl AgentNotification {
|
||||||
|
@ -19,11 +20,13 @@ impl AgentNotification {
|
||||||
title: impl Into<SharedString>,
|
title: impl Into<SharedString>,
|
||||||
caption: impl Into<SharedString>,
|
caption: impl Into<SharedString>,
|
||||||
icon: IconName,
|
icon: IconName,
|
||||||
|
project_name: Option<impl Into<SharedString>>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
title: title.into(),
|
title: title.into(),
|
||||||
caption: caption.into(),
|
caption: caption.into(),
|
||||||
icon,
|
icon,
|
||||||
|
project_name: project_name.map(|name| name.into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,11 +133,34 @@ impl Render for AgentNotification {
|
||||||
.child(gradient_overflow()),
|
.child(gradient_overflow()),
|
||||||
)
|
)
|
||||||
.child(
|
.child(
|
||||||
div()
|
h_flex()
|
||||||
.relative()
|
.relative()
|
||||||
|
.gap_1p5()
|
||||||
.text_size(px(12.))
|
.text_size(px(12.))
|
||||||
.text_color(cx.theme().colors().text_muted)
|
.text_color(cx.theme().colors().text_muted)
|
||||||
.truncate()
|
.truncate()
|
||||||
|
.when_some(
|
||||||
|
self.project_name.clone(),
|
||||||
|
|description, project_name| {
|
||||||
|
description.child(
|
||||||
|
h_flex()
|
||||||
|
.gap_1p5()
|
||||||
|
.child(
|
||||||
|
div()
|
||||||
|
.max_w_16()
|
||||||
|
.truncate()
|
||||||
|
.child(project_name),
|
||||||
|
)
|
||||||
|
.child(
|
||||||
|
div().size(px(3.)).rounded_full().bg(cx
|
||||||
|
.theme()
|
||||||
|
.colors()
|
||||||
|
.text
|
||||||
|
.opacity(0.5)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
)
|
||||||
.child(self.caption.clone())
|
.child(self.caption.clone())
|
||||||
.child(gradient_overflow()),
|
.child(gradient_overflow()),
|
||||||
),
|
),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue