implementation of canvas for multiple pages step 1

This commit is contained in:
filipriec
2025-03-28 14:26:18 +01:00
parent d4efdf4833
commit 37b08fdd10
3 changed files with 49 additions and 4 deletions

View File

@@ -8,12 +8,12 @@ use ratatui::{
prelude::Alignment,
};
use crate::config::colors::themes::Theme;
use crate::state::pages::form::FormState;
use crate::state::canvas_state::CanvasState;
pub fn render_canvas(
f: &mut Frame,
area: Rect,
form_state: &FormState,
form_state: &impl CanvasState,
fields: &[&str],
current_field: &usize,
inputs: &[&String],
@@ -30,7 +30,7 @@ pub fn render_canvas(
let input_container = Block::default()
.borders(Borders::ALL)
.border_style(if is_edit_mode {
form_state.has_unsaved_changes.then(|| theme.warning).unwrap_or(theme.accent)
form_state.has_unsaved_changes().then(|| theme.warning).unwrap_or(theme.accent)
} else {
theme.secondary
})
@@ -81,7 +81,7 @@ pub fn render_canvas(
f.render_widget(input_display, input_rows[i]);
if is_active {
let cursor_x = input_rows[i].x + form_state.current_cursor_pos as u16;
let cursor_x = input_rows[i].x + form_state.current_cursor_pos() as u16;
let cursor_y = input_rows[i].y;
f.set_cursor_position((cursor_x, cursor_y));
}