diff options
| author | lukeflo | 2024-10-02 21:45:26 +0200 |
|---|---|---|
| committer | lukeflo | 2024-10-02 21:45:26 +0200 |
| commit | 36f01f65b1804125e7d18a17ce57205248e1b7fd (patch) | |
| tree | c46e63486a3c96448db091174efdcf343693dd9b /src/main.rs | |
| parent | c78ae222ea75d36f4aef6e274d2c986e37462276 (diff) | |
| download | bibiman-36f01f65b1804125e7d18a17ce57205248e1b7fd.tar.gz bibiman-36f01f65b1804125e7d18a17ce57205248e1b7fd.zip | |
reordered tui handling
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/src/main.rs b/src/main.rs index c7007ba..9fc9d17 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,17 +21,19 @@ use backend::cliargs::{self, CLIArgs}; use ratatui::{backend::CrosstermBackend, Terminal}; use crate::{ - frontend::app::{App, AppResult}, + frontend::app::App, frontend::event::{Event, EventHandler}, frontend::handler::handle_key_events, frontend::tui::Tui, }; +use color_eyre::eyre::Result; + pub mod backend; pub mod frontend; #[tokio::main] -async fn main() -> AppResult<()> { +async fn main() -> Result<()> { // Parse CLI arguments let parsed_args = CLIArgs::parse_cli_args(); @@ -48,29 +50,8 @@ async fn main() -> AppResult<()> { } // Create an application. - let mut app = App::new(); - - // Initialize the terminal user interface. - let backend = CrosstermBackend::new(io::stdout()); - let terminal = Terminal::new(backend)?; - let events = EventHandler::new(250); - let mut tui = Tui::new(terminal, events); - tui.init()?; - - // Start the main loop. - while app.running { - // Render the user interface. - tui.draw(&mut app)?; - // Handle events. - match tui.events.next().await? { - Event::Tick => app.tick(), - Event::Key(key_event) => handle_key_events(key_event, &mut app)?, - Event::Mouse(_) => {} - Event::Resize(_, _) => {} - } - } + let mut app = App::new()?; - // Exit the user interface. - tui.exit()?; + app.run().await?; Ok(()) } |
