diff options
Diffstat (limited to 'schist_desktop_gui/src/gui/components/transactions_view')
| -rw-r--r-- | schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs | 41 |
1 files changed, 41 insertions, 0 deletions
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 new file mode 100644 index 0000000..37b6655 --- /dev/null +++ b/schist_desktop_gui/src/gui/components/transactions_view/view_transactions_view.rs @@ -0,0 +1,41 @@ +use iced::{ + alignment, + widget::{column, row, Container}, + Element, Length, +}; + +use crate::{ + gui::components::{AccountNavigationEntry, Text}, + style::SPACING_LG, + traits::Viewable, +}; + +use super::{Message, TransactionsView}; + +impl<'a> Viewable<'a, Message> for TransactionsView { + fn view(&'a self) -> Element<'a, Message> { + let navigation = self.navigation.view().map(Message::NavigationMessage); + let main_content = column![ + Text::default("Hello, transactions!").as_element(), + Text::default(&format!( + "{} transactions in this account.", + self.navigation.active_option.clone().map_or( + 0, + |AccountNavigationEntry { account, .. }| self + .transactions_by_account_id + .get(&account.id) + .map_or(0, |transactions| transactions.len()) + ) + )) + .as_element(), + ]; + row![ + Container::new(navigation).width(Length::FillPortion(1)), + Container::new(main_content).width(Length::FillPortion(3)), + ] + .align_y(alignment::Vertical::Center) + .height(Length::Fill) + .spacing(SPACING_LG) + .into() + } +} |
