Skip to main content

codetether_agent/tui/
git_view.rs

1//! Render the `/git` TUI view.
2
3use ratatui::{
4    Frame,
5    layout::{Constraint, Direction, Layout, Rect},
6    widgets::{Block, Borders, Paragraph, Wrap},
7};
8
9use crate::tui::app::state::git_state::GitViewState;
10use crate::tui::git_lines::build_git_lines;
11use crate::tui::input::render_input_preview;
12
13/// Render the git status view into `area` of `f`.
14pub fn render_git_view(f: &mut Frame, area: Rect, state: &GitViewState, status: &str) {
15    let chunks = Layout::default()
16        .direction(Direction::Vertical)
17        .constraints([Constraint::Min(8), Constraint::Length(3)])
18        .split(area);
19
20    let widget = Paragraph::new(build_git_lines(state))
21        .block(Block::default().borders(Borders::ALL).title("Git"))
22        .wrap(Wrap { trim: false });
23    f.render_widget(widget, chunks[0]);
24    render_input_preview(f, chunks[1], status);
25}