the search tui is not working yet

This commit is contained in:
filipriec
2025-06-11 22:08:23 +02:00
parent c9131d4457
commit 3c0af05a3c
5 changed files with 47 additions and 55 deletions

View File

@@ -4,7 +4,7 @@ use crate::components::{
admin::add_logic::render_add_logic,
admin::render_add_table,
auth::{login::render_login, register::render_register},
common::dialog::render_dialog, // Make sure this is imported
common::dialog::render_dialog,
common::find_file_palette,
common::search_palette::render_search_palette,
form::form::render_form,
@@ -17,6 +17,7 @@ use crate::components::{
};
use crate::config::colors::themes::Theme;
use crate::modes::general::command_navigation::NavigationState;
use crate::state::pages::canvas_state::CanvasState;
use crate::state::app::buffer::BufferState;
use crate::state::app::highlight::HighlightState;
use crate::state::app::state::AppState;
@@ -24,7 +25,6 @@ use crate::state::pages::admin::AdminState;
use crate::state::pages::auth::AuthState;
use crate::state::pages::auth::LoginState;
use crate::state::pages::auth::RegisterState;
use crate::state::pages::canvas_state::CanvasState;
use crate::state::pages::form::FormState;
use crate::state::pages::intro::IntroState;
use ratatui::{
@@ -189,17 +189,13 @@ pub fn render_ui(
.split(form_actual_area)[1]
};
// --- FIX START ---
// The call to `form_state.render` is now separate from the popup rendering.
form_state.render(
f,
form_render_area,
theme,
is_event_handler_edit_mode,
highlight_state,
app_state,
);
// --- FIX END ---
}
if let Some(area) = buffer_list_area {
@@ -236,8 +232,7 @@ pub fn render_ui(
}
}
// --- FIX START ---
// This block now handles drawing popups over any view. This is the correct place for it.
// This block now correctly handles drawing popups over any view.
if app_state.ui.show_search_palette {
if let Some(search_state) = &app_state.search_state {
render_search_palette(f, f.area(), theme, search_state);
@@ -254,5 +249,4 @@ pub fn render_ui(
app_state.ui.dialog.is_loading,
);
}
// --- FIX END ---
}

View File

@@ -126,6 +126,24 @@ pub async fn run_ui() -> Result<()> {
loop {
let position_before_event = form_state.current_position;
let mut event_processed = false;
match event_handler.search_result_receiver.try_recv() {
Ok(hits) => {
if let Some(search_state) = app_state.search_state.as_mut() {
search_state.results = hits;
search_state.is_loading = false;
}
needs_redraw = true;
}
Err(mpsc::error::TryRecvError::Empty) => {
}
Err(mpsc::error::TryRecvError::Disconnected) => {
error!("Search result channel disconnected!");
}
}
if app_state.ui.show_search_palette {
needs_redraw = true;
}
if crossterm_event::poll(std::time::Duration::from_millis(1))? {
let event = event_reader.read_event().context("Failed to read terminal event")?;
event_processed = true;