grpc post request to the table definition from add table, not working, major bug, needs debugging to make it work

This commit is contained in:
filipriec
2025-04-22 23:22:59 +02:00
parent 2992f122bc
commit 6fa8b06063
5 changed files with 156 additions and 5 deletions

View File

@@ -21,6 +21,8 @@ use crate::tui::terminal::{EventReader, TerminalCore};
use crate::ui::handlers::render::render_ui;
use crate::tui::functions::common::login::LoginResult;
use crate::tui::functions::common::register::RegisterResult;
use crate::tui::functions::common::add_table::handle_save_table_action;
use crate::functions::modes::navigation::add_table_nav::SaveTableResultSender;
use crate::tui::functions::common::login;
use crate::tui::functions::common::register;
use std::time::Instant;
@@ -42,9 +44,13 @@ pub async fn run_ui() -> Result<()> {
mpsc::channel::<LoginResult>(1);
let (register_result_sender, mut register_result_receiver) =
mpsc::channel::<RegisterResult>(1);
let (save_table_result_sender, mut save_table_result_receiver) =
mpsc::channel::<Result<String>>(1);
let mut event_handler = EventHandler::new(
login_result_sender.clone(),
register_result_sender.clone(),
save_table_result_sender.clone(),
).await.context("Failed to create event handler")?;
let event_reader = EventReader::new();
@@ -215,6 +221,31 @@ pub async fn run_ui() -> Result<()> {
error!("Register result channel disconnected unexpectedly.");
}
}
// --- Check for Save Table Results ---
match save_table_result_receiver.try_recv() {
Ok(result) => {
app_state.hide_dialog(); // Hide loading indicator
match result {
Ok(success_message) => {
event_handler.command_message = success_message;
admin_state.add_table_state.has_unsaved_changes = false;
// Optionally refresh profile tree if needed
// let _ = UiService::initialize_app_state(&mut grpc_client, &mut app_state).await;
// Navigate back to Admin view
buffer_state.update_history(AppView::Admin);
}
Err(e) => {
event_handler.command_message = format!("Save failed: {}", e);
// Optionally show an error dialog instead of just command message
}
}
needs_redraw = true;
}
Err(mpsc::error::TryRecvError::Empty) => {} // No message
Err(mpsc::error::TryRecvError::Disconnected) => {
error!("Save table result channel disconnected unexpectedly.");
}
}
// --- Centralized Consequence Handling ---
let mut should_exit = false;