compiled successfulywith rich suggestions now

This commit is contained in:
Priec
2025-07-29 23:49:58 +02:00
parent 20b428264e
commit f84bb0dc9e
14 changed files with 39 additions and 71 deletions

View File

@@ -1,7 +1,7 @@
// src/state/pages/form.rs
use crate::config::colors::themes::Theme;
use canvas::{CanvasState, CanvasAction, ActionContext, HighlightState};
use canvas::canvas::{CanvasState, CanvasAction, ActionContext, HighlightState};
use common::proto::komp_ac::search::search_response::Hit;
use ratatui::layout::Rect;
use ratatui::Frame;
@@ -44,6 +44,14 @@ pub struct FormState {
}
impl FormState {
// Add this method
pub fn deactivate_autocomplete(&mut self) {
self.autocomplete_active = false;
self.autocomplete_suggestions.clear();
self.selected_suggestion_index = None;
self.autocomplete_loading = false;
}
pub fn new(
profile_name: String,
table_name: String,
@@ -145,7 +153,7 @@ impl FormState {
} else {
self.current_position = 1;
}
self.deactivate_suggestions();
self.deactivate_autocomplete();
self.link_display_map.clear();
}
@@ -204,7 +212,7 @@ impl FormState {
self.has_unsaved_changes = false;
self.current_field = 0;
self.current_cursor_pos = 0;
self.deactivate_suggestions();
self.deactivate_autocomplete();
self.link_display_map.clear();
}
@@ -261,7 +269,7 @@ impl CanvasState for FormState {
if index < self.fields.len() {
self.current_field = index;
}
self.deactivate_suggestions();
self.deactivate_autocomplete();
}
fn set_current_cursor_pos(&mut self, pos: usize) {
@@ -272,38 +280,6 @@ impl CanvasState for FormState {
self.has_unsaved_changes = changed;
}
// --- CANVAS CRATE SUGGESTIONS SUPPORT ---
fn get_suggestions(&self) -> Option<&[String]> {
None // We use rich suggestions instead
}
fn get_selected_suggestion_index(&self) -> Option<usize> {
if self.autocomplete_active {
self.selected_suggestion_index
} else {
None
}
}
fn set_selected_suggestion_index(&mut self, index: Option<usize>) {
if self.autocomplete_active {
self.selected_suggestion_index = index;
}
}
fn activate_suggestions(&mut self, suggestions: Vec<String>) {
// For compatibility - convert to rich format if needed
self.autocomplete_active = true;
self.selected_suggestion_index = if suggestions.is_empty() { None } else { Some(0) };
}
fn deactivate_suggestions(&mut self) {
self.autocomplete_active = false;
self.autocomplete_suggestions.clear();
self.selected_suggestion_index = None;
self.autocomplete_loading = false;
}
// --- FEATURE-SPECIFIC ACTION HANDLING ---
fn handle_feature_action(&mut self, action: &CanvasAction, _context: &ActionContext) -> Option<String> {
match action {
@@ -319,7 +295,7 @@ impl CanvasState for FormState {
*self.get_current_input_mut() = new_value.clone();
self.set_current_cursor_pos(new_value.len());
self.set_has_unsaved_changes(true);
self.deactivate_suggestions();
self.deactivate_autocomplete();
return Some(format!("Selected: {}", display_name));
}
}