virtuoso-cli 0.1.6

CLI tool to control Cadence Virtuoso from anywhere, locally or remotely
Documentation
use crate::tui::app::state::{App, StatusKind};
use crate::tui::theme::Theme;
use ratatui::layout::Rect;
use ratatui::style::Style;
use ratatui::text::{Line, Span};
use ratatui::widgets::Paragraph;
use ratatui::Frame;

pub fn render_footer(frame: &mut Frame, app: &App, theme: &Theme, area: Rect) {
    let mut spans = Vec::new();

    if let Some(status) = &app.status {
        let color = match status.kind {
            StatusKind::Info => theme.text_dim,
            StatusKind::Ok => theme.success,
            StatusKind::Warn => theme.accent,
            StatusKind::Err => theme.error,
        };
        let style = if theme.no_color {
            Style::default()
        } else {
            Style::default().fg(color)
        };
        spans.push(Span::styled(format!(" {} ", status.message), style));
        spans.push(Span::styled(
            "",
            if theme.no_color {
                Style::default()
            } else {
                Style::default().fg(theme.border)
            },
        ));
    }

    let dim = if theme.no_color {
        Style::default()
    } else {
        Style::default().fg(theme.text_dim)
    };
    spans.push(Span::styled(
        " j/k nav  Tab switch  r refresh  l log  ? help  q quit ",
        dim,
    ));

    frame.render_widget(Paragraph::new(Line::from(spans)), area);
}