diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-01 21:14:37 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-01 21:14:37 +0000 |
| commit | 8f7b89bf656b046269a0a40baa3df670b886d5e6 (patch) | |
| tree | 5bc8ad5d387a81927df036b8254de5d47788210d /schist_desktop_gui/src/gui/screens | |
| parent | 7623882a24e5e72d10109fe549f241bde6a31274 (diff) | |
BucketsView expands and collapses groups
Diffstat (limited to 'schist_desktop_gui/src/gui/screens')
| -rw-r--r-- | schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs b/schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs index 6347914..cddec32 100644 --- a/schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs +++ b/schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs @@ -28,6 +28,8 @@ pub struct MainScreen { pub enum Message { BalancesViewMessage(balances_view::Message), BucketsViewMessage(buckets_view::Message), + ExpandItem, + CollapseItem, NextItem, PrevItem, TransactionsViewMessage(transactions_view::Message), @@ -148,6 +150,42 @@ impl<'a> Component<'a, Message, Action> for MainScreen { Action::None } }, + + Message::ExpandItem => match self.active_view { + View::Balances => Action::None, + View::Buckets => match self.buckets_view.active_group() { + Some(active_group) => { + match self.buckets_view.update(buckets_view::Message::ExpandGroup( + active_group.clone(), + self.buckets + .iter() + .filter(|bucket| bucket.group.eq(&active_group)) + .cloned() + .collect(), + )) { + buckets_view::Action::None => Action::None, + } + } + None => Action::None, + }, + View::Transactions => Action::None, + }, + + Message::CollapseItem => match self.active_view { + View::Balances => Action::None, + View::Buckets => match self.buckets_view.active_group() { + Some(active_group) => { + match self + .buckets_view + .update(buckets_view::Message::CollapseGroup(active_group)) + { + buckets_view::Action::None => Action::None, + } + } + None => Action::None, + }, + View::Transactions => Action::None, + }, } } } |
