tnj-tui 0.1.2

TUI Tasks, notes and journals in Notebooks
Documentation
use ratatui::widgets::{Block, Borders, List, ListItem, StatefulWidget};
use ratatui::style::Style;
use ratatui::Frame;
use ratatui::layout::Rect;
use ratatui::widgets::ListState;
use crate::Config;
use crate::tui::widgets::color::{parse_color, get_contrast_text_color};

pub fn render_settings_list(f: &mut Frame, area: Rect, categories: &[String], list_state: &mut ListState, config: &Config) {
    let items: Vec<ListItem> = categories.iter().map(|category| {
        ListItem::new(category.clone())
    }).collect();

    let active_theme = config.get_active_theme();
    let highlight_bg = parse_color(&active_theme.highlight_bg);
    let highlight_fg = get_contrast_text_color(highlight_bg);
    
    let list = List::new(items)
        .block(Block::default().borders(Borders::ALL).title("Settings"))
        .style(Style::default().fg(parse_color(&active_theme.fg)))
        .highlight_style(
            Style::default()
                .fg(highlight_fg)
                .bg(highlight_bg)
        );

    StatefulWidget::render(list, area, f.buffer_mut(), list_state);
}