diff --git a/crates/collab_ui/src/chat_panel.rs b/crates/collab_ui/src/chat_panel.rs index b1dd6584b2..6dabbbc537 100644 --- a/crates/collab_ui/src/chat_panel.rs +++ b/crates/collab_ui/src/chat_panel.rs @@ -913,6 +913,10 @@ impl ChatPanel { impl Render for ChatPanel { fn render(&mut self, cx: &mut ViewContext) -> impl IntoElement { + let channel_id = self + .active_chat + .as_ref() + .map(|(c, _)| c.read(cx).channel_id); let message_editor = self.message_editor.read(cx); let reply_to_message_id = message_editor.reply_to_message_id(); @@ -1022,6 +1026,7 @@ impl Render for ChatPanel { .child( div().flex_shrink().overflow_hidden().child( h_flex() + .id(("reply-preview", reply_to_message_id)) .child(Label::new("Replying to ").size(LabelSize::Small)) .child( div().font_weight(FontWeight::BOLD).child( @@ -1031,7 +1036,20 @@ impl Render for ChatPanel { )) .size(LabelSize::Small), ), - ), + ) + .when_some(channel_id, |this, channel_id| { + this.cursor_pointer().on_click(cx.listener( + move |chat_panel, _, cx| { + chat_panel + .select_channel( + channel_id, + reply_to_message_id.into(), + cx, + ) + .detach_and_log_err(cx) + }, + )) + }), ), ) .child(