14 releases (7 breaking)
|0.14.0||Jan 4, 2021|
|0.13.0||Nov 15, 2020|
|0.12.0||Sep 28, 2020|
|0.10.1||Jul 22, 2020|
|0.1.2||Jun 15, 2019|
568 downloads per month
Used in 7 crates (3 directly)
tui-react is a library to enable components with state, and with properties provided per render
Please note that this crate is early in development and build for the needs of dua.
It uses the TUI infrastructure Terminal, but alters it to not enforce implementing the
It provides only a single, optional, trait called
TopLevelComponent, which makes it convenient to
draw its implementors with
Terminal::render(..). However, since this enforces the absence of
refernces in your state, it's probably not suitable for most.
Instead, any struct can implement
render methods or functions, and freely write into the terminal.
That way, one can leverage everything Rust has to offer, which allows stateful components which
work in your favor. Thus, this crate does away with 'one size fits all' render implementations,
greatly adding to flexibility.
State that one wants within the component for instance could be the scoll location. Alternatively, one can configure windows by altering their public state.
This project coudln't exist without it, and is happy to provide an alternative set of components for use in command-line applications.
I kept having a terrible feeling when managing state with tui widgets when writing dua, and after trying many things, I realized what the problem actually was. It took me some time to realize it's not possible to have stateful components in with TUI, and I admire the smarts that went into the API design! After all, it effectively prohibited this! Amazing!
That's why I implemented my own terminal and some key components, based on the ones provided by TUI, which can serve as standard building blocks in a stateful world.
Thus far, the experience was fantastic, and it feels much better than before. Let's see what happens with it.