terminal ui fixes

This commit is contained in:
Timur Gordon 2025-08-07 15:49:35 +02:00
parent 69e612e521
commit 337ec2f660

View File

@ -10,7 +10,7 @@ use crossterm::{
execute, execute,
}; };
use hero_job::{Job, JobStatus, ScriptType}; use hero_job::{Job, JobStatus, ScriptType};
use log::error;
use ratatui::{ use ratatui::{
backend::{Backend, CrosstermBackend}, backend::{Backend, CrosstermBackend},
layout::{Alignment, Constraint, Direction, Layout, Rect}, layout::{Alignment, Constraint, Direction, Layout, Rect},
@ -215,9 +215,7 @@ impl App {
}; };
if let Some(dir) = example_dir { if let Some(dir) = example_dir {
if let Err(e) = app.load_examples_tree(dir) { let _ = app.load_examples_tree(dir);
error!("Failed to load examples tree: {}", e);
}
} }
Ok(app) Ok(app)
@ -292,40 +290,6 @@ impl App {
Ok(nodes) Ok(nodes)
} }
fn load_flat_examples(&mut self, dir: &PathBuf) -> Result<()> {
let mut examples = Vec::new();
self.collect_all_rhai_files(&mut examples, dir)?;
self.examples = examples;
if !self.examples.is_empty() {
self.example_list_state.select(Some(0));
if self.selected_example.is_none() {
self.selected_example = Some(self.examples[0].clone());
}
}
Ok(())
}
fn collect_all_rhai_files(&self, examples: &mut Vec<ExampleScript>, dir: &PathBuf) -> Result<()> {
for entry in fs::read_dir(dir)? {
let entry = entry?;
let path = entry.path();
if path.is_dir() {
self.collect_all_rhai_files(examples, &path)?;
} else if path.extension().map_or(false, |ext| ext == "rhai") {
if let Some(name) = path.file_stem().and_then(|s| s.to_str()) {
examples.push(ExampleScript {
name: name.to_string(),
path,
});
}
}
}
Ok(())
}
fn rebuild_tree_items(&mut self) { fn rebuild_tree_items(&mut self) {
self.example_tree_items.clear(); self.example_tree_items.clear();
let mut index = 0; let mut index = 0;
@ -733,9 +697,7 @@ impl App {
/// Setup terminal and run the TUI application /// Setup terminal and run the TUI application
pub async fn setup_and_run_tui(mut app: App) -> Result<()> { pub async fn setup_and_run_tui(mut app: App) -> Result<()> {
// Initial job refresh // Initial job refresh
if let Err(e) = app.refresh_jobs().await { let _ = app.refresh_jobs().await;
error!("Failed to refresh jobs: {}", e);
}
// Setup terminal // Setup terminal
enable_raw_mode()?; enable_raw_mode()?;