From 634a01f618943a9686f1fc698b6cb33e928ab64e Mon Sep 17 00:00:00 2001 From: filipriec Date: Fri, 13 Jun 2025 16:53:39 +0200 Subject: [PATCH] service search changed --- client/src/modes/handlers/event.rs | 32 +++++++++++++----------------- client/src/ui/handlers/ui.rs | 2 +- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/client/src/modes/handlers/event.rs b/client/src/modes/handlers/event.rs index 172e488..7107901 100644 --- a/client/src/modes/handlers/event.rs +++ b/client/src/modes/handlers/event.rs @@ -77,6 +77,7 @@ pub struct EventHandler { pub ideal_cursor_column: usize, pub key_sequence_tracker: KeySequenceTracker, pub auth_client: AuthClient, + pub grpc_client: GrpcClient, pub login_result_sender: mpsc::Sender, pub register_result_sender: mpsc::Sender, pub save_table_result_sender: SaveTableResultSender, @@ -92,6 +93,7 @@ impl EventHandler { register_result_sender: mpsc::Sender, save_table_result_sender: SaveTableResultSender, save_logic_result_sender: SaveLogicResultSender, + grpc_client: GrpcClient, ) -> Result { let (search_tx, search_rx) = unbounded_channel(); Ok(EventHandler { @@ -104,6 +106,7 @@ impl EventHandler { ideal_cursor_column: 0, key_sequence_tracker: KeySequenceTracker::new(400), auth_client: AuthClient::new().await?, + grpc_client, login_result_sender, register_result_sender, save_table_result_sender, @@ -126,7 +129,6 @@ impl EventHandler { async fn handle_search_palette_event( &mut self, key_event: KeyEvent, - mut grpc_client: GrpcClient, form_state: &mut FormState, app_state: &mut AppState, ) -> Result { @@ -184,6 +186,7 @@ impl EventHandler { let query = search_state.input.clone(); let table_name = search_state.table_name.clone(); let sender = self.search_result_sender.clone(); + let mut grpc_client = self.grpc_client.clone(); info!("--- 1. Spawning search task for query: '{}' ---", query); // We now move the grpc_client into the task, just like with login. @@ -221,7 +224,6 @@ impl EventHandler { event: Event, config: &Config, terminal: &mut TerminalCore, - grpc_client: &mut GrpcClient, command_handler: &mut CommandHandler, form_state: &mut FormState, auth_state: &mut AuthState, @@ -232,16 +234,10 @@ impl EventHandler { buffer_state: &mut BufferState, app_state: &mut AppState, ) -> Result { - if let Ok(hits) = self.search_result_receiver.try_recv() { - if let Some(search_state) = app_state.search_state.as_mut() { - search_state.results = hits; - search_state.is_loading = false; - } - } - if app_state.ui.show_search_palette { if let Event::Key(key_event) = event { - return self.handle_search_palette_event(key_event, grpc_client.clone(), form_state, app_state).await; + // The call no longer passes grpc_client + return self.handle_search_palette_event(key_event, form_state, app_state).await; } return Ok(EventOutcome::Ok(String::new())); } @@ -351,7 +347,7 @@ impl EventHandler { } if app_state.ui.show_add_logic { - let client_clone = grpc_client.clone(); + let client_clone = self.grpc_client.clone(); let sender_clone = self.save_logic_result_sender.clone(); if add_logic_nav::handle_add_logic_navigation( key_event, config, app_state, &mut admin_state.add_logic_state, @@ -362,7 +358,7 @@ impl EventHandler { } if app_state.ui.show_add_table { - let client_clone = grpc_client.clone(); + let client_clone = self.grpc_client.clone(); let sender_clone = self.save_table_result_sender.clone(); if add_table_nav::handle_add_table_navigation( key_event, config, app_state, &mut admin_state.add_table_state, @@ -459,7 +455,7 @@ impl EventHandler { "save" | "force_quit" | "save_and_quit" | "revert" => { return common_mode::handle_core_action( action, form_state, auth_state, login_state, register_state, - grpc_client, &mut self.auth_client, terminal, app_state, + &mut self.grpc_client, &mut self.auth_client, terminal, app_state, ).await; } _ => {} @@ -476,7 +472,7 @@ impl EventHandler { &mut admin_state.add_table_state, &mut admin_state.add_logic_state, &mut self.key_sequence_tracker, - grpc_client, + &mut self.grpc_client, // <-- FIX 1 &mut self.command_message, &mut self.edit_mode_cooldown, &mut self.ideal_cursor_column, @@ -510,7 +506,7 @@ impl EventHandler { &mut admin_state.add_table_state, &mut admin_state.add_logic_state, &mut self.key_sequence_tracker, - grpc_client, + &mut self.grpc_client, // <-- FIX 2 &mut self.command_message, &mut self.edit_mode_cooldown, &mut self.ideal_cursor_column, @@ -525,7 +521,7 @@ impl EventHandler { "save" | "force_quit" | "save_and_quit" | "revert" => { return common_mode::handle_core_action( action, form_state, auth_state, login_state, register_state, - grpc_client, &mut self.auth_client, terminal, app_state, + &mut self.grpc_client, &mut self.auth_client, terminal, app_state, // <-- FIX 3 ).await; } _ => {} @@ -537,7 +533,7 @@ impl EventHandler { let edit_result = edit::handle_edit_event( key_event, config, form_state, login_state, register_state, admin_state, &mut self.ideal_cursor_column, &mut current_position, total_count, - grpc_client, app_state, + &mut self.grpc_client, app_state, // <-- FIX 4 ).await; match edit_result { @@ -580,7 +576,7 @@ impl EventHandler { let total_count = form_state.total_count; let outcome = command_mode::handle_command_event( key_event, config, app_state, login_state, register_state, form_state, - &mut self.command_input, &mut self.command_message, grpc_client, + &mut self.command_input, &mut self.command_message, &mut self.grpc_client, // <-- FIX 5 command_handler, terminal, &mut current_position, total_count, ).await?; form_state.current_position = current_position; diff --git a/client/src/ui/handlers/ui.rs b/client/src/ui/handlers/ui.rs index e4ff45b..137bd03 100644 --- a/client/src/ui/handlers/ui.rs +++ b/client/src/ui/handlers/ui.rs @@ -55,6 +55,7 @@ pub async fn run_ui() -> Result<()> { register_result_sender.clone(), save_table_result_sender.clone(), save_logic_result_sender.clone(), + grpc_client.clone(), ) .await .context("Failed to create event handler")?; @@ -156,7 +157,6 @@ pub async fn run_ui() -> Result<()> { event, &config, &mut terminal, - &mut grpc_client, &mut command_handler, &mut form_state, &mut auth_state,