use ratatui::Frame;
use ratatui::layout::Rect;
use ratatui::widgets::{Block, Borders, Clear, Paragraph};
use crate::presentation::tui::styles::{bar_style, content_style};
#[derive(Debug)]
struct InternalPadding {
x: u16,
y: u16,
}
pub fn render_modal(f: &mut Frame, area: Rect, title: &str, content: &str) {
let width = std::cmp::min(60u16, area.width.saturating_sub(10));
let height = std::cmp::min(10u16, area.height.saturating_sub(6));
let x = area.x + (area.width.saturating_sub(width)) / 2;
let y = area.y + (area.height.saturating_sub(height)) / 2;
let r = Rect::new(x, y, width, height);
f.render_widget(Clear, r);
let block = Block::default()
.title(title)
.borders(Borders::ALL)
.style(bar_style());
f.render_widget(block, r);
let padding = InternalPadding { x: 1, y: 1 };
let inner_w_raw = width
.saturating_sub(2)
.saturating_sub(padding.x.saturating_mul(2));
let inner_h_raw = height
.saturating_sub(2)
.saturating_sub(padding.y.saturating_mul(2));
let inner_x = x + 1 + padding.x;
let inner_y = y + 1 + padding.y;
let inner_w = if inner_w_raw == 0 { 1 } else { inner_w_raw };
let inner_h = if inner_h_raw == 0 { 1 } else { inner_h_raw };
let inner = Rect::new(inner_x, inner_y, inner_w, inner_h);
let p = Paragraph::new(content).style(content_style());
f.render_widget(p, inner);
}