proper form in a card

This commit is contained in:
filipriec
2025-02-16 22:27:15 +01:00
parent ee943c05b3
commit 0fb67d7f58

View File

@@ -1,7 +1,7 @@
// src/client/components/form.rs
use ratatui::{
widgets::Paragraph,
layout::{Layout, Constraint, Direction, Rect},
widgets::{Paragraph, Block, Borders},
layout::{Layout, Constraint, Direction, Rect, Margin},
style::Style,
text::{Line, Span},
Frame,
@@ -16,11 +16,27 @@ pub fn render_form(
inputs: &[&String],
theme: &Theme,
) {
// Split the area into a single column layout
// Create a block for the Adresar card
let adresar_card = Block::default()
.borders(Borders::ALL)
.border_style(Style::default().fg(theme.border))
.title(" Adresar ")
.style(Style::default().bg(theme.bg).fg(theme.fg));
// Render the card first
f.render_widget(adresar_card, area);
// Define the inner area for the form (inside the card)
let inner_area = area.inner(Margin {
horizontal: 1,
vertical: 1,
});
// Split the inner area into a single column layout
let form_chunks = Layout::default()
.direction(Direction::Vertical)
.constraints(vec![Constraint::Length(1); fields.len()]) // Each field takes 1 row
.split(area);
.split(inner_area);
for (i, field) in fields.iter().enumerate() {
let input = inputs[i].clone();
@@ -36,7 +52,7 @@ pub fn render_form(
let label = Paragraph::new(Line::from(Span::styled(
field.to_string(),
Style::default().fg(theme.fg),
)));
))); // Fixed: Added the missing closing parenthesis
f.render_widget(label, row_chunks[0]);
// Render the input on the right