Files
ui-agregator/src/main.rs
T

57 lines
1.3 KiB
Rust

use std::io;
use color_eyre::Result;
use crossterm::{
event::{self, Event, KeyCode, KeyEventKind},
terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
ExecutableCommand,
};
use ratatui::{prelude::*, widgets::*};
fn main() -> Result<()> {
color_eyre::install()?;
enable_raw_mode()?;
io::stdout().execute(EnterAlternateScreen)?;
let mut terminal = Terminal::new(CrosstermBackend::new(io::stdout()))?;
let result = run(&mut terminal);
disable_raw_mode()?;
io::stdout().execute(LeaveAlternateScreen)?;
result
}
fn run(terminal: &mut Terminal<CrosstermBackend<io::Stdout>>) -> Result<()> {
loop {
terminal.draw(ui)?;
if let Event::Key(key) = event::read()? {
if key.kind != KeyEventKind::Press {
continue;
}
match key.code {
KeyCode::Char('q') => return Ok(()),
_ => {}
}
}
}
}
fn ui(frame: &mut Frame) {
let area = frame.area();
let block = Block::bordered()
.title(" ui-agregator ")
.title_alignment(Alignment::Center)
.border_type(BorderType::Rounded);
let text = Paragraph::new("press q to quit")
.alignment(Alignment::Center)
.block(block);
frame.render_widget(text, area);
}