agent: Preserve chat box text on 'New From Summary' (#33220)
CC: @danilo-leal Do you have thoughts on this? I found myself typing chat messages after a long thread and then deciding I would be better served by restarting from a summary -- and then "poof" the contents of my chat box was lost. Release Notes: - agent: "New From Summary" now preserves any unsent content in the chat box.
This commit is contained in:
parent
bd8471bb40
commit
980917bb7c
2 changed files with 28 additions and 0 deletions
|
@ -728,6 +728,12 @@ impl AgentPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_thread(&mut self, action: &NewThread, window: &mut Window, cx: &mut Context<Self>) {
|
fn new_thread(&mut self, action: &NewThread, window: &mut Window, cx: &mut Context<Self>) {
|
||||||
|
// Preserve chat box text when using creating new thread from summary'
|
||||||
|
let preserved_text = action
|
||||||
|
.from_thread_id
|
||||||
|
.is_some()
|
||||||
|
.then(|| self.message_editor.read(cx).get_text(cx).trim().to_string());
|
||||||
|
|
||||||
let thread = self
|
let thread = self
|
||||||
.thread_store
|
.thread_store
|
||||||
.update(cx, |this, cx| this.create_thread(cx));
|
.update(cx, |this, cx| this.create_thread(cx));
|
||||||
|
@ -804,6 +810,13 @@ impl AgentPanel {
|
||||||
cx,
|
cx,
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if let Some(text) = preserved_text {
|
||||||
|
self.message_editor.update(cx, |editor, cx| {
|
||||||
|
editor.set_text(text, window, cx);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
self.message_editor.focus_handle(cx).focus(window);
|
self.message_editor.focus_handle(cx).focus(window);
|
||||||
|
|
||||||
let message_editor_subscription =
|
let message_editor_subscription =
|
||||||
|
|
|
@ -240,6 +240,21 @@ impl MessageEditor {
|
||||||
&self.context_store
|
&self.context_store
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_text(&self, cx: &App) -> String {
|
||||||
|
self.editor.read(cx).text(cx)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn set_text(
|
||||||
|
&mut self,
|
||||||
|
text: impl Into<Arc<str>>,
|
||||||
|
window: &mut Window,
|
||||||
|
cx: &mut Context<Self>,
|
||||||
|
) {
|
||||||
|
self.editor.update(cx, |editor, cx| {
|
||||||
|
editor.set_text(text, window, cx);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pub fn expand_message_editor(
|
pub fn expand_message_editor(
|
||||||
&mut self,
|
&mut self,
|
||||||
_: &ExpandMessageEditor,
|
_: &ExpandMessageEditor,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue