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]);
}
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) {
if let Some(key) = evt.as_key_press_event() {
match key.code {
@@ -298,26 +309,12 @@ impl App {
KeyCode::Down => self.reply_state.select_next(),
KeyCode::Up => self.reply_state.select_previous(),
KeyCode::Tab => {
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();
self.insert_selected_prompt();
},
KeyCode::Enter => {
let next_msg = self.user_input.value_and_reset();
if next_msg.trim().is_empty() {
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();
self.insert_selected_prompt();
} else {
if next_msg.starts_with("/") {
let mut parts = next_msg.splitn(2, " ");