From 3660f628c83ebbef48bd921babf20fe0328defbb Mon Sep 17 00:00:00 2001 From: Deep Panchal Date: Wed, 3 Jul 2024 10:05:37 -0500 Subject: [PATCH] feat(state): add helper funcs to State Signed-off-by: Deep Panchal --- src/state.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/state.rs b/src/state.rs index 37b3b36..bdb265e 100644 --- a/src/state.rs +++ b/src/state.rs @@ -67,4 +67,38 @@ impl State { pub fn new() -> Self { Self::default() } + + pub fn get_active_book(&self) -> Option { + if let Some(book_index) = self.books.state.selected() { + let selected_book = &self.books.items[book_index]; + Some(selected_book.clone()) + } else { + None + } + } + + pub fn get_active_page(&self) -> Option { + if let Some(page_index) = self.pages.state.selected() { + let selected_page = &self.pages.items[page_index]; + Some(selected_page.clone()) + } else { + None + } + } + + pub fn select_next_book(&mut self) { + self.books.next() + } + + pub fn select_prev_book(&mut self) { + self.books.previous() + } + + pub fn select_next_page(&mut self) { + self.pages.next() + } + + pub fn select_prev_page(&mut self) { + self.pages.previous() + } }