diff options
| author | pablu <me@pablu.de> | 2026-06-02 19:55:57 +0200 |
|---|---|---|
| committer | pablu <me@pablu.de> | 2026-06-02 19:55:57 +0200 |
| commit | 0f9492c0da3ac6d391b7b0d32ea2a391b94a18f4 (patch) | |
| tree | a1fb59a02068ad49ea40d055e3b5e00da3db63a3 /src/widgets/tabs.rs | |
| parent | b547e6758c635682c94794e5c13070a73c918203 (diff) | |
near feature parity with previous architecture
Diffstat (limited to 'src/widgets/tabs.rs')
| -rw-r--r-- | src/widgets/tabs.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/widgets/tabs.rs b/src/widgets/tabs.rs new file mode 100644 index 0000000..aca7685 --- /dev/null +++ b/src/widgets/tabs.rs @@ -0,0 +1,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); +} |
