more improvements

This commit is contained in:
Priec
2025-08-20 23:52:14 +02:00
parent aea2c39215
commit 1320884409
5 changed files with 67 additions and 58 deletions

View File

@@ -1,5 +1,6 @@
// src/components/form/form.rs
use crate::config::colors::themes::Theme;
use crate::state::app::state::AppState;
use crate::state::pages::form::FormState;
use ratatui::{
layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
@@ -8,19 +9,17 @@ use ratatui::{
Frame,
};
use canvas::canvas::HighlightState;
use canvas::{FormEditor, render_canvas_default, render_canvas, render_suggestions_dropdown, DefaultCanvasTheme};
use canvas::{
render_canvas, render_suggestions_dropdown, DefaultCanvasTheme, FormEditor,
};
pub fn render_form(
f: &mut Frame,
area: Rect,
form_state: &FormState,
fields: &[&str], // no longer needed, FormEditor handles this
current_field_idx: &usize, // no longer needed
inputs: &[&String], // no longer needed
app_state: &AppState,
form_state: &FormState, // not needed directly anymore, editor holds it
table_name: &str,
theme: &Theme,
is_edit_mode: bool, // FormEditor tracks mode internally
highlight_state: &HighlightState,
total_count: u64,
current_position: u64,
) {
@@ -62,24 +61,19 @@ pub fn render_form(
.alignment(Alignment::Left);
f.render_widget(count_para, main_layout[0]);
// --- FORM RENDERING (Using new canvas API) ---
let editor = FormEditor::new(form_state.clone());
// --- FORM RENDERING (Using persistent FormEditor) ---
if let Some(editor) = &app_state.form_editor {
let active_field_rect = render_canvas(f, main_layout[1], editor, theme);
let active_field_rect = render_canvas(
f,
main_layout[1],
&editor,
theme,
);
// --- SUGGESTIONS DROPDOWN ---
if let Some(active_rect) = active_field_rect {
render_suggestions_dropdown(
f,
main_layout[1],
active_rect,
&DefaultCanvasTheme,
&editor,
);
// --- SUGGESTIONS DROPDOWN ---
if let Some(active_rect) = active_field_rect {
render_suggestions_dropdown(
f,
main_layout[1],
active_rect,
&DefaultCanvasTheme,
editor,
);
}
}
}