diff --git a/tui/src/floating_text.rs b/tui/src/floating_text.rs index dc13c748..d653940e 100644 --- a/tui/src/floating_text.rs +++ b/tui/src/floating_text.rs @@ -29,7 +29,7 @@ pub struct FloatingText { max_line_width: usize, v_scroll: usize, h_scroll: usize, - mode_title: String, + title: String, } macro_rules! style { @@ -124,7 +124,7 @@ fn get_lines_owned(s: &str) -> Vec { } impl FloatingText { - pub fn new(text: String, title: &str) -> Self { + pub fn new(text: String, title: String) -> Self { let src = get_lines(&text) .into_iter() .map(|s| s.to_string()) @@ -133,7 +133,7 @@ impl FloatingText { let max_line_width = max_width!(src); Self { src, - mode_title: title.to_string(), + title, max_line_width, v_scroll: 0, h_scroll: 0, @@ -146,6 +146,7 @@ impl FloatingText { // just apply highlights directly (max_width!(get_lines(cmd)), Some(cmd.clone())) } + Command::LocalFile { file, .. } => { // have to read from tmp dir to get cmd src let raw = std::fs::read_to_string(file) @@ -163,7 +164,7 @@ impl FloatingText { Some(Self { src, - mode_title: title, + title, max_line_width, h_scroll: 0, v_scroll: 0, @@ -197,10 +198,12 @@ impl FloatingText { impl FloatContent for FloatingText { fn top_title(&self) -> Option> { - let title_text = format!(" {} ", self.mode_title); + let title_text = format!(" {} ", self.title); + let title_line = Line::from(title_text) .centered() .style(Style::default().reversed()); + Some(title_line) } @@ -274,7 +277,7 @@ impl FloatContent for FloatingText { fn get_shortcut_list(&self) -> (&str, Box<[Shortcut]>) { ( - &self.mode_title, + &self.title, Box::new([ Shortcut::new("Scroll down", ["j", "Down"]), Shortcut::new("Scroll up", ["k", "Up"]), diff --git a/tui/src/state.rs b/tui/src/state.rs index 9ed61771..1348089b 100644 --- a/tui/src/state.rs +++ b/tui/src/state.rs @@ -598,11 +598,6 @@ impl AppState { None } - fn get_selected_description(&self) -> Option { - self.get_selected_node() - .map(|node| node.description.clone()) - } - pub fn go_to_selected_dir(&mut self) { let mut selected_index = self.selection.selected().unwrap_or(0); @@ -654,18 +649,19 @@ impl AppState { } fn enable_preview(&mut self) { - if let Some(list_node) = self.get_selected_node() { - let mut preview_title = "[Preview] - ".to_string(); - preview_title.push_str(list_node.name.as_str()); - if let Some(preview) = FloatingText::from_command(&list_node.command, preview_title) { + if let Some(node) = self.get_selected_node() { + let preview_title = format!("Command Preview - {}", node.name.as_str()); + if let Some(preview) = FloatingText::from_command(&node.command, preview_title) { self.spawn_float(preview, 80, 80); } } } fn enable_description(&mut self) { - if let Some(command_description) = self.get_selected_description() { - let description = FloatingText::new(command_description, "Command Description"); + if let Some(node) = self.get_selected_node() { + let desc_title = format!("Command Description - {}", &node.name); + + let description = FloatingText::new(node.description.clone(), desc_title); self.spawn_float(description, 80, 80); } } @@ -731,7 +727,10 @@ impl AppState { fn toggle_task_list_guide(&mut self) { self.spawn_float( - FloatingText::new(ACTIONS_GUIDE.to_string(), "Important Actions Guide"), + FloatingText::new( + ACTIONS_GUIDE.to_string(), + "Important Actions Guide".to_string(), + ), 80, 80, );