move prompt selection code into the same place
This commit is contained in:
+13
-16
@@ -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, " ");
|
||||||
|
|||||||
Reference in New Issue
Block a user