diff options
| author | pablu <me@pablu.de> | 2026-05-19 20:51:10 +0200 |
|---|---|---|
| committer | pablu <me@pablu.de> | 2026-05-19 20:51:10 +0200 |
| commit | afe649e0efc31fcd33a828e54bd6313cd37f1784 (patch) | |
| tree | c2cec9450cc1778f62c6339dad9c8f7d43c46b16 /src/app.rs | |
| parent | a6b4b29aaa222fa5c2f30cad233e97cb8125f96f (diff) | |
Add available package loading, update README.md, use eyre_color::Result
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -1,17 +1,19 @@ use ratatui::widgets::ListState; use ratatui_textarea::TextArea; -use crate::gentoo::{Package, portage::Portage}; +use crate::gentoo::{InstalledPackage, portage::Portage}; #[derive(Debug)] pub enum ViewState { Dashboard = 0, InstalledPackages = 1, + AvailablePackages = 2, } #[derive(Debug)] pub struct App<'a> { portage: Portage, + pub list_state: ListState, pub showing_search_window: bool, pub textarea: TextArea<'a>, @@ -41,11 +43,11 @@ impl App<'_> { self.portage.world_packages.len() } - pub fn installed_packages(&self) -> &[Package] { + pub fn installed_packages(&self) -> &[InstalledPackage] { &self.portage.installed_packages } - pub fn current_package(&self) -> &Package { + pub fn current_package(&self) -> &InstalledPackage { let selected_package_index = self.list_state.selected().unwrap_or_default(); &self.portage.installed_packages[selected_package_index] } @@ -63,7 +65,8 @@ impl App<'_> { pub fn cycle_current_tab(&mut self) { match self.view { ViewState::Dashboard => self.view = ViewState::InstalledPackages, - ViewState::InstalledPackages => self.view = ViewState::Dashboard, + ViewState::InstalledPackages => self.view = ViewState::AvailablePackages, + ViewState::AvailablePackages => self.view = ViewState::Dashboard, } } @@ -74,7 +77,8 @@ impl App<'_> { .iter() .enumerate() .filter(|(_, s)| { - s.name + s.atom + .qualified_name() .to_lowercase() .contains(&self.textarea.lines()[0].to_lowercase()) }) |
