diff options
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 30 |
1 files changed, 24 insertions, 6 deletions
@@ -1,6 +1,11 @@ use std::{io, time::Duration}; -use crate::{sheet::register::Register, tui, widgets::{logview::LogView, sheetview::SheetView}}; +use crate::{ + config, lua, + sheet::register::Register, + tui, + widgets::{logview::LogView, sheetview::SheetView}, +}; use ratatui::{ crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind, KeyModifiers}, @@ -29,12 +34,22 @@ impl App<'_> { } } - let view = SheetView::new(sheet_id).block(Block::bordered().title("Sheet")); + let view = SheetView::new(sheet_id); - Self { exit: false, view, logview: None } + Self { + exit: false, + view, + logview: None, + } } pub fn run(&mut self, terminal: &mut tui::Tui) -> io::Result<()> { + if let Err(e) = lua::source(&config::constants::USER_RC_PATH) { + self.exit = true; + tui::restore()?; + println!("{}", e.to_string()); + } + while !self.exit { terminal.draw(|frame| self.render_frame(frame))?; self.handle_events()?; @@ -65,7 +80,9 @@ impl App<'_> { KeyCode::Char('l') if key_event.modifiers == KeyModifiers::CONTROL => { match self.logview { Some(_) => self.logview = None, - None => self.logview = Some(LogView::new().block(Block::bordered().title(" Log "))), + None => { + self.logview = Some(LogView::new().block(Block::bordered().title(" Log "))) + } } } _ => self.view.handle_key_event(key_event), @@ -84,10 +101,11 @@ impl Widget for &mut App<'_> { { match &mut self.logview { Some(logview) => { - let layout = Layout::vertical([Constraint::Min(2), Constraint::Length(15)]).split(area); + let layout = + Layout::vertical([Constraint::Min(2), Constraint::Length(15)]).split(area); self.view.render(layout[0], buf); logview.render(layout[1], buf); - }, + } None => self.view.render(area, buf), } } |