service search changed

This commit is contained in:
filipriec
2025-06-13 16:53:39 +02:00
parent 6abea062ba
commit 634a01f618
2 changed files with 15 additions and 19 deletions

View File

@@ -77,6 +77,7 @@ pub struct EventHandler {
pub ideal_cursor_column: usize, pub ideal_cursor_column: usize,
pub key_sequence_tracker: KeySequenceTracker, pub key_sequence_tracker: KeySequenceTracker,
pub auth_client: AuthClient, pub auth_client: AuthClient,
pub grpc_client: GrpcClient,
pub login_result_sender: mpsc::Sender<LoginResult>, pub login_result_sender: mpsc::Sender<LoginResult>,
pub register_result_sender: mpsc::Sender<RegisterResult>, pub register_result_sender: mpsc::Sender<RegisterResult>,
pub save_table_result_sender: SaveTableResultSender, pub save_table_result_sender: SaveTableResultSender,
@@ -92,6 +93,7 @@ impl EventHandler {
register_result_sender: mpsc::Sender<RegisterResult>, register_result_sender: mpsc::Sender<RegisterResult>,
save_table_result_sender: SaveTableResultSender, save_table_result_sender: SaveTableResultSender,
save_logic_result_sender: SaveLogicResultSender, save_logic_result_sender: SaveLogicResultSender,
grpc_client: GrpcClient,
) -> Result<Self> { ) -> Result<Self> {
let (search_tx, search_rx) = unbounded_channel(); let (search_tx, search_rx) = unbounded_channel();
Ok(EventHandler { Ok(EventHandler {
@@ -104,6 +106,7 @@ impl EventHandler {
ideal_cursor_column: 0, ideal_cursor_column: 0,
key_sequence_tracker: KeySequenceTracker::new(400), key_sequence_tracker: KeySequenceTracker::new(400),
auth_client: AuthClient::new().await?, auth_client: AuthClient::new().await?,
grpc_client,
login_result_sender, login_result_sender,
register_result_sender, register_result_sender,
save_table_result_sender, save_table_result_sender,
@@ -126,7 +129,6 @@ impl EventHandler {
async fn handle_search_palette_event( async fn handle_search_palette_event(
&mut self, &mut self,
key_event: KeyEvent, key_event: KeyEvent,
mut grpc_client: GrpcClient,
form_state: &mut FormState, form_state: &mut FormState,
app_state: &mut AppState, app_state: &mut AppState,
) -> Result<EventOutcome> { ) -> Result<EventOutcome> {
@@ -184,6 +186,7 @@ impl EventHandler {
let query = search_state.input.clone(); let query = search_state.input.clone();
let table_name = search_state.table_name.clone(); let table_name = search_state.table_name.clone();
let sender = self.search_result_sender.clone(); let sender = self.search_result_sender.clone();
let mut grpc_client = self.grpc_client.clone();
info!("--- 1. Spawning search task for query: '{}' ---", query); info!("--- 1. Spawning search task for query: '{}' ---", query);
// We now move the grpc_client into the task, just like with login. // We now move the grpc_client into the task, just like with login.
@@ -221,7 +224,6 @@ impl EventHandler {
event: Event, event: Event,
config: &Config, config: &Config,
terminal: &mut TerminalCore, terminal: &mut TerminalCore,
grpc_client: &mut GrpcClient,
command_handler: &mut CommandHandler, command_handler: &mut CommandHandler,
form_state: &mut FormState, form_state: &mut FormState,
auth_state: &mut AuthState, auth_state: &mut AuthState,
@@ -232,16 +234,10 @@ impl EventHandler {
buffer_state: &mut BufferState, buffer_state: &mut BufferState,
app_state: &mut AppState, app_state: &mut AppState,
) -> Result<EventOutcome> { ) -> Result<EventOutcome> {
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 app_state.ui.show_search_palette {
if let Event::Key(key_event) = event { 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())); return Ok(EventOutcome::Ok(String::new()));
} }
@@ -351,7 +347,7 @@ impl EventHandler {
} }
if app_state.ui.show_add_logic { 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(); let sender_clone = self.save_logic_result_sender.clone();
if add_logic_nav::handle_add_logic_navigation( if add_logic_nav::handle_add_logic_navigation(
key_event, config, app_state, &mut admin_state.add_logic_state, key_event, config, app_state, &mut admin_state.add_logic_state,
@@ -362,7 +358,7 @@ impl EventHandler {
} }
if app_state.ui.show_add_table { 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(); let sender_clone = self.save_table_result_sender.clone();
if add_table_nav::handle_add_table_navigation( if add_table_nav::handle_add_table_navigation(
key_event, config, app_state, &mut admin_state.add_table_state, key_event, config, app_state, &mut admin_state.add_table_state,
@@ -459,7 +455,7 @@ impl EventHandler {
"save" | "force_quit" | "save_and_quit" | "revert" => { "save" | "force_quit" | "save_and_quit" | "revert" => {
return common_mode::handle_core_action( return common_mode::handle_core_action(
action, form_state, auth_state, login_state, register_state, 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; ).await;
} }
_ => {} _ => {}
@@ -476,7 +472,7 @@ impl EventHandler {
&mut admin_state.add_table_state, &mut admin_state.add_table_state,
&mut admin_state.add_logic_state, &mut admin_state.add_logic_state,
&mut self.key_sequence_tracker, &mut self.key_sequence_tracker,
grpc_client, &mut self.grpc_client, // <-- FIX 1
&mut self.command_message, &mut self.command_message,
&mut self.edit_mode_cooldown, &mut self.edit_mode_cooldown,
&mut self.ideal_cursor_column, &mut self.ideal_cursor_column,
@@ -510,7 +506,7 @@ impl EventHandler {
&mut admin_state.add_table_state, &mut admin_state.add_table_state,
&mut admin_state.add_logic_state, &mut admin_state.add_logic_state,
&mut self.key_sequence_tracker, &mut self.key_sequence_tracker,
grpc_client, &mut self.grpc_client, // <-- FIX 2
&mut self.command_message, &mut self.command_message,
&mut self.edit_mode_cooldown, &mut self.edit_mode_cooldown,
&mut self.ideal_cursor_column, &mut self.ideal_cursor_column,
@@ -525,7 +521,7 @@ impl EventHandler {
"save" | "force_quit" | "save_and_quit" | "revert" => { "save" | "force_quit" | "save_and_quit" | "revert" => {
return common_mode::handle_core_action( return common_mode::handle_core_action(
action, form_state, auth_state, login_state, register_state, 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; ).await;
} }
_ => {} _ => {}
@@ -537,7 +533,7 @@ impl EventHandler {
let edit_result = edit::handle_edit_event( let edit_result = edit::handle_edit_event(
key_event, config, form_state, login_state, register_state, admin_state, key_event, config, form_state, login_state, register_state, admin_state,
&mut self.ideal_cursor_column, &mut current_position, total_count, &mut self.ideal_cursor_column, &mut current_position, total_count,
grpc_client, app_state, &mut self.grpc_client, app_state, // <-- FIX 4
).await; ).await;
match edit_result { match edit_result {
@@ -580,7 +576,7 @@ impl EventHandler {
let total_count = form_state.total_count; let total_count = form_state.total_count;
let outcome = command_mode::handle_command_event( let outcome = command_mode::handle_command_event(
key_event, config, app_state, login_state, register_state, form_state, 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, command_handler, terminal, &mut current_position, total_count,
).await?; ).await?;
form_state.current_position = current_position; form_state.current_position = current_position;

View File

@@ -55,6 +55,7 @@ pub async fn run_ui() -> Result<()> {
register_result_sender.clone(), register_result_sender.clone(),
save_table_result_sender.clone(), save_table_result_sender.clone(),
save_logic_result_sender.clone(), save_logic_result_sender.clone(),
grpc_client.clone(),
) )
.await .await
.context("Failed to create event handler")?; .context("Failed to create event handler")?;
@@ -156,7 +157,6 @@ pub async fn run_ui() -> Result<()> {
event, event,
&config, &config,
&mut terminal, &mut terminal,
&mut grpc_client,
&mut command_handler, &mut command_handler,
&mut form_state, &mut form_state,
&mut auth_state, &mut auth_state,