service search changed
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user