summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/gui/components/transactions_view.rs
diff options
context:
space:
mode:
Diffstat (limited to 'schist_desktop_gui/src/gui/components/transactions_view.rs')
-rw-r--r--schist_desktop_gui/src/gui/components/transactions_view.rs23
1 files changed, 18 insertions, 5 deletions
diff --git a/schist_desktop_gui/src/gui/components/transactions_view.rs b/schist_desktop_gui/src/gui/components/transactions_view.rs
index cc4e17c..f11b713 100644
--- a/schist_desktop_gui/src/gui/components/transactions_view.rs
+++ b/schist_desktop_gui/src/gui/components/transactions_view.rs
@@ -51,11 +51,12 @@ impl TransactionsView {
let active_nav_entry = account_navigation_entries.first().cloned();
let navigation = Navigation::new(
active_nav_entry.clone(), account_navigation_entries);
+ let active_account = active_nav_entry.map(|entry| entry.account);
let transactions_table =
- TransactionsTable::new(accounts, &active_nav_entry.map(|entry| entry.account), account_transfers, buckets, transactions);
+ TransactionsTable::new(accounts, &active_account, account_transfers, buckets, transactions);
Self {
navigation: navigation,
- new_transaction_form: NewTransactionForm::new(),
+ new_transaction_form: NewTransactionForm::new(active_account, buckets.to_vec()),
transactions_table,
}
}
@@ -91,8 +92,13 @@ impl<'a> Component<'a, Message, Action> for TransactionsView {
}
Message::SetBuckets(buckets) => {
- self.update_transactions_table(
- transactions_table::Message::SetBuckets(buckets.clone()))
+ let action_1 = self.update_transactions_table(
+ transactions_table::Message::SetBuckets(buckets.clone()));
+ let action_2 = self.update_new_transaction_form(
+ new_transaction_form::Message::SetBuckets(buckets.clone()));
+ match (action_1, action_2) {
+ (Action::None, Action::None) => Action::None,
+ }
}
Message::SetTransactions(transactions) => {
@@ -114,7 +120,13 @@ impl TransactionsView {
) -> Action {
match self.navigation.update(message) {
navigation::Action::ActivateOption(option) | navigation::Action::SelectOption(option) => {
- self.update_transactions_table(transactions_table::Message::SetActiveAccount(option.account))
+ let action_1 = self.update_transactions_table(
+ transactions_table::Message::SetActiveAccount(option.account.clone()));
+ let action_2 = self.update_new_transaction_form(
+ new_transaction_form::Message::SetActiveAccount(option.account));
+ match (action_1, action_2) {
+ (Action::None, Action::None) => Action::None,
+ }
}
navigation::Action::None => Action::None,
}
@@ -135,6 +147,7 @@ impl TransactionsView {
) -> Action {
match self.new_transaction_form.update(message) {
new_transaction_form::Action::None => Action::None,
+ new_transaction_form::Action::AddTransaction(transaction) => Action::None,
}
}
}