use ratatui::layout::{Constraint, Direction, Layout, Rect};
use super::layout_chunks::ChatChunks;
use crate::tui::app::state::App;
pub fn compute_chat_chunks(area: Rect, app: &App) -> ChatChunks {
let suggestions_visible = app.state.slash_suggestions_visible();
let input_lines_count = app.state.input.lines().count().max(1);
let input_height = (input_lines_count as u16 + 2).clamp(3, 6);
let constraints: &[Constraint] = if suggestions_visible {
&[
Constraint::Min(8),
Constraint::Length(input_height),
Constraint::Length(5),
Constraint::Length(1),
]
} else {
&[
Constraint::Min(8),
Constraint::Length(input_height),
Constraint::Length(1),
]
};
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints(constraints)
.split(area);
ChatChunks {
messages: chunks[0],
input: chunks[1],
suggestions: suggestions_visible.then(|| chunks[2]),
status: chunks[if suggestions_visible { 3 } else { 2 }],
}
}