From 96e1b8a6158e5ac3b56c03718de5650ff805d41b Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sun, 22 Feb 2026 09:32:21 +0000 Subject: task-085: displays running balances --- .../transactions_view/view_transactions_view.rs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'schist_desktop_gui/src/gui/components/transactions_view') diff --git a/schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs b/schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs index f43ee48..4f61493 100644 --- a/schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs +++ b/schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use iced::{ alignment, widget::{ @@ -38,7 +40,7 @@ impl<'a> Viewable<'a, Message> for TransactionsView { ), column( Text::default("Balance").width(iced::Length::Fixed(96.0)), - |_t: Transaction| view_balance_cell(), + |t: Transaction| view_balance_cell(t, &self.account_balances_by_transaction_id), ), ]; @@ -106,9 +108,17 @@ fn view_quantity_cell(t: Transaction) -> Text { .align_right() } -fn view_balance_cell() -> Text { - Text::default("TODO") - .width(iced::Length::Fixed(96.0)) - .small() - .clip() +fn view_balance_cell( + transaction: Transaction, + account_balances_by_transaction_id: &HashMap, +) -> Text { + (account_balances_by_transaction_id + .get(&transaction.id) + .map_or_else( + || Text::default("Error").danger(), + |&balance| Text::currency(balance), + )) + .width(iced::Length::Fixed(96.0)) + .small() + .clip() } -- cgit v1.2.3