monade-mprocs 0.2.1

A fork of the popular mprocs utility, includable via cargo as a library
Documentation
use tui::{layout::Rect, text::Text, widgets::Paragraph, Frame};

use crate::{
  event::AppEvent,
  keymap::{Keymap, KeymapGroup},
  protocol::ProxyBackend,
  theme::Theme,
};

type Backend = ProxyBackend;

pub fn render_zoom_tip(
  area: Rect,
  frame: &mut Frame<Backend>,
  keymap: &Keymap,
) {
  let theme = Theme::default();

  let events = vec![
    AppEvent::FocusTerm,
    AppEvent::ToggleFocus,
    AppEvent::FocusProcs,
  ];
  let key = events
    .into_iter()
    .find_map(|event| keymap.resolve_key(KeymapGroup::Term, &event));

  let line = if let Some(key) = key {
    Text::from(format!(" To exit zoom mode press {}", key.to_string()))
  } else {
    Text::from(" No key bound to exit the zoom mode")
  };
  let p = Paragraph::new(line).style(theme.zoom_tip());
  frame.render_widget(p, area);
}