mod make_balances_view_greeting; mod update_balances_view; mod view_balances_view; mod view_group_names; use self::view_group_names::view_group_names; use schist_models::Bucket; use crate::gui::components::{ balances_view::make_balances_view_greeting::make_balances_view_greeting, navigation, Navigation, Text, }; #[derive(Clone, Debug)] pub struct BalancesView { buckets: Vec, greeting: String, navigation: Navigation, } #[derive(Clone, Debug)] pub enum Message { NavigationMessage(navigation::Message), SelectNextBucket, SelectPrevBucket, SetBuckets(Vec), } pub enum Action { None, } impl BalancesView { pub fn new(buckets: Vec) -> Self { let groups = view_group_names(buckets.clone()); let active_group = groups.clone().first().cloned(); let navigation = Navigation::new(active_group.clone(), groups); Self { buckets: buckets.clone(), greeting: make_balances_view_greeting(active_group), navigation: navigation, } } }