sshy 0.1.2

TUI application to make SSH configuration easier
use ratatui::{
    layout::Rect,
    style::Style,
    widgets::{Block, BorderType, Borders, List, ListDirection, ListState},
    Frame,
};

use crate::{
    model::sections_state::known_hosts_list_state::KnownHostsListState, ui::ui_utils::styles,
};

pub fn draw(f: &mut Frame, rect: &Rect, section_state: &KnownHostsListState) {
    let mut block = Block::default()
        .title("Known hosts")
        .borders(Borders::ALL)
        .border_type(BorderType::Rounded)
        .style(Style::default());

    if section_state.has_focus() {
        block = block.border_style(styles::focused_border());
    }

    let list = List::default()
        .items(section_state.get_items())
        .direction(ListDirection::TopToBottom)
        .highlight_style(styles::highlighted_item())
        .block(block);

    let mut list_state = ListState::default();
    list_state.select(section_state.get_selected_item_idx());

    f.render_stateful_widget(list, *rect, &mut list_state);
}