diff options
| author | Joe Carstairs <me@joeac.net> | 2026-02-08 15:22:50 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-02-08 15:22:50 +0000 |
| commit | b9244f6049c685c2b983632359676521506f8772 (patch) | |
| tree | ad553b4c120f9bd0b3807d9f516845ab1de49cee /schist_desktop_gui/src/gui | |
| parent | 5b592ca899ad5a9090c1acd5776221f79e44d121 (diff) | |
task-085: fetches transactions from database
Diffstat (limited to 'schist_desktop_gui/src/gui')
| -rw-r--r-- | schist_desktop_gui/src/gui/components/transactions_view.rs | 10 | ||||
| -rw-r--r-- | schist_desktop_gui/src/gui/screens/main_screen/main_screen.rs | 9 |
2 files changed, 18 insertions, 1 deletions
diff --git a/schist_desktop_gui/src/gui/components/transactions_view.rs b/schist_desktop_gui/src/gui/components/transactions_view.rs index d28629d..6f2ad44 100644 --- a/schist_desktop_gui/src/gui/components/transactions_view.rs +++ b/schist_desktop_gui/src/gui/components/transactions_view.rs @@ -26,6 +26,7 @@ pub enum Message { SelectNextAccount, SelectPrevAccount, SetAccounts(Vec<Account>), + SetTransactions(Vec<Transaction>), } pub enum Action { @@ -86,6 +87,7 @@ impl<'a> Component<'a, Message, Action> for TransactionsView { self.navigation.update(message); Action::None } + Message::SetAccounts(accounts) => { let account_navigation_entries: Vec<AccountNavigationEntry> = accounts .into_iter() @@ -95,10 +97,18 @@ impl<'a> Component<'a, Message, Action> for TransactionsView { .update(navigation::Message::SetOptions(account_navigation_entries)); Action::None } + + Message::SetTransactions(transactions) => { + self.transactions_by_account_id = + transactions.into_iter().into_group_map_by(|t| t.account_id); + Action::None + } + Message::SelectNextAccount => { self.navigation.update(navigation::Message::SelectNext); Action::None } + Message::SelectPrevAccount => { self.navigation.update(navigation::Message::SelectPrev); Action::None 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 0e8d084..0a2c355 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 @@ -4,7 +4,7 @@ use iced::{ widget::{row, Container}, Element, Length, }; -use schist_models::{Account, Bucket}; +use schist_models::{Account, Bucket, Transaction}; use crate::{ gui::components::{ @@ -36,6 +36,7 @@ pub enum Message { SelectView(View), SetAccounts(Vec<Account>), SetBuckets(Vec<Bucket>), + SetTransactions(Vec<Transaction>), ViewNavigationMessage(navigation::Message<View>), } @@ -118,6 +119,12 @@ impl<'a> Component<'a, Message, Action> for MainScreen { Action::None } + Message::SetTransactions(transactions) => { + self.transactions_view + .update(transactions_view::Message::SetTransactions(transactions)); + Action::None + } + Message::NextItem => match self.active_view { View::Balances => { self.balances_view |
