summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui/screens
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-02-01 21:14:37 +0000
committerJoe Carstairs <me@joeac.net>2026-02-01 21:14:37 +0000
commit8f7b89bf656b046269a0a40baa3df670b886d5e6 (patch)
tree5bc8ad5d387a81927df036b8254de5d47788210d /schist_desktop_gui/src/gui/screens
parent7623882a24e5e72d10109fe549f241bde6a31274 (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.rs38
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,
+ },
}
}
}