aboutsummaryrefslogtreecommitdiff
path: root/src/widgets/tabs.rs
blob: aca768599a321f8f0ce9b635eb9b7c5f3cdb2f99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use ratatui::{
    Frame,
    layout::Rect,
    symbols,
    widgets::{Block, Borders, Tabs},
};

use crate::{app::ViewState, theme::Theme};

pub fn render_tab(frame: &mut Frame, area: Rect, selected_tab: &ViewState) {
    let selected_index = match selected_tab {
        ViewState::Dashboard => 0,
        ViewState::InstalledPackages => 1,
        ViewState::AvailablePackages => 2,
    };

    let tabs = Tabs::new(vec!["Dashboard", "Installed", "Browse"])
        .block(Block::default().borders(Borders::ALL).style(Theme::block()))
        .highlight_style(Theme::success())
        .select(selected_index)
        .divider(symbols::DOT)
        .padding(" ", " ");
    frame.render_widget(tabs, area);
}