move prompt selection code into the same place

This commit is contained in:
2026-05-31 15:32:25 +02:00
parent f6c89143a9
commit c7a62d9599
+13 -16
View File
@@ -291,6 +291,17 @@ impl App {
self.draw_status(frame, status_layout[1]); self.draw_status(frame, status_layout[1]);
} }
fn insert_selected_prompt(&mut self) {
let selected = self.next_reply_options[self.reply_state.selected().unwrap()].clone();
if let Some(direction) = &selected.stage_direction {
self.insert_stage_direction(direction);
}
self.insert_reply(&selected.text);
self.save();
self.speak(&selected.text.as_str());
self.regenerate_responses();
}
async fn on_event(&mut self, evt: event::Event) { async fn on_event(&mut self, evt: event::Event) {
if let Some(key) = evt.as_key_press_event() { if let Some(key) = evt.as_key_press_event() {
match key.code { match key.code {
@@ -298,26 +309,12 @@ impl App {
KeyCode::Down => self.reply_state.select_next(), KeyCode::Down => self.reply_state.select_next(),
KeyCode::Up => self.reply_state.select_previous(), KeyCode::Up => self.reply_state.select_previous(),
KeyCode::Tab => { KeyCode::Tab => {
let selected = self.next_reply_options[self.reply_state.selected().unwrap()].clone(); self.insert_selected_prompt();
if let Some(direction) = &selected.stage_direction {
self.insert_stage_direction(direction);
}
self.insert_reply(&selected.text);
self.save();
self.speak(&selected.text.as_str());
self.regenerate_responses();
}, },
KeyCode::Enter => { KeyCode::Enter => {
let next_msg = self.user_input.value_and_reset(); let next_msg = self.user_input.value_and_reset();
if next_msg.trim().is_empty() { if next_msg.trim().is_empty() {
let selected = self.next_reply_options[self.reply_state.selected().unwrap()].clone(); self.insert_selected_prompt();
if let Some(direction) = &selected.stage_direction {
self.insert_stage_direction(direction);
}
self.insert_reply(&selected.text);
self.save();
self.speak(&selected.text.as_str());
self.regenerate_responses();
} else { } else {
if next_msg.starts_with("/") { if next_msg.starts_with("/") {
let mut parts = next_msg.splitn(2, " "); let mut parts = next_msg.splitn(2, " ");