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:
@@ -6,8 +6,14 @@ use crate::state::{
|
||||
};
|
||||
use crossterm::event::{KeyEvent};
|
||||
use ratatui::widgets::TableState;
|
||||
use crate::tui::functions::common::add_table::handle_add_column_action;
|
||||
use crate::tui::functions::common::add_table::{handle_add_column_action, handle_save_table_action};
|
||||
use crate::ui::handlers::context::DialogPurpose;
|
||||
use crate::services::GrpcClient;
|
||||
use tokio::sync::mpsc;
|
||||
use anyhow::Result;
|
||||
|
||||
// Define a type for the save result channel
|
||||
pub type SaveTableResultSender = mpsc::Sender<Result<String>>;
|
||||
|
||||
/// Handles navigation events specifically for the Add Table view.
|
||||
/// Returns true if the event was handled, false otherwise.
|
||||
@@ -16,6 +22,8 @@ pub fn handle_add_table_navigation(
|
||||
config: &Config,
|
||||
app_state: &mut AppState,
|
||||
add_table_state: &mut AddTableState,
|
||||
grpc_client: GrpcClient,
|
||||
save_result_sender: SaveTableResultSender,
|
||||
command_message: &mut String,
|
||||
) -> bool {
|
||||
let action = config.get_general_action(key.code, key.modifiers);
|
||||
@@ -246,8 +254,25 @@ pub fn handle_add_table_navigation(
|
||||
}
|
||||
}
|
||||
AddTableFocus::SaveButton => {
|
||||
*command_message = "Action: Save Table (Not Implemented)".to_string();
|
||||
// TODO: Implement logic
|
||||
// --- Initiate Async Save ---
|
||||
if add_table_state.table_name.is_empty() {
|
||||
*command_message = "Cannot save: Table name is empty.".to_string();
|
||||
} else if add_table_state.columns.is_empty() {
|
||||
*command_message = "Cannot save: No columns defined.".to_string();
|
||||
} else {
|
||||
*command_message = "Saving table...".to_string();
|
||||
app_state.show_loading_dialog("Saving", "Please wait...");
|
||||
|
||||
let mut client_clone = grpc_client.clone();
|
||||
let state_clone = add_table_state.clone();
|
||||
let sender_clone = save_result_sender.clone();
|
||||
|
||||
tokio::spawn(async move {
|
||||
let result = handle_save_table_action(&mut client_clone, &state_clone).await;
|
||||
let _ = sender_clone.send(result).await; // Send result back
|
||||
});
|
||||
}
|
||||
// --- End Initiate Async Save ---
|
||||
}
|
||||
AddTableFocus::DeleteSelectedButton => {
|
||||
// --- Show Confirmation Dialog ---
|
||||
|
||||
Reference in New Issue
Block a user