diff options
| author | pablu <me@pablu.de> | 2026-05-08 14:33:59 +0200 |
|---|---|---|
| committer | pablu <me@pablu.de> | 2026-05-08 14:33:59 +0200 |
| commit | 8a1f6b186bde43323003c440910d43e0db8a7bc3 (patch) | |
| tree | d2f191ce43cc3a1deedde40d25991a8b4fe537c5 /src/app.rs | |
| parent | 0d85df1dfe0bd3fbb4c78f9bbc3cb24c464b901c (diff) | |
first dashboard implementation
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -4,6 +4,12 @@ use ratatui_textarea::TextArea; use crate::gentoo::{Package, portage::Portage}; #[derive(Debug)] +pub enum ViewState { + Dashboard, + InstalledPackages, +} + +#[derive(Debug)] #[allow(dead_code)] pub struct App<'a> { portage: Portage, @@ -14,6 +20,7 @@ pub struct App<'a> { search_indexes: Option<Vec<usize>>, pub search_indexes_len: Option<usize>, pub current_search_index: Option<usize>, + pub view: ViewState, } #[allow(dead_code)] @@ -28,6 +35,7 @@ impl<'a> App<'a> { search_indexes: None, current_search_index: None, search_indexes_len: None, + view: ViewState::Dashboard, } } @@ -50,6 +58,13 @@ impl<'a> App<'a> { self.search_found = None; } + pub fn cycle_current_tab(&mut self) { + match self.view { + ViewState::Dashboard => self.view = ViewState::InstalledPackages, + ViewState::InstalledPackages => self.view = ViewState::Dashboard, + } + } + pub fn search(&mut self) -> bool { let indexes: Vec<usize> = self .portage |
