use ratatui::{
Frame,
layout::Rect,
style::{Color, Modifier, Style},
text::{Line, Span},
widgets::{Block, Borders, Tabs},
};
use crate::app::App;
pub fn draw(frame: &mut Frame, app: &App, area: Rect) {
let t = &app.t;
#[cfg(target_os = "linux")]
let titles_raw = vec![
format!("{} [1]", t.tab_overview),
format!("{} [2]", t.tab_cpu),
format!("{} [3]", t.tab_memory),
format!("{} [4]", t.tab_network),
format!("{} [5]", t.tab_disks),
format!("{} [6]", t.tab_processes),
format!("{} [7]", t.tab_gpu),
];
#[cfg(not(target_os = "linux"))]
let titles_raw = vec![
format!("{} [1]", t.tab_overview),
format!("{} [2]", t.tab_cpu),
format!("{} [3]", t.tab_memory),
format!("{} [4]", t.tab_network),
format!("{} [5]", t.tab_disks),
format!("{} [6]", t.tab_processes),
];
let titles: Vec<Line> = titles_raw
.into_iter()
.map(|s| Line::from(Span::styled(s, Style::default().fg(Color::White))))
.collect();
let tabs = Tabs::new(titles)
.block(
Block::default()
.title(Span::styled(
format!(" {} ", t.menu_title),
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD),
))
.borders(Borders::ALL),
)
.select(app.selected_tab)
.highlight_style(
Style::default()
.fg(Color::Cyan)
.add_modifier(Modifier::BOLD | Modifier::UNDERLINED),
);
frame.render_widget(tabs, area);
}