Tui Realm Versions Save

👑 tui-rs framework to build stateful applications with a React/Elm inspired approach

v1.3.0

2 years ago

1.3.0

Released on 28/11/2021

  • Added lock_ports() and unlock_ports() to pause event listener.
    • Once lock_ports() is called, Ports won't be polled as long as unlock_ports() is not called.
    • by default ports are Unlocked

v1.2.1

2 years ago

1.2.1

Released on 27/11/2021

  • TextSpan From trait implementation, now accepts AsRef<str>

v1.2.0

2 years ago

1.2.0

Released on 25/11/2021

Yet, another update 🙄

  • Application API:
    • Added lock_subs() and unlock_subs() methods.
      • Once lock_subs() is called, events won't be anymore propagated to subscriptions as long as unlock_subs() is not called.
      • by default events will be propagated to subs.
  • Sub Clause:
    • Added Id to HasAttr and HasState sub clauses.
    • Added new IsMounted(Id) sub clause

v1.1.2

2 years ago

1.1.2

Released on 23/11/2021

❗ There's no 1.1.1 version. Since I don't like it as a version number, I decided to skip it

  • Application API changes:
    • Removed sanitize since View is no more accessible
    • Added umount_all method which umounts all components from View and active subscriptions

v1.1.0

2 years ago

1.1.0

Released on 21/11/2021

  • tick() will now return a Vec<Msg>. There's no need to pass an Update trait anymore
    • The reasons behind this is that it was too annoying to handle the model in a separate structure which could not render the Ui.
  • Exposed PollStrategy at root level

v1.0.1

2 years ago

1.0.1

Released on 20/11/2021

  • Improved performance for crossterm listener

v1.0.0

2 years ago

1.0.0

Released on 13/11/2021

  • New API; view docs

v0.6.0

2 years ago

0.6.0

Released on 03/08/2021

Yet another update...

  • ❗ Compatibility with tui 0.16 and crossterm 0.20
    • You can now set the block title alignment

      • Added title to Props
      • BlockTitle type in Props, which is made up of text and alignment. Use this instead of setting title in own map
    • 🔴 A really bad new in Msg matching 😭

      in crossterm 0.20 to solve an issue they removed the #[derive(Eq, PartialEq)] from KeyEvent. This has now caused an issue when matching against OnKey events:

      error: to use a constant of type `KeyEvent` in a pattern, `KeyEvent` must be annotated with `#[derive(PartialEq, Eq)]`
      

      To solve this issue you must from now on use a guard match to match keys:

      fn update(model: &mut Model, view: &mut View, msg: Option<(String, Msg)>) -> Option<(String, Msg)> {
          let ref_msg: Option<(&str, &Msg)> = msg.as_ref().map(|(s, msg)| (s.as_str(), msg));
          match ref_msg {
              None => None, // Exit after None
              Some(msg) => match msg {
                  (COMPONENT_COUNTER1, key) if key == &MSG_KEY_TAB => {
                      view.active(COMPONENT_COUNTER2);
                      None
                  }
                  (COMPONENT_COUNTER2, key) if key == &MSG_KEY_TAB => {
                      view.active(COMPONENT_COUNTER1);
                      None
                  }
                  (_, key) if key == &MSG_KEY_ESC => {
                      // Quit on esc
                      model.quit();
                      None
                  }
                  _ => None,
              },
          }
      }
      

v0.5.1

2 years ago

0.5.1

Released on 31/07/2021

  • Bugfix:
    • Expose get_data from Dataset

v0.5.0

2 years ago

0.5.0

Released on 31/07/2021

  • New PropValue values:
    • Alignment
    • Dataset
    • Shape
    • Style
    • Table
    • TextSpan
  • Added unwrap_{type}() helpers for PropPayload and PropValue
  • ❗ Breaking changes ❗
    • Removed Color from PropValue, use palette instead ❗
    • ❗ Removed TextParts from Props, use own properties instead ❗
    • ❗ Removed TextSpanBuilder, you can just use the same methods on TextSpan when creating it ❗
    • ❗ Renamed Canvas to Frame
    • ❗ Moved standard library to tui-realm-stdlib
    • ❗ Removed with-components feature ❗