agent: Simplify user message design more (#29326)

Follow-up to https://github.com/zed-industries/zed/pull/29165 where the
user message design is simplified even more. The edit button is not
visible anymore, and you can click on the whole message block to edit a
message.

Release Notes:

- N/A
This commit is contained in:
Danilo Leal 2025-04-24 11:24:36 -03:00 committed by GitHub
parent ea5ce2a1a4
commit e70d8d4dfd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1518,8 +1518,6 @@ impl ActiveThread {
return Empty.into_any(); return Empty.into_any();
} }
let allow_editing_message = message.role == Role::User;
let edit_message_editor = self let edit_message_editor = self
.editing_message .editing_message
.as_ref() .as_ref()
@ -1752,27 +1750,26 @@ impl ActiveThread {
.pb_4() .pb_4()
.child( .child(
v_flex() v_flex()
.id(("user-message", ix))
.bg(editor_bg_color) .bg(editor_bg_color)
.rounded_lg() .rounded_lg()
.shadow_md()
.border_1() .border_1()
.border_color(colors.border) .border_color(colors.border)
.shadow_md() .hover(|hover| hover.border_color(colors.text_accent.opacity(0.5)))
.child(div().p_2().children(message_content)) .cursor_pointer()
.child( .child(div().p_2().pt_2p5().children(message_content))
.when_some(edit_message_editor.clone(), |this, edit_editor| {
let focus_handle = edit_editor.focus_handle(cx);
this.child(
h_flex() h_flex()
.p_1() .p_1()
.border_t_1() .border_t_1()
.border_color(colors.border_variant) .border_color(colors.border_variant)
.gap_1()
.justify_end() .justify_end()
.child( .child(
h_flex()
.gap_1()
.when_some(
edit_message_editor.clone(),
|this, edit_message_editor| {
let focus_handle =
edit_message_editor.focus_handle(cx);
this.child(
Button::new("cancel-edit-message", "Cancel") Button::new("cancel-edit-message", "Cancel")
.label_size(LabelSize::Small) .label_size(LabelSize::Small)
.key_binding( .key_binding(
@ -1784,18 +1781,11 @@ impl ActiveThread {
) )
.map(|kb| kb.size(rems_from_px(12.))), .map(|kb| kb.size(rems_from_px(12.))),
) )
.on_click( .on_click(cx.listener(Self::handle_cancel_click)),
cx.listener(Self::handle_cancel_click),
),
) )
.child( .child(
Button::new( Button::new("confirm-edit-message", "Regenerate")
"confirm-edit-message", .disabled(edit_editor.read(cx).is_empty(cx))
"Regenerate",
)
.disabled(
edit_message_editor.read(cx).is_empty(cx),
)
.label_size(LabelSize::Small) .label_size(LabelSize::Small)
.key_binding( .key_binding(
KeyBinding::for_action_in( KeyBinding::for_action_in(
@ -1806,25 +1796,15 @@ impl ActiveThread {
) )
.map(|kb| kb.size(rems_from_px(12.))), .map(|kb| kb.size(rems_from_px(12.))),
) )
.on_click( .on_click(cx.listener(Self::handle_regenerate_click)),
cx.listener(Self::handle_regenerate_click),
), ),
) )
}, })
) .when(edit_message_editor.is_none(), |this| {
.when( this.tooltip(Tooltip::text("Click To Edit"))
edit_message_editor.is_none() && allow_editing_message, })
|this| {
this.child(
Button::new("edit-message", "Edit Message")
.label_size(LabelSize::Small)
.icon(IconName::Pencil)
.icon_size(IconSize::XSmall)
.icon_color(Color::Muted)
.icon_position(IconPosition::Start)
.on_click(cx.listener({ .on_click(cx.listener({
let message_segments = let message_segments = message.segments.clone();
message.segments.clone();
move |this, _, window, cx| { move |this, _, window, cx| {
this.start_editing_message( this.start_editing_message(
message_id, message_id,
@ -1834,11 +1814,6 @@ impl ActiveThread {
); );
} }
})), })),
)
},
),
),
),
), ),
Role::Assistant => v_flex() Role::Assistant => v_flex()
.id(("message-container", ix)) .id(("message-container", ix))