From 8a1f6b186bde43323003c440910d43e0db8a7bc3 Mon Sep 17 00:00:00 2001 From: pablu Date: Fri, 8 May 2026 14:33:59 +0200 Subject: first dashboard implementation --- src/app.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/app.rs') diff --git a/src/app.rs b/src/app.rs index b4e6456..fb18558 100644 --- a/src/app.rs +++ b/src/app.rs @@ -3,6 +3,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> { @@ -14,6 +20,7 @@ pub struct App<'a> { search_indexes: Option>, pub search_indexes_len: Option, pub current_search_index: Option, + 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 = self .portage -- cgit 1.3.1