new canvas library changed client for compatibility

This commit is contained in:
Priec
2025-07-30 22:42:32 +02:00
parent ad82bd4302
commit cc19c61f37
4 changed files with 83 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
// src/state/pages/form.rs
use crate::config::colors::themes::Theme;
use canvas::canvas::{CanvasState, CanvasAction, ActionContext, HighlightState};
use canvas::canvas::{CanvasState, CanvasAction, ActionContext, HighlightState, AppMode};
use common::proto::komp_ac::search::search_response::Hit;
use ratatui::layout::Rect;
use ratatui::Frame;
@@ -41,6 +41,7 @@ pub struct FormState {
pub selected_suggestion_index: Option<usize>,
pub autocomplete_loading: bool,
pub link_display_map: HashMap<usize, String>,
pub app_mode: AppMode,
}
impl FormState {
@@ -74,6 +75,7 @@ impl FormState {
selected_suggestion_index: None,
autocomplete_loading: false,
link_display_map: HashMap::new(),
app_mode: AppMode::Edit,
}
}
@@ -231,6 +233,15 @@ impl FormState {
self.selected_suggestion_index = if self.autocomplete_active { Some(0) } else { None };
self.autocomplete_loading = false;
}
// NEW: Add these methods to change modes
pub fn set_edit_mode(&mut self) {
self.app_mode = AppMode::Edit;
}
pub fn set_readonly_mode(&mut self) {
self.app_mode = AppMode::ReadOnly;
}
}
impl CanvasState for FormState {
@@ -320,4 +331,8 @@ impl CanvasState for FormState {
fn has_display_override(&self, index: usize) -> bool {
self.link_display_map.contains_key(&index)
}
fn current_mode(&self) -> AppMode {
self.app_mode
}
}