diff --git a/client/src/ui/handlers/ui.rs b/client/src/ui/handlers/ui.rs index 4f2e038..8247c27 100644 --- a/client/src/ui/handlers/ui.rs +++ b/client/src/ui/handlers/ui.rs @@ -30,9 +30,10 @@ use std::time::Instant; use anyhow::{Context, Result}; use crossterm::cursor::SetCursorStyle; use crossterm::event as crossterm_event; -use tracing::error; +use tracing::{error, info}; use tokio::sync::mpsc; + pub async fn run_ui() -> Result<()> { let config = Config::load().context("Failed to load configuration")?; let theme = Theme::from_str(&config.colors.theme); @@ -93,6 +94,16 @@ pub async fn run_ui() -> Result<()> { AppView::Login => app_state.ui.show_login = true, AppView::Register => app_state.ui.show_register = true, AppView::Admin => { + info!("Active view is Admin, refreshing profile tree..."); + match grpc_client.get_profile_tree().await { + Ok(refreshed_tree) => { + app_state.profile_tree = refreshed_tree; + } + Err(e) => { + error!("Failed to refresh profile tree for Admin panel: {}", e); + event_handler.command_message = format!("Error refreshing admin data: {}", e); + } + } app_state.ui.show_admin = true; let profile_names = app_state.profile_tree.profiles.iter() .map(|p| p.name.clone())