ratflow 0.3.0

A minimalistic framework for building TUI applications using a reactive architecture.
Documentation
use color_eyre::Result;
use crossterm::event::KeyCode;
use ratatui::Frame;
use ratatui::widgets::Paragraph;
use ratflow::{Render, Runtime, on_key_press, run};
use sycamore_reactive::use_context;

fn app() -> impl Render {
    let runtime = use_context::<Runtime>();

    on_key_press(move |key| {
        if let KeyCode::Char('q') = key.code {
            runtime.quit()
        }
    });

    let greeting = Paragraph::new("Hello World! (press 'q' to quit)");

    move |frame: &mut Frame| {
        frame.render_widget(&greeting, frame.area());
    }
}

#[tokio::main]
async fn main() -> Result<()> {
    color_eyre::install()?;
    run(app).await?;
    Ok(())
}