diff --git a/src/column.rs b/src/column.rs index bfc7a83..b5f971c 100644 --- a/src/column.rs +++ b/src/column.rs @@ -63,6 +63,18 @@ impl Columns { self.columns.push(Column::new(vec![Route::AddColumn])); } + // Get the first router in the columns if there are columns present. + // Otherwise, create a new column picker and return the router + pub fn get_first_router(&mut self) -> &mut Router { + if self.columns.is_empty() { + self.new_column_picker(); + } + self.columns + .get_mut(0) + .expect("There should be at least one column") + .router_mut() + } + pub fn columns_mut(&mut self) -> &mut Vec { &mut self.columns } diff --git a/src/ui/side_panel.rs b/src/ui/side_panel.rs index b2d1097..e676222 100644 --- a/src/ui/side_panel.rs +++ b/src/ui/side_panel.rs @@ -6,7 +6,7 @@ use crate::{ colors, column::{Column, Columns}, imgcache::ImageCache, - route::{Route, Router}, + route::Route, user_account::UserAccount, Damus, }; @@ -163,7 +163,7 @@ impl<'a> DesktopSidePanel<'a> { } pub fn perform_action(columns: &mut Columns, action: SidePanelAction) { - let router = get_first_router(columns); + let router = columns.get_first_router(); match action { SidePanelAction::Panel => {} // TODO SidePanelAction::Account => { @@ -234,17 +234,6 @@ fn settings_button(dark_mode: bool) -> impl Widget { } } -fn get_first_router(columns: &mut Columns) -> &mut Router { - if columns.columns().is_empty() { - columns.new_column_picker(); - } - columns - .columns_mut() - .get_mut(0) - .expect("There should be at least one column") - .router_mut() -} - fn add_column_button(dark_mode: bool) -> impl Widget { let _ = dark_mode; move |ui: &mut egui::Ui| {