codetether_agent/tui/ui/chat_view/
render.rs1use ratatui::Frame;
7
8use super::attachment::attachment_suffix;
9use super::input_area::render_input;
10use super::layout_compute::compute_chat_chunks;
11use super::lines::build_chat_lines;
12use super::messages::render_messages;
13use super::status_line::render_status_line;
14use super::suggestions::render_suggestions;
15use crate::session::Session;
16use crate::tui::app::state::App;
17use crate::tui::color_palette::ColorPalette;
18use crate::tui::message_formatter::MessageFormatter;
19
20pub fn render_chat_view(f: &mut Frame, app: &mut App, session: &Session) {
29 let chunks = compute_chat_chunks(f.area(), app);
30 let palette = ColorPalette::marketing();
31 let formatter = MessageFormatter::new(chunks.messages.width.saturating_sub(4) as usize);
32 let max_width = chunks.messages.width as usize;
33 let lines = build_chat_lines(app, max_width, max_width, &formatter, &palette);
34 render_messages(f, app, session, &chunks, &palette, lines);
35 let suffix = attachment_suffix(app);
36 render_input(f, app, chunks.input, &palette, &suffix);
37 if let Some(rect) = chunks.suggestions {
38 render_suggestions(f, app, rect);
39 }
40 render_status_line(f, app, chunks.status);
41 crate::tui::help::render_help_overlay_if_needed(f, &mut app.state);
42}